WOO logo

اسأل الساحر #357

باستخدام كل رقم من 1 إلى 9 مرة واحدة بالضبط، قم بتكوين ثلاثة كسور، كل منها يحتوي على رقم واحد في البسط ورقمين في المقام، بحيث يكون مجموع الكسور الثلاثة هو واحد.

على سبيل المثال، 8/16 + 9/27 + 3/24 تلبي كل الشروط، باستثناء أن المجموع يساوي 23/24، وليس 1.

Gialmere

5/34 + 7/68 + 9/12

[spoiler=الحل]

هناك 60,480 تبديلًا ممكنًا يجب فرزها للعثور على الإجابة. أعترف أنني حاولتُ لمدة ساعة على الأقل بالتجربة والخطأ ولم أجد حلًا.

لذا، كتبتُ برنامجًا لفرز جميع طرق ترتيب الأرقام التسعة (fact(9) = 362,880) واختبرتُها جميعًا. كان الجزء الصعب هو فرز جميع الطرق الممكنة لترتيب الأرقام التسعة. إليك كيفية القيام بذلك باستخدام الفرز المعجمي.

  1. ضع العناصر التسعة كلها في مصفوفة، مرتبة من الأدنى إلى الأعلى.
  2. ابحث عن آخر عنصر في المصفوفة بحيث يكون العنصر التالي أكبر. إذا لم يتم العثور على أيٍّ منها، فاخرج من البرنامج.
  3. ابدأ بالعنصر بعد ذلك من الخطوة 2، وابحث عن العنصر الأخير في المصفوفة الذي يكون أكبر من العنصر من الخطوة 2.
  4. قم بتبديل العناصر في المصفوفة من الخطوتين 2 و 3.
  5. قم بعكس العناصر الموجودة في المصفوفة من تلك التي تليها من الخطوة 2 حتى النهاية.
  6. العودة إلى الخطوة 2

باتباع هذه العملية، ستجد الإجابة الصحيحة ست مرات، مرة واحدة لجميع الطرق الست لترتيب الكسور الثلاثة.

[spoiler=Code]

لقد كتبت الكود التالي لفرز كل رقم من 1 إلى 9 حسب الترتيب المعجمي واختبار كل رقم لمعرفة ما إذا كان حلاً.


void three_fraction(void)
{
 int i، x_max، y_max، temp_array[100]، hold، pt؛
 int lex_array[] = { 1,2,3,4,5,6,7,8,9 };
 عدد العناصر = حجم (مجموعة lex) / حجم (مجموعة lex[0]);
 int count = 0؛
 bool stop = false؛
 ضعف tot3؛
 cerr << "عدد العناصر =\t" << num_elements << "\n";
 يفعل
 {
  العد++؛
  tot3 = (مزدوج) مصفوفة lex[0] / (مزدوج)(10 * مصفوفة lex[1] + مصفوفة lex[2]);
  tot3 += (مزدوج) مصفوفة lex[3] / (مزدوج)(10 * مصفوفة lex[4] + مصفوفة lex[5]);
  tot3 += (مزدوج) مصفوفة lex[6] / (مزدوج)(10 * مصفوفة lex[7] + مصفوفة lex[8]); 
  إذا (tot3 == 1.0)
  {
   cerr << count << "\t";
   cerr << lex_array[0] << "/" << lex_array[1] << lex_array[2] << " + ";
   cerr << lex_array[3] << "/" << lex_array[4] << lex_array[5] << " + ";
   cerr << lex_array[6] << "/" << lex_array[7] << lex_array[8] << "\n";
  } 
  x_max = -1؛
  لـ (i = 0؛ i < (عدد العناصر - 1)؛ i++)
  {
   إذا (مصفوفة lex[i] < مصفوفة lex[i + 1])
    x_max = i؛
  }
  إذا (x_max >= 0)
  {
   y_max = 0؛
   لـ (i = x_max + 1؛ i < عدد العناصر؛ i++)
   {
    إذا (مصفوفة lex[x_max] < مصفوفة lex[i])
     y_max = i؛
   }
   عقد = lex_array[x_max]؛
   مجموعة ليكس[x_max] = مجموعة ليكس[y_max]؛
   lex_array[y_max] = hold؛
   إذا (x_max + 1 < num_elements - 1) // عكس
   {
    لـ (i = x_max + 1؛ i < عدد العناصر؛ i++)
    {
     مصفوفة مؤقتة[i] = مصفوفة ليكس[i]؛
    }
    نقطة = 0؛
    لـ (i = x_max + 1؛ i < عدد العناصر؛ i++)
    {
     مصفوفة lex_array[i] = مصفوفة temp[عدد العناصر - 1 - نقطة]؛
     pt++;
    }
   }
  }
  آخر
   توقف = صحيح؛
 } بينما (توقف == خطأ)؛
}
[/كابح]

تم طرح هذا السؤال ومناقشته في منتدياتي في Wizard of Vegas .

كان لدى رجل برميل نبيذ سعة 10 جالونات وإبريق. في أحد الأيام، ملأ إبريقًا بالنبيذ ثم ملأ البرميل بالماء. لاحقًا، عندما امتزج النبيذ والماء تمامًا، ملأ إبريقًا آخر وملأ البرميل بالماء مرة أخرى. احتوى البرميل حينها على كميات متساوية من النبيذ والماء.

ما هي سعة الإبريق؟

Gialmere

10-5*sqrt(2) =~ 2.9289 جالون

[spoiler=الحل]

ليكن j = حجم الإبريق.

بعد ملء الإبريق لأول مرة، تبقى فيه ١٠ جالونات من النبيذ. بعد استبدال النبيذ بالماء، أصبحت نسبة النبيذ إلى البرميل بأكمله (١٠ جالون)/١٠.

بعد أن استخلص الإبريق النبيذ المخفف، تبقى في البرميل عشرة جالونات من النبيذ المخفف. يمكن التعبير عن كمية النبيذ النقي في النبيذ المخفف بالمعادلة التالية:

(10-ج)*((10-ج)/10) = 5

(10-ج)^2 = 50

ج^2 - 20ج + 100 = 50

ج^2 - 20ج + 50 = 0

ج = (20 +/- الجذر التربيعي (400-200))/2

ج = (20 +/- 10*الجذر التربيعي(2))/2

ج = 10 +/- 5*الجذر التربيعي(2)

لا يمكن أن يكون الإبريق أكبر من البرميل، لذلك يجب علينا استخدام الإشارة السالبة:

ج = 10 - 5*sqrt(2) =~ تقريبًا 2.92893218813452 جالون.

[/كابح]

تم طرح هذا السؤال ومناقشته في منتدياتي في Wizard of Vegas .

يُرمى حجر نرد سداسي الأوجه مرارًا وتكرارًا حتى يصبح مجموع الرميات ١٣ أو أكثر. ما هو المتوسط الحسابي والوسيط والمنوال للمجموع النهائي؟

Gialmere

المتوسط = 14.690219
المتوسط = 14
الوضع = 13

[spoiler=الحل]

اضطررتُ لاستخدام سلسلة ماركوف في هذه الحالة. يوضح الجدول التالي احتمال كل مجموع نهائي وفقًا للمجموع المتسلسل في العمود الأيسر. ابدأ بالحالات الواضحة للمجموعات من ١٣ إلى ١٨. ثم، للمجموعات المتسلسل من ٠ إلى ١٢، احسب متوسط الخلايا الست أدناه.

يمكن العثور على احتمالات الحالة الأولية في الصف الأول لمجموع 0.

سلسلة ماركوف

مجموع اللفات 13 14 15 16 17 18
0 0.279263 0.236996 0.192313 0.145585 0.097371 0.048472
1 0.290830 0.230791 0.188524 0.143842 0.097114 0.048899
2 0.293393 0.241931 0.181893 0.139625 0.094943 0.048215
3 0.289288 0.245178 0.193717 0.133678 0.091410 0.046728
4 0.280369 0.242560 0.198450 0.146988 0.086950 0.044682
5 0.268094 0.235687 0.197878 0.153768 0.102306 0.042267
6 0.253604 0.225827 0.193419 0.155611 0.111500 0.060039
7 0.360232 0.193566 0.165788 0.133380 0.095572 0.051462
8 0.308771 0.308771 0.142104 0.114326 0.081919 0.044110
9 0.264660 0.264660 0.264660 0.097994 0.070216 0.037809
10 0.226852 0.226852 0.226852 0.226852 0.060185 0.032407
11 0.194444 0.194444 0.194444 0.194444 0.194444 0.027778
12 0.166667 0.166667 0.166667 0.166667 0.166667 0.166667
13 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000
15 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000
16 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000
17 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000
18 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
[/كابح]

تم طرح هذا السؤال ومناقشته في منتدى Wizard of Vegas .