බළලුන් , 62 + 4 = බයිට් 66 ක්
*(>:^]*(*>{<-!<:^>[:((-<)<(<!-)>>-_)_<<]>:]<]]}*<)]*(:)*=<*)>]
-ln
විධාන රේඛා ධජ සමඟ ධාවනය කළ යුතුය (එබැවින් +4 බයිට්). 0
සංයුක්ත අංක සහ 1
ප්රාථමික සඳහා මුද්රණ .
එය මාර්ගගතව උත්සාහ කරන්න!
මම හිතන්නේ මෙය සුළුපටු නොවන පළමු බළලුන් වැඩසටහනයි.
පැහැදිලි කිරීම
ඉක්මන් ස්ටැක් බළලුන් හැඳින්වීම:
- ස්ටැක් බළලුන් ක්රියාත්මක වන්නේ අසීමිත තොගයක් මත වන අතර, ටේප් හෙඩ් එකක් වර්තමාන තොගයක් වෙත යොමු කරයි. සෑම තොගයක්ම මුලින් අසීමිත ශුන්යයන්ගෙන් පිරී ඇත. මම සාමාන්යයෙන් මගේ වචන වල මෙම ශුන්යයන් නොසලකා හරිනු ඇත, එබැවින් මම "තොගයේ පතුල" යැයි කියන විට මම අදහස් කරන්නේ අඩුම ශුන්ය නොවන අගය වන අතර මම "තොගය හිස්" යැයි පැවසුවහොත් එයින් අදහස් කරන්නේ එහි ඇත්තේ ශුන්යයන් පමණි.
- වැඩසටහන ආරම්භ වීමට පෙර, a
-1
ආරම්භක තොගයට තල්ලු කරනු ලැබේ, පසුව සම්පූර්ණ ආදානය ඒ මතට තල්ලු කරනු ලැබේ. මෙම අවස්ථාවේ දී, හේතුවෙන්-n
ධජය හේතුවෙන් ආදානය දශම සංඛ්යාවක් ලෙස කියවනු ලැබේ.
- වැඩසටහන අවසානයේ, වත්මන් තොගය ප්රතිදානය සඳහා භාවිතා කරයි. එය තියෙනවා නම්
-1
පතුලේ, එය නොසලකා හරිනු ලැබේ. නැවතත්, -n
ධජය හේතුවෙන් , තොගයේ අගයන් සරලවම රේඛීය-වෙන් කළ දශම සංඛ්යා ලෙස මුද්රණය කෙරේ.
- ස්ටැක් බළලුන් යනු ආපසු හැරවිය හැකි වැඩසටහන් භාෂාවකි: සෑම කේත කැබැල්ලක්ම අහෝසි කළ හැකිය (ස්ටැක් බළලුන් පැහැදිලි ඉතිහාසයක් නොමැතිව). වඩාත් විශේෂිතව, කේතය ඕනෑම කෑල්ලක් ආපසු හැරවීම සඳහා, ඔබ හුදෙක් එය පිළිබිඹු, උදා:
<<(\-_)
බවට පත් (_-/)>>
. මෙම සැලසුම් ඉලක්කය භාෂාවේ පවතින්නේ කුමන ආකාරයේ ක්රියාකරුවන් සහ පාලන ප්රවාහ ඉදිකිරීම් සහ ගෝලීය මතක තත්වය මත ඔබට ගණනය කළ හැකි කාර්යයන් මොනවාද යන්න පිළිබඳව තරමක් දැඩි සීමාවන් පනවා ඇත.
ඒ සියල්ලටම ඉහළින්, සෑම ස්ටැක් කැට්ස් වැඩසටහනක්ම ස්වයං-සමමිතික විය යුතුය. ඉහත මූලාශ්ර කේතය සඳහා මෙය එසේ නොවන බව ඔබට පෙනෙනු ඇත. මෙය කුමක් ද -l
එම මධ්යස්ථානය සඳහා පළමු අක්ෂරය භාවිතා වමට කේතය එය නිසැකයෙන්ම කැඩපත්: ධජය සඳහා වේ. එබැවින් සත්ය වැඩසටහන:
[<(*>=*(:)*[(>*{[[>[:<[>>_(_-<<(-!>)>(>-)):]<^:>!->}<*)*[^:<)*(>:^]*(*>{<-!<:^>[:((-<)<(<!-)>>-_)_<<]>:]<]]}*<)]*(:)*=<*)>]
සමස්ත කේතය සමඟ effectively ලදායී ලෙස ක්රමලේඛනය කිරීම ඉතා සුළු හා නොදැනුවත්ව සිදු කරන අතර මිනිසෙකුට එය කළ හැක්කේ කෙසේදැයි තවමත් සොයාගෙන නැත. අපි තිරිසන් එවැනි වැඩකටයුතු සරල කාර්යයන් සඳහා බල කර ඇත, නමුත් අතින් ඒ අසල කොතැනකටවත් යාමට නොහැකි වනු ඇත. වාසනාවකට මෙන්, වැඩසටහනේ අඩක් නොසලකා හැරීමට ඔබට ඉඩ සලසන මූලික රටාවක් අප සොයාගෙන ඇත. මෙය නිසැකවම උප ප්රශස්ත වුවත්, දැනට ස්ටැක් බළලුන් තුළ program ලදායී ලෙස වැඩසටහන්ගත කළ හැකි එකම ක්රමය එයයි.
එබැවින් මෙම පිළිතුරෙහි, එම රටාවේ අච්චුව මෙයයි (එය ක්රියාත්මක කරන ආකාරයෙහි යම් විචල්යතාවයක් ඇත):
[<(...)*(...)>]
වැඩසටහන ආරම්භ වූ විට, තොග පටිය මේ ආකාරයට පෙනේ (ආදානය සඳහා 4
, කියන්න):
4
... -1 ...
0
^
මෙම [
වම් (සහ ටේප් හිස දිගේ) වෙත පියවරයන් සිරස් එකතුවේ ඉහල - අපි "තල්ලු" මෙම කතා කරන්න. හා <
ටේප් හිස පමණක් ගමන් කරයි. එබැවින් පළමු විධාන දෙකෙන් පසුව, අපට මෙම තත්වය තිබේ:
... 4 -1 ...
0 0 0
^
දැන් (...)
එය ලූපයක් වන අතර එය කොන්දේසි සහිතව ඉතා පහසුවෙන් භාවිතා කළ හැකිය: ලූපය ඇතුල් කර ඉතිරි වන්නේ වත්මන් තොගයේ ඉහළට ධනාත්මක වූ විට පමණි. එය දැනට ශුන්ය බැවින්, අපි වැඩසටහනේ පළමු භාගය මඟ හැරෙමු. දැන් කේන්ද්රීය විධානය වේ *
. මෙය සරලවම XOR 1
, එනම් එය තොගයේ ඉහළ සිට අවම වශයෙන් සැලකිය යුතු ප්රමාණයක් ටොගල් කරයි, මේ අවස්ථාවේ දී 0
එය a 1
:
... 1 4 -1 ...
0 0 0
^
දැන් අපට දර්පණ රූපය හමු වේ (...)
. මෙම කාලය සිරස් එකතුවේ ඉහල ධනාත්මක සහ අපි කරන්න කේතය ඇතුලත් කරන්න. වරහන් තුළ සිදුවන්නේ කුමක්ද යන්න සොයා බැලීමට පෙර, අපි අවසානයේ දී ඔතා ගන්නේ කෙසේද යන්න පැහැදිලි කිරීමට මට ඉඩ දෙන්න: මෙම කොටස අවසානයේ අපට ධනාත්මක අගයක් මත ටේප් හිස නැවත ඇති බව සහතික කිරීමට අපට අවශ්යය (එවිට තනි ප්රතිඵලයක්ම හා සරලව රේඛීය කොන්දේසි ලෙස භාවිතා පසු ලූපය අවසන් කිරීමක්), දකුණට අඩුක්කුව නිමැවුමේ අඩුක්කුව අයිතිය හිමි බවත් ඒ බව රොක්ව -1
. එය එසේ නම්, අපි ලූපයෙන් ඉවත්ව, >
ප්රතිදාන අගය වෙතට ගමන් කර ]
එය මතට තල්ලු කරන්නෙමු, -1
එවිට අපට ප්රතිදානය සඳහා පිරිසිදු තොගයක් ඇත.
ඒක තමයි. දැන් වරහන් තුළ අපට පෙර ඡේදයෙහි විස්තර කර ඇති පරිදි දේවල් සකස් කර ඇති බව සහතික කරන තාක් කල් අපට ප්රාථමිකත්වය පරීක්ෂා කිරීමට අවශ්ය ඕනෑම දෙයක් කළ හැකිය (සමහර තල්ලු කිරීම සහ ටේප් හිස චලනය කිරීමෙන් පහසුවෙන් කළ හැකිය). මම මුලින්ම විල්සන්ගේ ප්රමේයයේ ගැටලුව විසඳීමට උත්සාහ කළ නමුත් බයිට් 100 කට වඩා වැඩි ප්රමාණයක් අවසන් කළෙමි , මන්ද වර්ග වර්ග සාධක සාධක ගණනය කිරීම ඇත්ත වශයෙන්ම ස්ටැක් බළලුන් තුළ බෙහෙවින් මිල අධිකය (අවම වශයෙන් මට කෙටි මාර්ගයක් හමු වී නැත). ඒ නිසා මම ඒ වෙනුවට අත්හදා බැලීම් අංශය සමඟ ගිය අතර එය වඩාත් සරල විය. පළමු රේඛීය බිට් දෙස බලමු:
>:^]
ඔබ දැනටමත් එම විධාන දෙකක් දැක ඇත. ඊට අමතරව, :
වත්මන් තොගයේ ඉහළම අගයන් දෙක ^
මාරු කරන අතර XOR දෙවන අගය ඉහළ අගයට මාරු කරයි. මෙය සිදු කරයි:^
හිස් සිරස් තලයක අගය අනුපිටපත් කිරීමට පොදු රටාවක් කරයි (අපි අගයට ඉහළින් ශුන්යයක් ඇදගෙන පසුව ශුන්යය බවට පත් කරමු 0 XOR x = x
). ඉතින් මෙයින් පසු, අපගේ ටේප් කොටස මේ ආකාරයට පෙනේ:
4
... 1 4 -1 ...
0 0 0
^
මා විසින් ක්රියාවට නංවා ඇති අත්හදා බැලීමේ ඇල්ගොරිතම ආදානය සඳහා ක්රියා නොකරයි 1
, එබැවින් අපි එම අවස්ථාවෙහිදී කේතය මඟ හැරිය යුතුය. අප ඉතා පහසුවෙන් සිතියම්ගත හැකි 1
කිරීමට 0
හා සමග ධනාත්මක වටිනාකම් අන් සියල්ල*
, ඒ නිසා මෙහි අපි ඒක කරන්න ආකාරය මෙසේය:
*(*...)
බව අපි හැරී යනු 1
බවට 0
, අපි නියත වශයෙන්ම ලබා නම් කේතය එක ලොකු දෙයක් මඟ 0
, නමුත් අපි වහාම නැති ඇතුළත *
අපේ ආදාන අගය ආපසු ලබා එසේ බව. වරහන් වර්ගවල ධනාත්මක අගයකින් අවසන් වන බවට අපි නැවත සහතික කර ගත යුතුය. කොන්දේසි සහිතව, අපි එක් තොගයක් දකුණට ගෙන >
ගොස් ප්රධාන අත්හදා බැලීමේ අංශය ආරම්භ කරමු:
{<-!<:^>[:((-<)<(<!-)>>-_)_<<]>:]<]]}
වරහන් (වරහන් වලට ප්රතිවිරුද්ධව) වෙනස් ආකාරයේ ලූපයක් අර්ථ දක්වයි: එය කළ යුතු වේලාවකි, එයින් අදහස් වන්නේ එය සෑම විටම අවම වශයෙන් එක් පුනරාවර්තනයක් සඳහා ක්රියාත්මක වන බවයි. අනෙක් වෙනස වන්නේ අවසන් කිරීමේ කොන්දේසියයි: ලූපයට ඇතුළු වන විට ස්ටැක් කැට් වත්මන් තොගයේ ඉහළ අගය සිහිපත් කරයි (0
අපගේ නඩුවේදී). පුනරාවර්තනයක් අවසානයේ මෙම අගයම නැවත දකින තුරු ලූපය ක්රියාත්මක වේ. මෙය අපට පහසු ය: එක් එක් පුනරාවර්තනයේ දී අපි ඊළඟ විභව බෙදුම්කරුගේ ඉතිරි කොටස ගණනය කර එය අපි ආරම්භ කරන ලූපය වෙත ගෙන යන්නෙමු. අපි බෙදුම්කරුවෙකු සොයාගත් විට, ඉතිරි කොටස වන 0
අතර ලූපය නතර වේ. අපි ආරම්භයේ සිට බෙදුම්කරුවන් උත්සාහ කර n-1
ඒවා නවතම හා පහළට අඩු කරන්නෙමු. ආ) පසුව අප උත්සාහ කළ අවසන් බෙදුම්කරු පරීක්ෂා කිරීමෙන් අංකය ප්රමුඛද නැද්ද යන්න තීරණය කළ හැකිය (එය නම්1
. ඒ කියන්නේ අ) අප ළඟා වන විට මෙය අවසන් වන බව අපි දනිමු1
1
, එය ප්රාථමිකයකි, එසේ නොවේ නම්).
අපි ඒකට යමු. ආරම්භයේ දී කෙටි රේඛීය අංශයක් ඇත:
<-!<:^>[:
ඔබ දන්නවා මේ වන විට ඒවායින් බොහොමයක් කරන්නේ කුමක්ද කියා. නව විධානයන් -
සහ !
. ස්ටැක් බළලුන්ට වර්ධක හෝ අඩු කිරීමේ ක්රියාකරුවන් නොමැත. කෙසේ වෙතත් එයට -
(නිෂේධනය, එනම් ගුණ කිරීමෙන් -1
) සහ !
(බිට්වේස් නොවේ, එනම් ගුණ කිරීමෙන් -1
හා අඩුවීමෙන්) ඇත. මේවා වර්ධකයක් !-
හෝ අඩුවීමක් ලෙස ඒකාබද්ධ කළ හැකිය -!
. ඒ නිසා අපි n
ඉහළින් ඇති පිටපත අඩු කර , පසුව වම් පසින් තොගයේ -1
තවත් පිටපතක් සාදා n
, පසුව නව අත්හදා බැලීමේ බෙදුම්කරු ගෙන එය යටින් තබමු n
. එබැවින් පළමු පුනරාවර්තනයේදී අපට මෙය ලැබේ:
4
3
... 1 4 -1 ...
0 0 0
^
වැඩිදුර පුනරාවර්තන වලදී, 3
කැමැත්ත ඊළඟ පරීක්ෂණ බෙදුම්කරු සමඟ ප්රතිස්ථාපනය වේ. (පිටපත් දෙක n
සැමවිටම මෙම අවස්ථාවේදී එකම අගයක් වනු ඇත).
((-<)<(<!-)>>-_)
මෙය මොඩියුලෝ ගණනය කිරීමකි. ධනාත්මක අගයන් මත ලූප අවසන් වන හෙයින්, අදහස වන්නේ අපට ධනාත්මක අගයක් ලැබෙන තෙක් -n
අත්හදා බැලීමේ බෙදුම්කරුගෙන් නැවත නැවත එකතු කිරීමයි d
. අප එසේ කළ පසු, අපි එහි ප්රති result ලය අඩු කරන d
අතර මෙය අපට ඉතිරි කොටස ලබා දෙයි. මෙහි ඇති උපක්රමශීලී දෙය නම් අපට -n
තොගයේ මුදුනේ තබා එකතු කරන ලූපයක් ආරම්භ කළ නොහැකි වීමයි d
: තොගයේ ඉහළ කොටස negative ණ නම්, ලූපය ඇතුළත් නොවේ. ආපසු හැරවිය හැකි ක්රමලේඛන භාෂාවක සීමාවන් එවැනි ය.
එබැවින් මෙම ගැටළුව මඟහරවා ගැනීම සඳහා, අපි n
තොගයේ මුදුනේ සිට ආරම්භ කරමු , නමුත් එය ප්රතික්ෂේප කරන්නේ පළමු නැවත සිදුකිරීමේදී පමණි. නැවතත්, එය පෙනෙන ආකාරයට වඩා සරලයි ...
(-<)
තොගයේ මුදුන ධනාත්මක වන විට (එනම් පළමු පුනරාවර්තනය මත පමණක්), අපි එය ප්රතික්ෂේප කරමු -
. කෙසේ වෙතත්, අපට එය කළ නොහැක්කේ දෙවරක් යොදන තුරු (-)
අපි ලූපයෙන් ඉවත් නොවන බැවිනි -
. එබැවින් අපි එක් කොටුවක් ඉතිරි <
කරන්නේ එහි ධනාත්මක අගයක් ඇති බව අප දන්නා බැවිනි 1
. හරි, ඉතින් දැන් අපි n
පළමු පුනරාවර්තනය විශ්වාසදායක ලෙස ප්රතික්ෂේප කර ඇත්තෙමු . නමුත් අපට නව ගැටළුවක් ඇත: ටේප් හෙඩ් දැන් අනෙක් සෑම දෙයකටම වඩා පළමු නැවතීමේ වෙනස් ස්ථානයක සිටී. අප ඉදිරියට යාමට පෙර මෙය තහවුරු කර ගත යුතුය. ඊළඟට <
ටේප් හිස වමට ගෙන යයි. පළමු පුනරාවර්තනයේ තත්වය:
-4
3
... 1 4 -1 ...
0 0 0 0
^
දෙවන පුනරාවර්තනයේදී (මතක තබා ගන්න අපි දැන් එක් d
වරක් එකතු කළෙමු -n
):
-1
3
... 1 4 -1 ...
0 0 0
^
ඊළඟ කොන්දේසිය මෙම මාර්ග නැවත ඒකාබද්ධ කරයි:
(<!-)
පළමු පුනරාවර්තනයේදී ටේප් හිස ශුන්යයට යොමු කරයි, එබැවින් මෙය සම්පූර්ණයෙන්ම මඟ හැරේ. තව දුරටත් පුනරාවර්තනය වන විට, ටේප් හෙඩ් එකකට යොමු කරයි, එබැවින් අපි මෙය ක්රියාත්මක කර, වමට ගමන් කර එහි කොටුව වැඩි කරන්නෙමු. සෛලය ශුන්යයෙන් ආරම්භ වන බව අප දන්නා බැවින්, එය දැන් සෑම විටම ධනාත්මක වනු ඇත, එවිට අපට ලූපයෙන් ඉවත් විය හැකිය. මෙමඟින් අප සැමවිටම ප්රධාන තොගයේ වම්පස දෙකක් අවසන් වන අතර දැන් ආපසු යා හැකිය >>
. එවිට මොඩියුලෝ ලූපය අවසානයේ අපි කරන්නෙමු -_
. ඔබ දැනටමත් දන්නවා -
. XOR ට ඇති _
දේ අඩු ^
කිරීම ය: තොගයේ මුදුන a
සහ යටින් ඇති අගය b
එය ප්රතිස්ථාපනය කරයි a
නම් b-a
. අපි මුලින්ම බොහෝ දුරට නිශේධනය සිට a
වුවත්, -_
විස්ථාපනය a
සමග අපගේ ධාවනය මුළු බවට.b+a
එකතු කරයිd
ලූපය අවසන් වූ පසු (අපි ධනාත්මක අගයක් කරා), ටේප් එක මේ ආකාරයෙන් පෙනේ:
2
3
... 1 1 4 -1 ...
0 0 0 0
^
වමේ වැඩිම අගය ඕනෑම ධනාත්මක සංඛ්යාවක් විය හැකිය. ඇත්ත වශයෙන්ම, එය පුනරාවර්තන ගණන us ණ එකක් වේ. දැන් තවත් කෙටි රේඛීය බිට් එකක් තිබේ:
_<<]>:]<]]
මා කලින් කීවාක් මෙන් d
සත්ය ඉතිරි ( 3-2 = 1 = 4 % 3
) ලබා ගැනීම සඳහා ප්රති result ලය අඩු කළ යුතුය , එබැවින් අපි _
නැවත වරක් කරන්නෙමු . ඊළඟට, අපි වම් පසින් වැඩි කර ඇති තොගය පිරිසිදු කළ යුතුය: අපි ඊළඟ බෙදුම්කරු උත්සාහ කරන විට, එය නැවත ශුන්ය විය යුතුය, පළමු නැවත ක්රියා කිරීම සඳහා. ඒ නිසා අපි එතැනට ගොස් එම ධනාත්මක අගය අනෙක් සහායක තොගයට තල්ලු කර <<]
නැවත අපගේ මෙහෙයුම් තොගය වෙත ගෙන යන්නෙමු >
. අපි ඔසවන්න d
සමග :
සහ මතට එය නැවත තල්ලු -1
සමග ]
හා අප සමග අපගේ කොන්දේසි අඩුක්කුව මතට ඉතිරි ගමන් <]]
. අත්හදා බැලීමේ අංශයේ ලූපයේ අවසානය එයයි: අපට ශුන්ය ඉතිරියක් ලැබෙන තෙක් මෙය දිගටම පවතී, එම අවස්ථාවේ දී වම් පස ඇති තොගය අඩංගු වේn
ශ්රේෂ් greatest තම බෙදුම්කරු (හැර n
).
ලූපය අවසන් වූ පසු, *<
අපි 1
නැවත ආදානය සමඟ මාර්ගවලට සම්බන්ධ වීමට පෙර ඇත. මෙම *
හුදෙක් බවට ශුන්ය පැහැයට 1
අපි ටිකක් අවශ්ය කරන්නම්, ඉන් පසුව අපි සමග භාජකය ගමන් කරන, <
(ඒ නිසා අපි ආදානය සඳහා මෙන් ම අඩුක්කුව මත කියලා 1
).
මෙම අවස්ථාවෙහිදී එය විවිධ ආකාරයේ යෙදවුම් තුනක් සංසන්දනය කිරීමට උපකාරී වේ. පළමුව, n = 1
අපි එම අත්හදා බැලීම් අංශ කිසිවක් සිදු නොකළ විශේෂ අවස්ථාව :
0
... 1 1 -1 ...
0 0 0
^
එවිට, අපගේ පෙර උදාහරණය n = 4
, සංයුක්ත අංකයක්:
2
1 2 1
... 1 4 -1 1 ...
0 0 0 0
^
අවසාන වශයෙන්, n = 3
ප්රාථමික අංකයක්:
3
1 1 1
... 1 3 -1 1 ...
0 0 0 0
^
එබැවින් ප්රාථමික සංඛ්යා සඳහා, අපට 1
මෙම තොගයේ ඇති අතර සංයුක්ත සංඛ්යා සඳහා අපට 0
වඩා වැඩි හෝ ධනාත්මක සංඛ්යාවක් 2
ඇත. අපි මෙම තත්වය පහත දැක්වෙන අවසාන කේතය සමඟ 0
හෝ 1
අපට අවශ්ය බවට හරවන්නෙමු
]*(:)*=<*
]
මෙම අගය දකුණට තල්ලු කරයි. එවිට *
අවම වශයෙන් සැලකිය යුතු ටිකක් මාරුවීමට විසින්, අපි හැරී: මෙම කොන්දේසි තත්ත්වය බොහෝ සෙයින් සරල කිරීම සඳහා භාවිතා කරයි 1
බවට (අගමැති) 0
, 0
ධනාත්මක වටිනාකමින් (සංයුක්ත) 1
, සහ අනෙකුත් සියලු ම ධන අගයන් තවමත් ධනාත්මක පවතිනු ඇත. දැන් අපට අවශ්ය වන්නේ 0
ධනාත්මක හා වෙනස හඳුනා ගැනීමයි . එතන තමයි අපි තවත් එකක් පාවිච්චි කරන්නේ (:)
. තොගයේ මුදුන නම් 0
(සහ ආදානය ප්රමුඛ විය), මෙය සරලව මඟ හැරේ. නමුත් තොගයේ ඉහළ කොටස ධනාත්මක නම් (සහ ආදානය සංයුක්ත අංකයක් විය) මෙය එය සමඟ හුවමාරු කරයි 1
, එවිට අපට දැන් 0
සංයුක්ත සහ1
ප්රාථමික සඳහා - වෙනස් අගයන් දෙකක් පමණි. ඇත්ත වශයෙන්ම, ඒවා අපට ප්රතිදානය කිරීමට අවශ්ය දෙයට ප්රතිවිරුද්ධ දෙයකි, නමුත් එය වෙනත් එකක් සමඟ පහසුවෙන් සවි කර *
ඇත.
ධනාත්මක අගය මත ටේප්, හිස, දකුණට අඩුක්කුව මත ප්රතිඵලයක්, හා තනි: දැන් සියලු වම් අට්ටි රටාව නැවත බව අපේ අවට රාමුව අපේක්ෂා -1
ගොඩට අයිතිය මත බව . මෙය =<*
සඳහා ය. =
යාබද කොටස් දෙකේ මුදුන් මාරු කරයි, එමඟින් ප්රති -1
result ලයේ දකුණට ගමන් කරයි , උදා 4
: නැවත ආදානය සඳහා :
2 0
1 3
... 1 4 1 -1 ...
0 0 0 0 0
^
එවිට අපි වමට <
හැරී එම ශුන්යය සමඟ එකක් බවට පත් කරමු *
. ඒක තමයි.
වැඩසටහන ක්රියාත්මක වන ආකාරය පිළිබඳව ගැඹුරින් හාරා බැලීමට ඔබට අවශ්ය නම්, ඔබට නිදොස් කිරීමේ විකල්ප භාවිතා කළ හැකිය. එක්කෝ -d
ධජය එකතු කර "
වත්මන් මතක තත්වය බැලීමට අවශ්ය ඕනෑම තැනකට ඇතුළු කරන්න , උදා: මේ වගේ , නැතහොත් -D
ධජය භාවිතා කර සමස්ත වැඩසටහනේ සම්පූර්ණ හෝඩුවාවක් ලබා ගන්න . විකල්පයක් ලෙස, ඔබට පියවරෙන් පියවර නිදොස් කිරීමක් සහිත ස්ටැක් කැට්ස් පරිවර්තකය ඇතුළත් ටිම්විගේ එසෝටෙරිකයිඩ් භාවිතා කළ හැකිය .