 שאַפֿן אַן אַלגערידאַם פֿאַר סאַלווינג אַ טורעם פון כאַנוי פּראָבלעם.
דער טורעם פון כאַנוי איז אַ קלאַסיש רעטעניש שפּיל מיט אַ ציל צו אַריבערפירן אַ אָנלייגן פון דיסקס פון איין קרוק צו אנדערן מיט די פאלגענדע דריי קאַנסטריינץ: 1. בלויז איין דיסק קענען זיין אריבערגעפארן אין אַ צייט. 2. יעדער מאַך באשטייט פון נעמען דעם אויבערשטן דיסק פון איין קרוק און מאַך עס צו אן אנדער קרוק. 3. קיין דיסק קען זיין שטעלן אויף שפּיץ פון אַ קלענערער דיסק. געגעבן די קאַנסטריינץ, מיר קענען נוצן אַ רעקורסיווע אַלגערידאַם צו סאָלווע די טאַוער פון כאַנוי רעטעניש. לאָמיר דעפינירן די פֿונקציע `towerOfHanoi(n, מקור, דעסטיניישאַן, אַגזיליערי)` ווו `n` איז די נומער פון דיסקס, `מקור` איז דער קרוק ווו די דיסקס זענען טכילעס סטאַקט, `דעסטיניישאַן` איז דער קרוק ווו די דיסקס דאַרפֿן צו זיין טראַנספערד צו און `אַגזיליערי` איז די דריט קרוק וואָס קענען זיין געוויינט ווי אַ צייַטווייַליק קרוק פֿאַר מאָווינג די דיסקס. 1. אויב `n == 1`, מאַך די שפּיץ דיסק פון `מקור` צו `דעסטיניישאַן` קרוק. 2. אויב `n> 1`, דעמאָלט: אַ. רעקורסיוועלי רופן `towerOfHanoi (n-1, מקור, אַגזיליערי, דעסטיניישאַן)` צו אַריבערפירן די שפּיץ `n-1` דיסקס פון די `מקור` קרוק צו די `אַגזיליערי` קרוק ניצן די `דעסטיניישאַן` קרוק ווי די צייַטווייַליק קרוק. ב. מאַך די 'n'טער דיסק פון די 'מקור' קרוק צו די 'דעסטיניישאַן' קרוק. ג. רעקורסיוועלי רופן `towerOfHanoi (n-1, אַגזיליערי, דעסטיניישאַן, מקור)` צו אַריבערפירן די `n-1` דיסקס פון די `אַגזיליערי` קרוק צו די `דעסטיניישאַן` קרוק ניצן די `מקור` קרוק ווי די צייטווייליגע קרוק. ונטער איז אַ מוסטער קאָד פֿאַר די אַלגערידאַם אין פּיטהאָן: ``` דעף towerOfHanoi (n, מקור, דעסטיניישאַן, אַגזיליערי): אויב n == 1: דרוק (f' מאַך דיסק 1 פון {מקור} צו {דעסטיניישאַן}') אַנדערש: towerOfHanoi(n-1, מקור, אַגזיליערי, דעסטיניישאַן) print(f'מאָווע דיסק {n} פֿון {מקור} צו {דעסטינאַטיאָן}') towerOfHanoi(n-1, אַגזיליערי, דעסטיניישאַן, מקור) ``` ווען די פֿונקציע איז גערופֿן מיט די צונעמען ערשט וואַלועס, עס וועט דרוקן די שריט-דורך-שריט לייזונג צו די טאַוער פון כאַנוי רעטעניש. פֿאַר בייַשפּיל: ``` towerOfHanoi(3, 'A', 'B', 'C') ``` רעזולטאַט וועט זיין: ``` מאַך דיסק