I-Paradoxes malunga noxinzelelo lwedatha

I-Paradoxes malunga noxinzelelo lwedatha Ingxaki yokunyanzeliswa kwedatha, ngendlela elula kakhulu, inokuhambelana namanani kunye nokubhalwa kwawo. Amanani anokuchazwa ngamanani ("Shumi elinanye" kwinani 11), amabinzana ezibalo ("ezimbini kweyamashumi amabini" ye-1048576), iintetho zomtya ("iisithoba ezihlanu" ngo-99999), amagama afanelekileyo ("inani lerhamncwa" kuba 666, "Unyaka wokufa kukaTuring" ngo-1954), okanye iindibaniselwano ezingafanelekanga. Naluphi na ukutyunjwa lufanelekile apho i-interlocutor inokugqiba ngokucacileyo ukuba yiyiphi inombolo esithetha ngayo. Ngokucacileyo, xelela i-interlocutor yakho "ifektri yesibhozo" isebenze ngakumbi kunobhalo olulinganayo "amashumi amane amawaka anamakhulu amathathu namashumi amabini". Umbuzo onengqondo ovelayo apha: leliphi elona nqaku lifutshane kwinani elinikiweyo?

Isithandi sobulumko uBertrand Russell sapapashwa ngowe-1908 "I-paradox kaBerry", echukumisa umba wobhalo lwamanani kwelinye icala: Leliphi elona nani lincinane elingadingi onobumba abangamashumi asibhozo?
Inani elinjalo kufuneka libe khona: ukusuka kwiileta ezingamashumi asibhozo zesiRashiya kunye nezithuba unokwenza amagama angama-3480 kuphela, oku kuthetha ukuba usebenzisa oonobumba abangamashumi asibhozo awukwazi ukubala amanani angaphezu kwama-3480. Oku kuthetha ukuba akunakwenzeka ukumisela inani elithile elingekho ngaphezu kwama-3480 ngale ndlela.

Oku kuthetha ukuba eli nani liya kuhambelana nolo bizo "elona nani lincinci apho amashumi asibhozo oonobumba abonelanga", enoonobumba abangama-78 kuphela! Kwelinye icala, eli nani kufuneka libekho; kwelinye icala, ukuba le nombolo ikhona, ngoko ukutyunjwa kwayo akuhambelani nayo. Umnqa!

Eyona ndlela ilula yokuchitha esi siphithiphithi kukubhekiselele ekunganyanzelisiyo kwamanqaku omlomo. Njengokuthi, ukuba kuphela iseti echaziweyo yentetho evunyelweyo kubhalo, ngoko "elona nani lincinci apho amashumi asibhozo oonobumba abonelanga" Ayizukuba lubhalo olusebenzayo, ngelixa amanqaku aluncedo afana "ifektri yesibhozo" iya kuhlala yamkelekile.

Ngaba kukho iindlela ezisesikweni zokuchaza ukulandelelana (i-algorithm) yezenzo kumanani? Kukho, kwaye ngobuninzi - zibizwa ngokuba ziilwimi zokucwangcisa. Endaweni yobhalo lomlomo, siya kusebenzisa iinkqubo (umzekelo, kwiPython) ezibonisa amanani afunekayo. Umzekelo, kwii-nines ezintlanu inkqubo ifanelekile print("9"*5). Siya kuqhubeka sinomdla kweyona nkqubo imfutshane kwinani elinikiweyo. Ubude benkqubo enjalo ibizwa ngokuba Ubunzima baseKolmogorov amanani; ngumda wethiyori apho inani elinikiweyo linokucinezelwa.

Endaweni ye-paradox kaBerry, ngoku sinokuqwalasela okufanayo: Leliphi elona nani lincinci iprogram ye kilobyte ayanelanga ukulikhupha?

Siya kuqiqa ngendlela efanayo nangaphambili: kukho imibhalo ye-2561024 kilobyte, okuthetha ukuba akukho manani angaphezu kwama-2561024 anokukhutshwa ngeenkqubo zekhilobhayithi. Oku kuthetha ukuba inani elithile alikho ngaphezu kwe-2561024 alinakufunyanwa ngolu hlobo.

Kodwa masibhale inkqubo kwiPython eyenza yonke imibhalo yekilobyte enokwenzeka, ibaqhubele ukuphunyezwa, kwaye ukuba bakhupha inani, ngoko ke yongeza eli nani kwisichazi-magama sezo zifikelelekayo. Emva kokujonga zonke izi-2561024 ezinokwenzeka, kungakhathaliseki ukuba kuthatha ixesha elingakanani, inkqubo ikhangela elona nani lincinane elingekhoyo kwisichazi-magama ize iprinte elo nani. Kubonakala kucacile ukuba inkqubo enjalo iya kungena kwikhilobhayithi yekhowudi - kwaye iya kukhupha inani elingenakukhutshwa ngeprogram ye kilobyte!

Ubanjiwe yintoni ngoku? Akusenakuphinda kubalelwa ekubeni kungabikho sesikweni kolu phawu!

Ukuba ubhidekile yinto yokuba inkqubo yethu iya kufuna isixa sememori yeenkwenkwezi ukusebenza-isichazi-magama (okanye i-bit array) yezinto ezingama-2561024 - ke ungenza into enye ngaphandle kwayo: kwinani ngalinye le-2561024, ngokulandelelana. , hamba kuzo zonke iiprogram ze-2561024 ezinokwenzeka, de kungabikho efanelekileyo. Akunandaba ukuba ukukhangela okunjalo kuya kuhlala ixesha elide kakhulu: emva kokujonga ngaphantsi kwe (2561024) izibini ezi-2 ukusuka kwinombolo kunye neprogram, iya kugqiba kwaye ifumane loo nombolo ibaluleke kakhulu.

Okanye ayizukugqiba? Ngokwenene, phakathi kwazo zonke iinkqubo eziya kuzanywa, kuya kubakho while True: pass (kunye ne-analogues yayo esebenzayo) - kwaye umcimbi awuyi kuhamba ngaphezu kokuvavanya inkqubo enjalo!

Ngokungafaniyo ne-paradox kaBerry, apho ukubamba kwakungacwangciswanga kwi-notation, kwimeko yesibini sinokuguqulwa kakuhle okufihliweyo. "ukuphelisa iingxaki". Inyani kukuba akunakwenzeka ukumisela imveliso yayo kwiprogram ngexesha elilinganiselweyo. Ngokukodwa, ubunzima baseKolmogorov ayinakulinganiswa: akukho algorithm inokuvumela, kwinani elinikiweyo, ukufumana ubude benkqubo emfutshane eprinta eli nani; nto leyo ethetha ukuba akukho sisombululo kwingxaki kaBerry-ukufumana ubude begama elifutshane lobizo lwenani elinikiweyo.

umthombo: www.habr.com

Yongeza izimvo