Tiyeni tiwone mwatsatanetsatane sitepe yoyamba: vuto lomwe pulogalamuyo imathetsa. Apa nthawi zambiri timatengera pulogalamu ngati ntchito yomwe imatenga zolowetsamo ndikutulutsa zina. Mu masamu, ntchito nthawi zambiri imafotokozedwa ngati magulu awiriawiri olamulidwa. Mwachitsanzo, ntchito ya squaring ya manambala achilengedwe imafotokozedwa ngati seti {<0,0>, <1,1>, <2,4>, <3,9>, ...}. Dera la tanthawuzo la ntchito yotere ndilo gawo la zinthu zoyamba za gulu lirilonse, ndiye kuti, manambala achilengedwe. Kuti tifotokoze ntchito, tiyenera kufotokoza dera lake ndi ndondomeko yake.
Koma ntchito mu masamu si yofanana ndi ntchito m'zinenero mapulogalamu. Masamu ndi osavuta. Popeza ndilibe nthawi ya zitsanzo zovuta, tiyeni tiganizire zophweka: ntchito mu C kapena njira yosasunthika mu Java yomwe imabweretsanso gawo lalikulu kwambiri la magawo awiri. Mwachindunji cha njirayi tidzalemba: kuwerengera GCD(M,N) kwa mikangano M ΠΈ Nkumene GCD(M,N) - ntchito yomwe dera lake lili ndi magulu awiriawiri, ndipo mtengo wobwezera ndi chiwerengero chachikulu kwambiri chomwe chimagawidwa ndi M ΠΈ N. Kodi zenizeni zikufanana bwanji ndi chitsanzo ichi? Chitsanzocho chimagwira ntchito ndi nambala, ndipo mu C kapena Java tili ndi 32-bit int. Chitsanzochi chimatithandiza kusankha ngati algorithm ili yolondola GCD, koma sichidzalepheretsa zolakwika zosefukira. Izi zingafune chitsanzo chovuta kwambiri, chomwe palibe nthawi.
Tiyeni tikambirane zofooka za ntchito monga chitsanzo. Mapulogalamu ena (monga makina opangira opaleshoni) samangobweza mtengo wankhani zina; amatha kuthamanga mosalekeza. Kuonjezera apo, ntchito ngati chitsanzo sichiyeneranso pa sitepe yachiwiri: kukonzekera momwe mungathetsere vutoli. Quicksort ndi mtundu wa bubble amawerengera ntchito yomweyo, koma ndizosiyana kwambiri. Choncho, pofotokoza njira yokwaniritsira cholinga cha pulogalamuyo, ndimagwiritsa ntchito chitsanzo china, tiyeni titchule chitsanzo cha khalidwe labwino. Pulogalamuyi imayimiridwa mmenemo ngati machitidwe onse ovomerezeka, omwe, nawonso, amatsatizana ndi mayiko, ndipo dziko ndilo gawo lazofunikira pazosintha.
Tiyeni tiwone momwe gawo lachiwiri la algorithm ya Euclidean lingawonekere. Tiyenera kuwerengera GCD(M, N). Timayamba M momwe xndi N momwe y, kenaka muchotse mobwerezabwereza tinthu tatingβono tosiyanasiyana kuchokera pa zazikuluzo mpaka zitafanana. Mwachitsanzo, ngati M = 12ndi N = 18, tikhoza kufotokoza khalidwe ili:
[x = 12, y = 18] β [x = 12, y = 6] β [x = 6, y = 6]
Ndipo ngati M = 0 ΠΈ N = 0? Zero imagawika ndi manambala onse, kotero palibe wogawa wamkulu pankhaniyi. Zikatere, tiyenera kubwereranso ku sitepe yoyamba ndikufunsa kuti: kodi tikufunikadi kuwerengera GCD pazinambala zomwe sizinali zabwino? Ngati izi siziri zofunikira, ndiye kuti mumangofunika kusintha ndondomekoyi.
Kusiya pang'ono pa zokolola kuli koyenera apa. Nthawi zambiri amayezedwa m'mizere ya mizere yolembedwa patsiku. Koma ntchito yanu imakhala yothandiza kwambiri ngati mutachotsa mizere ingapo, chifukwa muli ndi malo ochepa a nsikidzi. Ndipo njira yosavuta yochotsera code ili mu sitepe yoyamba. Ndizotheka kuti simukusowa mabelu onse ndi malikhweru omwe mukuyesera kukhazikitsa. Njira yachangu kwambiri yochepetsera pulogalamu ndikusunga nthawi ndikusachita zinthu zomwe siziyenera kuchitidwa. Gawo lachiwiri lili ndi mphamvu yachiwiri yopulumutsa nthawi. Ngati muyesa zokolola malinga ndi mizere yolembedwa, ndiye kuti kuganizira momwe mungamalizitsire ntchito kungakupangitseni osabala zipatso, chifukwa mutha kuthetsa vuto lomwelo ndi code yochepa. Sindingathe kupereka ziwerengero zenizeni apa, chifukwa ndilibe njira yowerengera mizere yomwe sindinalembe chifukwa cha nthawi yomwe ndidakhala ndikulongosola, ndiko kuti, pamasitepe oyambirira ndi achiwiri. Ndipo sitingathenso kuyesa pano, chifukwa mukuyesera tilibe ufulu womaliza sitepe yoyamba; ntchitoyo imatsimikiziridwa pasadakhale.
Timapeza chitetezo pofotokoza kaye mndandanda wa mayiko omwe angakhalepo. Ndipo kachiwiri, maubwenzi ndi maiko onse omwe angatheke ku boma lililonse. Tiyeni tizichita ngati asayansi ndikutanthauzira mayiko mwamasamu. Magawo oyambira amafotokozedwa ndi chilinganizo, mwachitsanzo, pankhani ya algorithm ya Euclidean: (x = M) β§ (y = N). Pazinthu zina M ΠΈ N pali chikhalidwe chimodzi chokha. Ubale ndi dziko lotsatira likufotokozedwa ndi ndondomeko yomwe zosinthika za dziko lotsatira zimalembedwa ndi prime, ndipo zosinthika za chikhalidwe chamakono zimalembedwa popanda prime. Pankhani ya algorithm ya Euclidean, tikhala tikuchita ndi kusagwirizana kwamitundu iwiri, imodzi mwazo. x ndiye mtengo waukulu kwambiri, ndipo wachiwiri - y:
Pachiyambi choyamba, mtengo watsopano wa y ndi wofanana ndi mtengo wam'mbuyo wa y, ndipo timapeza mtengo watsopano wa x pochotsa chosiyana chaching'ono kuchokera ku chachikulu. Chachiwiri, timachita zosiyana.
Tiyeni tibwerere ku algorithm ya Euclidean. Tiyerekezenso kuti M = 12, N = 18. Izi zikutanthawuza chikhalidwe chimodzi choyamba, (x = 12) β§ (y = 18). Kenako timalumikiza mfundo izi mu fomula ili pamwambapa ndikupeza:
Pomaliza [x = 6, y = 6] mbali zonse ziwiri za mawuwo zidzakhala zabodza, choncho ilibe chikhalidwe chotsatira. Choncho, tili ndi mfundo zonse za sitepe yachiwiri - monga tikuonera, ndi masamu wamba, monga injiniya ndi asayansi, osati zachilendo, monga mu sayansi kompyuta.
Njira ziwirizi zitha kuphatikizidwa kukhala njira imodzi yamalingaliro akanthawi. Ndizokongola komanso zosavuta kufotokoza, koma palibe nthawi yake tsopano. Tingafunike kulingalira kwakanthawi kokha pazinthu zamoyo; pachitetezo sizofunikira. Sindimakonda kuganiza kwakanthawi motere, si masamu wamba, koma pankhani yakukhala moyo ndikofunikira.
Mu Euclidean algorithm pamtengo uliwonse x ΠΈ y pali makhalidwe apadera x' ΠΈ y', zomwe zimapangitsa ubale ndi dziko lotsatira kukhala loona. Mwanjira ina, algorithm ya Euclidean ndiyotsimikiza. Kuti muwonetsere algorithm yosagwirizana, dziko lomwe lilipo liyenera kukhala ndi maiko angapo amtsogolo, ndipo mtengo uliwonse wakusintha kosasinthika uyenera kukhala ndi zikhalidwe zingapo zamitundu yoyambira kuti ubale ndi dziko lotsatira ukhale wowona. Izi sizovuta kuchita, koma sindipereka zitsanzo tsopano.
Koma tsatanetsataneyu alinso ndi zinthu zomwe zimasiyanitsa ndi zina. 95% yazinthu zina ndizofupikitsa komanso zosavuta:
Komanso, izi ndi ndondomeko ya malamulo. Izi nthawi zambiri zimakhala chizindikiro cha kusalongosola bwino. Kumvetsetsa zotsatira za malamulo angapo ndikovuta, chifukwa chake ndimayenera kuthera nthawi yambiri ndikuwongolera. Komabe, mu nkhani iyi sindinapeze njira yabwinoko.
Momwe mungalumikizire mafotokozedwe ndi ma code? Kugwiritsa ntchito ndemanga zomwe zimagwirizanitsa malingaliro a masamu ndi kukhazikitsidwa kwawo. Ngati mumagwira ntchito ndi ma graph, ndiye kuti pamlingo wa pulogalamuyo mudzakhala ndi ma node angapo ndi maulalo. Chifukwa chake muyenera kulemba momwe graph imagwiritsidwira ntchito ndi mapangidwe awa.
Mutha kuwerenga zambiri za TLA + ndi PlusCal patsamba lapadera, mutha kupita kumeneko kuchokera patsamba langa kugwirizana. Ndizo zonse za ine, zikomo chifukwa cha chidwi chanu.
Chonde kumbukirani kuti uku ndi kumasulira. Mukalemba ndemanga, kumbukirani kuti wolembayo sangawerenge. Ngati mukufunadi kukambirana ndi wolembayo, adzakhala pa msonkhano wa Hydra 2019, womwe udzachitike pa July 11-12, 2019 ku St. Matikiti angagulidwe patsamba lovomerezeka.