Программа для симуляции парадокса Зенона в Java - PullRequest
1 голос
/ 09 ноября 2010

Итак, я читал в книге некий парадокс: скажем, вы находитесь в комнате с дверью напротив вас. Однако, чтобы уйти, вы должны каждый раз преодолевать половину расстояния. Таким образом, первым шагом вы делаете половину расстояния, а вторым шагом вы снова делаете половину, и так далее (1/2 + 1/4 + 1/8) и т. Д. Требуется, если вы никогда не достигнете двери, если продолжите как это. Я думаю, это легко доказать с помощью исчисления, но было бы интересно смоделировать это на Java или в любой другой программе с шаром, который начинается с левой стороны и пробивается к правой стороне, каждый раз проходя половину расстояния, показывая количество «шагов», предпринятых к настоящему времени, и их прогресс. Я хотел бы сделать это сам, но я все еще новичок в Java и не знаю программирования GUI. Кто-нибудь может симулировать это?

(Извините, если это не «реальный» вопрос. Мне просто очень интересно, сколько шагов понадобится, чтобы мяч даже выглядел так, как будто он почти на месте).

Ответы [ 5 ]

4 голосов
/ 09 ноября 2010

Смотрите этот сюжет, который визуализирует парадокс:

http://www.wolframalpha.com/input/?i=1-1/(2^n)+for+0<n<10
3 голосов
/ 09 ноября 2010

вы столкнетесь с лимитами чисел задолго до того, как попадете в другую дверь. это:

var Distance=100;
var Traveled=0;
var Remaining=Distance/2

while(Traveled < Distance){
  echo Remaining
  Traveled=Traveled+Remaining
  Remaining=Remaining/2

}

выполнение этого на одном из моих блоков с использованием PHP привело к ..
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

1 голос
/ 09 ноября 2010

немного численного анализа в Java. взгляните на это

0 голосов
/ 29 июля 2013

Если вы хотите сделать это на C ++, вот код:

float Distance;

cout << " Enter distance value :" << endl;
cin >> Distance;

while (Distance > 0){
    cout << Distance << endl;
(Distance = Distance /2);
}


return 0;

}

0 голосов
/ 09 ноября 2010

Это один из парадоксов Зенона Это зависит от того, каково ваше определение "почти".С достаточно далекой точки зрения может показаться, что она почти там, независимо от того, каково действительное расстояние.

Что касается программы, которая делает это, ваш вопрос слишком широк - его можно реализовать несколькими способами.Ключевым элементом является обновление расстояния от шара до стены, чтобы оно составляло половину того, что было в предыдущем «кадре» или итерации.

...