سؤال

لذلك كنت أقرأ في كتاب من مفارقة معينة: قل أنك في غرفة بها باب مقابلك. من أجل المغادرة ، يجب أن تسافر نصف المسافة هناك في كل مرة. لذا فإن الخطوة الأولى التي تجعلها نصف المسافة ، والخطوة الثانية التي تأخذها نصف مرة أخرى ، وهكذا (1/2 + 1/4 + 1/8) وما إلى ذلك. مثله. هذا أعتقد أنه من السهل إثبات استخدام حساب التفاضل والتكامل ، ولكن سيكون من المثير للاهتمام محاكاة هذا في Java أو أي برنامج آخر مع كرة تبدأ على الجانب الأيسر ، وتشق طريقها إلى الجانب الأيمن عن طريق السفر نصف المسافة في كل مرة ، ، أثناء إظهار عدد "الخطوات" التي اتخذت حتى الآن وتقدمها. أحب أن أفعل ذلك بنفسي ، لكنني ما زلت مبتدئًا في جافا ولا أعرف برمجة واجهة المستخدم الرسومية. هل يمكن لأي شخص محاكاة هذا؟

(آسف إذا لم يكن هذا سؤالًا "حقيقيًا". أنا فضولي حقًا عدد الخطوات التي ستستغرقها الكرة حتى تبدو وكأنها كانت موجودة تقريبًا.)

هل كانت مفيدة؟

المحلول

انظر هذه المؤامرة ، التي تصور المفارقة:

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

نصائح أخرى

سوف تصطدم بأرقام حدود كبيرة قبل أن تصطدم بالباب الآخر. مجردة هي:

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

قليلا من التحليل العددي في جافا. القي نظرة على هذه

هذا واحد من مفارقات زينو يعتمد ذلك على ما هو تعريفك لـ "تقريبا". من وجهة نظر ما يكفي من المراقبة ، يمكن أن تبدو كما هي تقريبًا بغض النظر عن المسافة الفعلية.

بالنسبة إلى البرنامج للقيام بذلك ، فإن سؤالك واسع جدًا - يمكن تنفيذه بعدة طرق. العنصر الرئيسي هو تحديث مسافة الكرة إلى الحائط ليكون نصف ما كان عليه في "الإطار" السابق أو التكرار.

إذا كنت تريد القيام بذلك في C ++ ، فإليك الرمز:

float Distance;

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

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


return 0;

}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top