Pregunta

Así que estaba leyendo en un libro de una cierta paradoja: Digamos que usted está en una habitación con una puerta de enfrente de ustedes. Con el fin de dejar sin embargo, se debe recorrer la mitad de la distancia que hay cada vez. Así que el primer paso a tomar la mitad de la distancia, y el segundo paso que toma la mitad otra vez, y así sucesivamente (1/2 + 1/4 + 1/8), etc. El reclamo es si nunca se llega a la puerta si continúa Me gusta esto. Esto se supongo fácil demostrar utilizando el cálculo, pero sería interesante para simular esto en Java o cualquier otro programa con una bola que se inicia en el lado izquierdo, y se abre paso hacia el lado derecho de viajar mitad de la distancia cada vez, mientras que muestra el número de 'pasos' dados hasta ahora y su progreso. Me encantaría hacerlo yo mismo pero sigo siendo un principiante en Java y no saben de programación GUI. ¿Alguien puede simular esto?

(Lo siento si esto no es una cuestión 'real'. Estoy muy curiosa la cantidad de pasos que se necesitaría para que la pelota aspecto aún como si fuera casi allí.)

¿Fue útil?

Solución

Vea esta trama, que visualiza la paradoja:

http://www.wolframalpha.com/input/?i=1-1/(2^n)+for+0<n<10

Otros consejos

que se ejecutará en los límites de un número mucho antes de ejecutar en el otro lado. abstraída es:

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

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

}

ejecutar esta en una de mis cajas usando PHP resultó en ..
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 poco de análisis numérico en Java. echar un vistazo a este

Esta es una de de Zeno Paradojas Depende de lo que su definición de "casi" es. Desde un punto de vista lo suficiente, puede parecer que es casi allí, no importa lo que la distancia real que es.

En cuanto a un programa para hacer esto, su pregunta es demasiado amplio - que podría ser implementado en un número de maneras. El elemento clave es actualizar la distancia de la pelota a la pared para ser la mitad de lo que era en el "marco" anterior o iteración.

Si desea hacerlo en C ++ aquí está el código:

float Distance;

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

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


return 0;

}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top