ډونالډ نات یو کمپیوټر ساینس پوه دی چې د خپلو کتابونو دقت په اړه دومره پاملرنه کوي چې هغه وړاندیز کوي یو هیکس ډالر ($2,56, 0x$1,00) د کومې "غلطۍ" موندلو لپاره، چیرته چې یوه تېروتنه د هر هغه څه په توګه تعریف شوې چې "تخنیکي، تاریخي، ټایپوګرافیکي، یا په سیاسي توګه غلط وي." ما واقعیا غوښتل چې له نوت څخه چک ترلاسه کړم ، نو ما پریکړه وکړه چې د هغه په میګنم اپس کې غلطۍ وګورم "د پروګرام کولو هنر" (TAOCP). موږ د دریو موندلو توان درلود. د هغه په خبرو کې ریښتیا، نټ یو چک واستاوه 0x$3,00.

لکه څنګه چې تاسو لیدلی شئ، دا یو ریښتینی چک ندی. Knuth د حقیقي چکونو لیږلو لپاره کارول کیده، مګر په 2008 کې یې له امله ودرول . هغه اوس "د زیرمې شخصي سندونه" لیږي (BoSS). هغه وايي چې هغه چمتو دی چې د اړتیا په صورت کې ریښتینې پیسې واستوي، مګر داسې ښکاري چې دا ډیره ستونزه ده.
ما دوه ټایپونه او یوه تاریخي تېروتنه وموندله. زه به یې د ټیټوالي کمولو په ترتیب کې لیست کړم.
ټایپ #1
لومړی ټایپ د دریم ټوک "ترتیب او لټون" په 392 مخ کې دی، له ښکته څخه اتمه کرښه: "د ناکامې لټون وروسته، ځینې وختونه (کله ناکله) دا غوره ده چې په میز کې یو نوی ریکارډ داخل کړئ. K; هغه میتود چې دا کار کوي د لټون او داخلولو الګوریتم په نوم یادیږي. خطا د دې پرځای ده ځینې وخت باید وي کله ناکله.
البته، دا ډول تېروتنه د حیرانتیا خبره نه ده. یوازې پدې مقاله کې یو څو ټایپونه شتون لري (د دوی موندلو لپاره هیڅ انعام نشته). د حیرانتیا خبره دا ده چې دا د اوږدې مودې لپاره د پام وړ نه و. پاڼه 392 د ریاضی برخه کې ژور نه ښخ شوی، دا دی لومړۍ پاڼه شپږم څپرکی "لټون"! احتمالا د کتاب ترټولو لوستل شوي برخې څخه. په تیوري کې، باید لږ تر لږه ټایپونه وي، مګر نه.
په هرصورت، که تاسو کله هم د TAOCP لوستلو په اړه فکر کړی وي، دا هڅه وکړئ. ډیری به ووایی چې دا دی لارښود، د مستقیم لوستلو لپاره ندي ، مګر دا ریښتیا ندي. لیکوال روښانه نقطه او ځانګړی طرز لري. یوازینی شی چې د لوستلو مخه نیسي د ریاضیاتو پیچلتیا ده. په هرصورت، دلته یو ساده حل شتون لري: تر هغه وخته پورې ولولئ چې تاسو ریاضی ته راشئ چې تاسو نه پوهیږئ، دا پریږدئ، او بلې برخې ته لاړ شئ چې تاسو یې پوهیږئ. د دې لارې لوستل، زه لږترلږه 80٪ کتاب له لاسه ورکوم، مګر نور 20٪ ډیر ښه دی!
دا هم ویل کیږي چې TAOCP غیر اړونده، زوړ دی یا بل ډول د "ریښتیني برنامه کولو" لپاره نه پلي کیږي. دا هم ریښتیا نه ده. د مثال په توګه، د معرفي کولو وروسته لومړۍ برخه په غیر ترتیب شوي صف کې د عنصر موندلو ته ګوري. ترټولو ساده الګوریتم د ټولو پروګرام کونکو لپاره پیژندل کیږي. پوائنټر د صف په پیل کې پیل کړئ، بیا په لوپ کې لاندې کار وکړئ:
- وګورئ چې ایا اوسنی عنصر مطلوب دی. که داسې وي، موږ یې بیرته راګرځوو؛ که نه
- وګورئ چې آیا پوائنټر د صف له حد څخه بهر دی. که داسې وي، یوه تېروتنه بیرته راوګرځوئ؛ که نه
- زوم کړئ او دوام ورکړئ.
اوس په پام کې ونیسئ: دا الګوریتم په اوسط ډول څومره حد چیکونو ته اړتیا لري؟ په بدترین حالت کې، چیرې چې سرې یو عنصر نلري، په لیست کې هر عنصر به یو چک ته اړتیا ولري، او په اوسط ډول دا به یو څه وي.
. یو هوښیار لټون الګوریتم کولی شي یوازې د یو حد چیک سره لرې شي. مطلوب عنصر د صف په پای کې ضمیمه کړئ، بیا د صف په پیل کې پوائنټر پیل کړئ او لاندې په لوپ کې ترسره کړئ:
- وګورئ چې ایا اوسنی عنصر مطلوب دی. که داسې وي، موږ یو ځواب بیرته راګرځوو که چیرې اشاره په صف کې وي، یا یوه تېروتنه که دا نه وي. نوره
- زوم کړئ او دوام ورکړئ.
په یوه لاره یا بل ډول، د عنصر موندلو تضمین دی، او د حد چک یوازې یو ځل ترسره کیږي کله چې دا پیښ شي. دا یو ژور نظر دی، مګر دا حتی د نوي پروګرام کونکي لپاره خورا ساده دی. زه شاید نشم کولی د نورو سره د کار اړونده خبرې وکړم، مګر زه سمدلاسه توانیدلی وم چې دا حکمت دواړه په شخصي او مسلکي کوډ کې پلي کړم. د TAOCP کتاب د داسې قیمتي جواهراتو څخه ډک دی (د عادلانه کیدو لپاره ، دلته ډیر عجیب شیان هم شتون لري ، لکه ).
"لټون، لټون
ډیر اوږد
لټون، لټون
ما یوازې غوښتل نڅا وکړم"
- لوتر وانډروس، "لټون" (1980)
ټایپ #2
دوهم ټایپ په 4A حجم کې دی، مشترک الګوریتم، برخه 1. پاڼه 60 یوه ستونزه بیانوي چې په مختلفو کیسینو کې د ترسره کولو لپاره د کامیډیانو مهالویش کې شامل دي. د ریښتیني ژوند ډیری کامیډیان د مثالونو په توګه یاد شوي ، پشمول د لیلی توملین ، ویرډ ال یانکوویچ ، او رابین ویلیامز ، کوم چې لاهم ژوندی و کله چې کتاب خپور شو. نوت تل په لیست کې بشپړ نومونه لیستوي، نو ویلیامز په 882 پاڼه کې د "ویلیمز، رابین مکلوریم" په توګه لیست شوی. مګر د هغه منځنی نوم د "n" سره پای ته رسیږي نه "m"، دا دی، مکلاورین.
مکلاورین د هغه د مور لومړنی نوم و. هغه د مسیسیپي د 34 والي انسلم جوزف مکلاورین لوی لمسی وه. د هغه واکمني، په ښکاره ډول، د کوم ښه لپاره په یاد نه و. له کتاب څخه :
"د مکلاورین د ادارې په وخت کې تر ټولو مهمه پیښه د 1898 کال په پسرلي کې د اسپانیا په وړاندې د متحده ایالاتو د جګړې اعلان وه ... له بده مرغه، جګړې ممکن ځینو حکومتي چارواکو ته د رشوت ورکولو فرصت برابر کړی وي. مکلاورین په مختلفو شکمنو کړنو تورن شوی و، پشمول د خپلوانو پالنه او د بخښنې له واکونو څخه ډیر کار اخیستل. د تودوخې غورځنګ په جریان کې ، منتقدینو والي په شرابي تورن کړ ، کوم چې هغه په عامه توګه اعتراف وکړ.
تاریخي تېروتنه
پام وکړئ دودیز ضرب الګوریتم د ښوونځي له نصاب څخه. دا څو واحد عددي ضرب ته اړتیا لري؟ فرض کړئ چې تاسو ضرب کړئ
- عددي شمیره
په
-بټ
. لومړی لومړی عدد ضرب کړئ
د هرې عدد لپاره
یو یو. بیا دوهم عدد ضرب کړئ
د هرې عدد لپاره
یو په یو او داسې نور تر هغه چې تاسو د ټولو شمیرو له لارې لاړ شئ
. په دې توګه دودیز ضرب ته اړتیا ده
ابتدايي ضربات په ځانګړې توګه، د دوو عددونو سره ضرب کول
رتبې ته اړتیا ده
د واحد عدد ضربات.
دا بد دی، مګر دا ممکنه ده چې د شوروي ریاضي پوه اناتولي الیکسیوویچ کاراتسوبا لخوا رامینځته شوي میتود په کارولو سره پروسه غوره کړئ. راځئ چې دا فرض کړو
и
- دوه عددي لسیزې شمیرې؛ دا، شمیرې شتون لري
,
,
,
لکه دا
и
(د دې الګوریتم عمومي کول لوی شمیر ته اړتیا لري؛ که څه هم دا خورا ستونزمن نه دی، د دې لپاره چې په جزیاتو کې غلطۍ ونلري، زه به یو ساده مثال ته ښه پاتې شم). بیا
,
,
. د binomials ضرب الاجل ورکوي
. په اوس وخت کې موږ لاهم لرو
د واحد عدد ضرب:
,
,
,
. اوس راځئ چې اضافه او کم کړو
. د یو څو تنظیماتو وروسته، کوم چې زه به د لوستونکي لپاره د تمرین په توګه پریږدم، دا معلومه شوه
- یوازې درې واحد عددي ضربونه! (ځینې ثابت کفایتونه شتون لري، مګر دوی یوازې د عددونو په اضافه کولو او بدلولو سره محاسبه کیدی شي).
د ثبوت غوښتنه مه کوئ، مګر کاراتسوبا الګوریتم (په تکراري توګه د پورتنۍ بیلګې څخه عمومي شوی) د دودیز ضرب کولو میتود سره وده کوي
مخکې عملیات
. مهرباني وکړئ په یاد ولرئ چې دا د الګوریتم لپاره ریښتینی پرمختګ دی، نه د ذهني محاسبې لپاره اصلاح کول. په حقیقت کې، الګوریتم د ذهني ریاضي لپاره مناسب نه دی، ځکه چې دا د تکراري عملیاتو لپاره لوی سر لګښتونو ته اړتیا لري. سربیره پردې، اغیز به په بشپړ ډول څرګند نشي تر هغه چې شمیرې خورا لوی شي (له نېکه مرغه، د کاراتسوبا الګوریتم د حتی ګړندۍ میتودونو لخوا بدل شوی: د مارچ په 2019 کې، یو الګوریتم خپور شو چې یوازې اړتیا لري. ضرب ګړندیتوب یوازې د تصور وړ لوی شمیر باندې پلي کیږي).
دا الګوریتم د 295 جلد XNUMX مخ کې تشریح شوی، نیمه شمیره الګوریتم. هلته نوت لیکي: "دا د حیرانتیا خبره ده چې دا نظر یوازې په کې وموندل شو 1962 کال، کله چې د کاراتسوبا الګوریتم تشریح کولو یوه مقاله خپره شوه. خو! په 1995 کې، کاراتسوبا یوه مقاله "کمپیوټیشنل پیچلتیا" خپره کړه، کوم چې ډیری شیان بیانوي: 1) د 1956 په شاوخوا کې، کولموګوروف وړاندیز وکړ چې ضرب په لږ وخت کې نشي کیدی.
ګامونه 2) په 1960 کال کاراتسوبا په سیمینار کې ګډون وکړ چیرې چې کولموګوروف خپله فرضیه n² وړاندې کړه. 3) "په یوه اونۍ کې،" کاراتسوبا د "تقسیم او فتح" الګوریتم رامینځته کړ. 4) په 1962 کې کولموګوروف یوه مقاله لیکلې او خپره کړې د کاراتسوبا په استازیتوب د الګوریتم تشریح سره. "ما یوازې د دې مقالې په اړه وروسته له هغه وموندله چې دا بیا خپره شوه."
نو تېروتنه د دې پرځای ده 1962 باید مشخص شي 1960 کال بس نور څه نه.
شننه
د تېروتنې موندل ځانګړي مهارت ته اړتیا نلري.
- لومړۍ تېروتنه د امکان تر حده کوچنۍ وه او په نسبتا لید ځای کې وه (د څپرکي پیل). هر احمق به یې موندلی وی؛ زه یوازې هغه احمق شوم.
- د دویم ټایپ موندلو لپاره لیوالتیا او لیوالتیا ته اړتیا ده، مګر مهارت نه. د "ویلیمز" لپاره شاخص د حجم په وروستۍ پاڼه کې دی، د کتاب خورا مهم برخه. زه یوازې د شاخص په لور روان وم (دا هغومره زړه بوږنونکي ندي لکه څنګه چې ښکاري ، ځکه چې د نوت په شاخصونو کې د ایسټر هګۍ پټې دي. د مثال په توګه ، په عربي او عبراني کې ننوتل شتون لري چې دواړه 66 مخ ته اشاره کوي. مګر دا پاڼه یادونه نه کوي. یا هم ژبې؛ پرځای یې دا هغه ژبې ته اشاره کوي چې له ښي خوا څخه لوستل کیږي). او دوهم نوم زما پام ځانته راواړوله. له هغه ځایه چې زه معمولا ویکیپیډیا لولم، ما رابین ویلیامز چک کړ او یو توپیر یې ولید.
- کاش زه ووایم چې ما د تاریخي تېروتنې موندلو لپاره جدي څیړنه کړې ، مګر واقعیا ما یوازې ولیدل . لومړۍ کرښې وايي: "کاراتسوبا الګوریتم یو ګړندی ضرب الګوریتم دی. د اناتولي کاراتسوبا لخوا په 1960 کې کشف او په 1962 کې خپور شو. له دې وروسته ټول هغه څه پاتې وو چې دوه او دوه اضافه کړي.
په راتلونکي کې زه غواړم یو ډیر مهم بګ ومومئ ، په ځانګړي توګه د نوت کوډ کې. زه هم غواړم چې د بنسټیز الګوریتم په لومړي ټوک کې یو بګ ومومئ. شاید ما دا موندلی وي، مګر د ځینو دلیلونو لپاره محلي کتابتون یوازې 2، 3 او 4A لري.
مالي حقایق:
- په مجموع کې، په TAOCP کې زما ونډه یوازې درې کرکټرونه لري: یو اضافه s، بدیل m په n и 2 په 0. په $2,56 کې، دا ځینې ښکلي ګټور سمبولونه دي؛ که تاسو ته دا ډول پیسې درکړل شي، د 1000 کلمو یوه مقاله (په اوسط ډول څلور حروف) به تاسو ته لس لویې پیسې درکړي.
- د درې هیکساډیسیمال ډالرو سره، زه، د 29 نورو اتباعو سره، د سان سیرف بانک د ترټولو بډایه زیرمو په لیست کې (د می 69، 1 پورې) په 2019 ځای کې تړلی یم.
د Knuth څخه د چکونو په اړه نور بحثونه
د Knuth په کتابونو کې د غلطیو موندلو لپاره عمومي سپارښتنې. ډیری یې د تخنیکي غلطیو اندیښنه لري، کوم چې زه یې نه لرم. دلته یو وړاندیز شتون لري چې ما په جدي توګه واخیست:
دا غوره ده چې انتظار وکړئ تر هغه چې تاسو د سپارلو لپاره د غلطیو سیټ راټول کړی نه وي. د ډیری ریښتیني مګر خورا ارزښت لرونکي غلطیو په یوځای کولو سره ، تاسو احتمال ډیروئ چې یو له دوی څخه به واقعیا د غلطۍ یا مشورې په توګه وپیژندل شي. که تاسو په یو وخت کې یو غلطی وسپارئ، هر یو ممکن په انفرادي ډول رد شي.
ما نه غوښتل چې یوازې بې ځایه ټایپونه ولیږم، مګر مشوره یې واخیسته او لیک یې یوازې هغه وخت واستاوه کله چې ما یوه تاریخي تېروتنه وموندله چې خورا جدي ښکاري.
آشوتوش مهرا په سان سیرف کې دریم بډایه پانګه اچونکی دی چې په BoSS کې د 0x$207.f0 خالص ارزښت سره.
- متفرقه:
سرچینه: www.habr.com
