الانتقال إلى المحتوى الرئيسي

خوارزمية لحساب قيمة وظيفة و (ن) ، حيث ن هو عدد طبيعي ، وفقا لنسب معينة و(1) = 1

الدالة و (ن) هي دالة رياضية تأخذ عددا طبيعيا ن كمدخل وإرجاع بعض القيمة. في المشكلة ، نعلم أن و (1) يساوي 1. ومع ذلك ، من أجل حساب قيمة و(ن) ل ن التعسفي ، نحن بحاجة إلى تطوير خوارزمية.

خوارزمية لحساب قيمة وظيفة و (ن) يمكن بناؤها باستخدام مختلف العمليات الرياضية والإنشاءات. قد تكون إحدى الخوارزميات الممكنة هي التعريف العودي للوظيفة و (ن) من خلال و (ن-1).

يمكن تعيين الخوارزمية و(ن) على النحو التالي:

  1. تحقق مما إذا كان ن يساوي 1. إذا كان كذلك ، ارجع 1.
  2. خلاف ذلك ، استدعاء وظيفة و(ن-1) وحفظ النتيجة إلى المتغير س.
  3. اضرب س في 2 واحفظ النتيجة في المتغير ص.
  4. حساب قيمة و (ن) كمجموع س و ص.
  5. إرجاع قيمة و (ن).

وهكذا ، نحصل على وصف حسابي للدالة و(ن) ، والذي يسمح لنا بحساب قيمته لأي عدد طبيعي ن ، بناء على القيمة المعروفة لـ و (1).

  1. خوارزمية لحساب وظيفة و (ن) ، حيث ن هو عدد طبيعي
  2. قيمة وظيفة و (1)
  3. وصف الخوارزمية لحساب الوظيفة
  4. الخطوة 1: تحديد الحالة الأساسية
  5. الخطوة 2: حساب قيمة دالة للقيم الوسيطة لـ ن
  6. الخطوة 3: الحساب التكراري لقيمة الوظيفة
  7. تعقيد الخوارزمية وتحسينها
  8. سؤال وجواب
  9. ما خوارزمية يمكن استخدامها لحساب قيمة وظيفة و (ن) وفقا لنسب معينة?
  10. كيف يمكن أن قيمة وظيفة و(ن) أن تحسب إلا إذا و (1 ) = 1 ومعروفة نسب معينة?
  11. كيف يمكن التعبير عن قيمة الدالة و (ن) من حيث قيم الدالة و(ن-1) و و(1)?

خوارزمية لحساب وظيفة و (ن) ، حيث ن هو عدد طبيعي

يتم تعريف هذه الوظيفة و (ن) للأعداد الطبيعية ويمكن حسابها باستخدام العلاقات التالية:

  1. إذا ن = 1 ، ثم و (ن) = 1.
  2. إذا ن حتى ، ثم و (ن) = و (ن / 2).
  3. إذا ن غريب ، ثم و (ن) = و (3ن + 1).

يمكن تمثيل الخوارزمية كدالة تكرارية:

وظيفة و (ن) {

إذا (ن === 1) {

عودة 1;

} آخر إذا (ن ٪ 2 = = = 0) {

العودة و (ن / 2);

} آخر {

العودة و (3 * ن + 1);

}

}

على سبيل المثال ، إذا أردنا حساب و(5) ، يمكننا تطبيق العلاقات باستمرار:

  • واو(5) = واو (3 * 5 + 1 ) = و (16)
  • = و (16 / 2) = و (8)
  • = و (8 / 2) = و (4)
  • = و (4 / 2) = و (2)
  • = و (2 / 2) = و (1)
  • = 1

وبالتالي ، فإن قيمة الدالة و (5) هي 1.

يمكن تحسين الخوارزمية باستخدام المذكرة لحفظ القيم المحسوبة للوظيفة.

على سبيل المثال ، يمكننا استخدام كائن لتخزين القيم المحسوبة بالفعل:

مذكرة كونست = {};

وظيفة و (ن) {

إذا (ن في المذكرة) {

عودة مذكرة [ن];

}

دع النتيجة;

إذا (ن === 1) {

النتيجة = 1;

} آخر إذا (ن ٪ 2 = = = 0) {

النتيجة = و (ن / 2);

} آخر {

النتيجة = و (3 * ن + 1);

}

مذكرة [ن] = نتيجة;

نتيجة الإرجاع;

}

وبالتالي ، نتجنب الحسابات المتكررة لقيم الوظيفة نفسها.

قيمة وظيفة و (1)

الوظيفة المحددة لها قيمة أولية: و (1) = 1.

هذا يعني أننا إذا استبدلنا الرقم 1 في الدالة و (ن),

وسوف يعود لنا النتيجة 1.

وهكذا ، و (1) = 1.

وصف الخوارزمية لحساب الوظيفة

تعتمد خوارزمية حساب الوظيفة و (ن) بنسب معينة على المكالمات العودية.

بادئ ذي بدء ، يتم تعيين الحالة الأساسية: و(1) = 1. هذا يعني أن قيمة الدالة عند ن = 1 هي 1.

ثم ، لأي ن أكبر من 1 ، يتم تنفيذ ما يلي:

  1. يتم حساب قيمة الدالة و (ن-1) عن طريق الاتصال المتكرر.
  2. يتم حساب قيمة الدالة و (ن-2) عن طريق الاتصال المتكرر.
  3. يتم حساب قيمة الدالة و (ن) بإضافة القيم و(ن-1) و و(ن-2).

وبالتالي ، لحساب قيمة الوظيفة و (ن) ، أين ن أكبر من 1 ، يتم حساب قيم الدوال للعددين الطبيعيين السابقين أولا ، ثم يتم إضافة القيم الناتجة معا. تستمر عملية الاستدعاءات العودية حتى يتم الوصول إلى الحالة الأساسية (ن = 1) وإرجاع القيمة 1.

باستخدام الخوارزمية لحساب الوظيفة و (ن) ، يمكنك العثور على قيمة الوظيفة لأي رقم طبيعي ن.

الخطوة 1: تحديد الحالة الأساسية

لحل مشكلة حساب قيمة الدالة و (ن) ، أين ن هو رقم طبيعي ، وفقا للنسب المعطاة ، من المهم تحديد الحالة الأساسية. الحالة الأساسية هي قيمة الوظيفة و بأقل قيمة ممكنة ن. في هذه الحالة ، يتم تعيين ذلك و (1) = 1.

تحدد الحالة الأساسية القيمة الأولية للدالة ، والتي سيتم من خلالها حساب القيم اللاحقة عند الوسيطة ن يتم زيادة. سيسمح لنا تحديد الحالة الأساسية بإنشاء قاعدة لخوارزمية متكررة لحساب قيمة الدالة.

باستخدام النسبة المعطاة و(1) = 1 ، يمكننا البدء في حل مشكلة حساب قيمة الوظيفة و (ن) لعدد طبيعي تعسفي ن.

الخطوة 2: حساب قيمة الدالة للقيم الوسيطة لـ ن

بعد تحديد قيمة الدالة و (1) = 1 ، من الضروري حساب قيمة الدالة للقيم الوسيطة لـ ن. يتم استخدام النسبة المعطاة لهذا:

و (ن) = و (ن-1) + و (ن-2)

لحساب قيمة الدالة في المراحل المتوسطة ، من الضروري معرفة قيم الدالة لـ ن-1 و ن-2.

لكل قيمة وسيطة من ن ، يتم تنفيذ الخطوات التالية:

  1. احسب قيمة و (ن-1) عن طريق استبدال قيمة ن-1 في الدالة.
  2. احسب قيمة و (ن-2) عن طريق استبدال قيمة ن-2 في الدالة.
  3. إضافة القيم التي تم الحصول عليها من و(ن-1) و(ن-2) للحصول على قيمة و(ن).

وبالتالي ، يتم حساب قيمة الوظيفة و(ن) بالتتابع لكل قيمة وسيطة من ن ، بدءا من و(2) وحتى القيمة المطلوبة ن.

على سبيل المثال ، لحساب قيمة و(2) ، تحتاج إلى معرفة قيم و(1) و(0). باستخدام نسبة معينة و (ن) = و (ن-1) + و (ن-2) ، نحصل على:

  • و (2) = و (1) + و (0)
  • و (2) = 1 + 0
  • واو(2) = 1

وبالمثل ، يمكنك حساب قيم و (3) ، و(4) ، إلخ. باستخدام قيم و(1) و (2).

وبالتالي ، تتضمن الخطوة 2 حساب قيم الوظيفة بالتتابع لجميع القيم الوسيطة لـ ن ، باستخدام النسبة المعطاة و(ن) = و(ن-1) + و(ن-2).

الخطوة 3: الحساب التكراري لقيمة الوظيفة

بعد تحديد القيم الأولية للدالة ، يمكنك البدء في حساب قيمة الدالة بشكل متكرر و(ن).

الخطوة 1: تهيئة المتغيرات: ن = 1 والنتيجة = 1. هنا ن هي القيمة الحالية للوسيطة الدالة ، والنتيجة هي القيمة المحسوبة الحالية للدالة.

الخطوة 2: تحقق من الحالة: ن < = ن_ماكس (أين ن_ماكس هي القيمة القصوى لوسيطة الوظيفة التي يحددها شرط المهمة). إذا تم استيفاء الشرط ، فانتقل إلى الخطوة التالية.

الخطوة 3: احسب قيمة الدالة للقيمة الحالية للوسيطة: النتيجة = و(ن). هنا و (ن) هو تعبير يتم تعريفه من خلال حالة المشكلة.

الخطوة 4: زيادة قيمة الوسيطة بمقدار 1: ن = ن + 1.

الخطوة 5: انتقل إلى الخطوة 2.

  1. كرر الخطوات من 2 إلى 5 حتى يتم استيفاء الشرط من الخطوة 2.
  2. في نهاية التكرارات ، قيمة الدالة و (ن) للوسيطة المحددة ن سيتم حسابها وكتابتها إلى متغير النتيجة.

تعقيد الخوارزمية وتحسينها

الخوارزمية لحساب قيمة الدالة و (ن) باستخدام النسب المعطاة و (1) = 1 قد يكون لها تعقيد مختلف ، اعتمادا على طريقة تنفيذ الخوارزمية.

قد يكون استخدام العودية أحد أبسط المتغيرات في الخوارزمية. مع هذا النهج ، سيكون للخوارزمية تعقيد زمني لـ ا (ن) ، منذ ذلك الحين لحساب قيمة الدالة للرقم ن ، استدعاء دالة للرقم ن-1 ستكون مطلوبة. ومع ذلك ، لقيم كبيرة من ن ، قد تواجه الخوارزمية العودية مشكلة تجاوز مكدس الاستدعاءات.

يمكن استخدام نهج تكراري لتجنب مشاكل تجاوز سعة المكدس وتحسين الخوارزمية. في هذه الحالة ، سيكون للخوارزمية تعقيد ثابت لـ ا (1) ، لأنه سيكون كافيا بالنسبة لنا لتخزين قيمتين متتاليتين فقط لحساب قيمة الوظيفة. ستبدو الخوارزمية كما يلي:

حساب الدالة (ن) {

دع أ = 1;

دع ب = 1;

دع النتيجة = 0;

إلى عن على (دعني = 2 ؛ أنا <= ن ؛ أنا i) {

النتيجة = أ + ب;

أ = ب;

ب = النتيجة;

}

نتيجة الإرجاع;

}

مع هذا النهج ، لن تكون هناك مشاكل مع تجاوز المكدس ، وستعمل الخوارزمية بكفاءة لأي قيم ن.

سؤال وجواب

ما خوارزمية يمكن استخدامها لحساب قيمة وظيفة و (ن) وفقا لنسب معينة?

لحساب قيمة الدالة و (ن) وفقا للنسب المعطاة و (1) = 1 ، يمكن استخدام خوارزمية تكرارية. تبدأ الخوارزمية بالتحقق مما إذا كان ن يساوي 1. إذا كان الأمر كذلك ، يتم إرجاع القيمة 1. خلاف ذلك ، فإن الخوارزمية تدعو نفسها لحساب قيمة و (ن-1) ويضربها ن. وبالتالي ، فإن وظيفة و (ن) يتم حسابها عن طريق استدعاء الدالة بالتتابع و للقيمة ن-1 والضرب في ن.

كيف يمكن أن قيمة وظيفة و(ن) أن تحسب إلا إذا و (1 ) = 1 ومعروفة نسب معينة?

حساب قيمة الدالة و (ن) وفقا للنسب المعطاة و (1) = 1 ممكن باستخدام نهج تكراري. للقيام بذلك ، تحقق مما إذا كان ن يساوي 1. إذا كان الأمر كذلك ، يتم إرجاع القيمة 1. خلاف ذلك ، فإن الخوارزمية تدعو نفسها لحساب قيمة و (ن-1) ويضربها ن. وبالتالي ، فإن وظيفة و(ن) يتم حسابها عن طريق استدعاء الدالة بالتتابع و للقيمة ن-1 والضرب في ن.

كيف يمكننا التعبير عن قيمة الدالة و (ن) من حيث قيم الدالة و(ن-1) و و(1)?

معرفة القيم المعطاة للدالة و (1) = 1 والنسبة و(ن) = ن * و(ن-1) ، يمكننا التعبير عن قيمة الوظيفة و(ن) من حيث قيم الوظيفة و(ن-1) و(1). إذا ن هو 1 ، ثم قيمة و (ن) هو 1. خلاف ذلك ، يمكن الحصول على قيمة و(ن) بضرب قيمة و(ن-1) في ن. وبالتالي ، يمكن التعبير عن قيمة الوظيفة و(ن) بشكل متكرر من حيث القيم و(ن-1) و(1).