Programme pour simuler le paradoxe de Zénon en Java
-
29-09-2019 - |
Question
Alors que je lisais dans un livre d'un certain paradoxe: que vous êtes dans une pièce avec une porte d'en face de vous. Afin de laisser cependant, vous devez parcourir la moitié de la distance il y a à chaque fois. Ainsi, la première foulée que vous faites la moitié de la distance, et la deuxième foulée que vous prenez la moitié à nouveau, et ainsi de suite (1/2 + 1/4 + 1/8) etc. La demande est si vous ne jamais atteindre la porte si vous continuez comme ça. Ceci est je suppose que facile à prouver en utilisant le calcul, mais il serait intéressant de simuler ceci en Java ou tout autre programme avec une balle qui commence sur le côté gauche, et fait son chemin vers le côté droit en voyageant moitié de la distance à chaque fois, tout en indiquant le nombre de « mesures » prises jusqu'à présent et ses progrès. J'aimerais faire moi-même, mais je suis encore un débutant en Java et ne savent pas la programmation GUI. Quelqu'un peut-il simuler cela?
(Désolé si ce n'est pas une question « vraie ». Je suis vraiment curieux de voir combien mesures qu'il prendrait pour la balle même regarder comme il était presque.)
La solution
Voir cette parcelle, le paradoxe qui visualise:
http://www.wolframalpha.com/input/?i=1-1/(2^n)+for+0<n<10
Autres conseils
se déroulera dans les limites des numéros bien avant d'exécuter dans l'autre porte. Abstraite il est:
var Distance=100;
var Traveled=0;
var Remaining=Distance/2
while(Traveled < Distance){
echo Remaining
Traveled=Traveled+Remaining
Remaining=Remaining/2
}
l'exécution de ce sur un de mes boîtes en utilisant PHP a donné lieu à ..
50
25
12.5
6,25
3.125
1,5625
0,78125
0,390625
0.1953125
0.09765625
0.048828125
0.0244140625
0.01220703125
0.006103515625
0.0030517578125
0.00152587890625
0.000762939453125
0.0003814697265625
0.00019073486328125
9.5367431640625E-5
4.7683715820312E-5
2.3841857910156E-5
1.1920928955078E-5
5.9604644775391E-6
2.9802322387695E-6
1.4901161193848E-6
7.4505805969238E-7
3.7252902984619E-7
1.862645149231E-7
9.3132257461548E-8
4.6566128730774E-8
2.3283064365387E-8
1.1641532182693E-8
5.8207660913467E-9
2.9103830456734E-9
1.4551915228367E-9
7.2759576141834E-10
3.6379788070917E-10
1.8189894035459E-10
9.0949470177293E-11
4.5474735088646E-11
2.2737367544323E-11
1.1368683772162E-11
5.6843418860808E-12
2.8421709430404E-12
1.4210854715202E-12
7.105427357601E-13
3.5527136788005E-13
1.7763568394003E-13
8.8817841970013E-14
4.4408920985006E-14
2.2204460492503E-14
1.1102230246252E-14
5.5511151231258E-15
un peu d'analyse numérique en java. jetez un oeil à cette
Ceci est l'un des Cela dépend de Zeno Paradoxes ce que votre définition de « presque » est. D'un point de vue assez loin, il peut ressembler il est presque là, peu importe ce que la distance réelle est.
En ce qui concerne un programme pour le faire, votre question est beaucoup trop large - il pourrait être mis en œuvre un certain nombre de façons. L'élément clé est de mettre à jour la distance de la balle au mur à moitié de ce qu'elle était dans le précédent « cadre » ou itération.
Si vous voulez le faire en C ++ est le code ici:
float Distance;
cout << " Enter distance value :" << endl;
cin >> Distance;
while (Distance > 0){
cout << Distance << endl;
(Distance = Distance /2);
}
return 0;
}