Cody

Problem 44309. Pi Digit Probability

Solution 2031577

Submitted on 22 Nov 2019 by Hung Trinh
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
N = 101; n = 3; y_correct = 0.1200; assert(abs(pidigit(N,n)-y_correct)<0.0001) assert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[101,201,202,203,1001]),regexp(fileread('pidigit.m'),'[\d\.\+\-\*\/]+','match')))) % modified from the comment of Alfonso on https://www.mathworks.com/matlabcentral/cody/problems/44343

piString = '314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243 88439045124413654976278079771569143599770012961608 94416948685558484063534220722258284886481584560285 06016842739452267467678895252138522549954666727823 98645659611635488623057745649803559363456817432411 25150760694794510965960940252288797108931456691368 67228748940560101503308617928680920874760917824938 58900971490967598526136554978189312978482168299894 8722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855 95663893778708303906979207734672218256259966150142 150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706 41401109712062804390397595156771577004203378699360 07230558763176359421873125147120532928191826186125 86732157919841484882916447060957527069572209175671 16722910981690915280173506712748583222871835209353 96572512108357915136988209144421006751033467110314 12671113699086585163983150197016515116851714376576 18351556508849099898599823873455283316355076479185 35893226185489632132933089857064204675259070915481 41654985946163718027098199430992448895757128289059 23233260972997120844335732654893823911932597463667 30583604142813883032038249037589852437441702913276 56180937734440307074692112019130203303801976211011 00449293215160842444859637669838952286847831235526 58213144957685726243344189303968642624341077322697 80280731891544110104468232527162010526522721116603 96665573092547110557853763466820653109896526918620 56476931257058635662018558100729360659876486117910 45334885034611365768675324944166803962657978771855 60845529654126654085306143444318586769751456614068 00700237877659134401712749470420562230538994561314 07112700040785473326993908145466464588079727082668 30634328587856983052358089330657574067954571637752 54202114955761581400250126228594130216471550979259 23099079654737612551765675135751782966645477917450 11299614890304639947132962107340437518957359614589 01938971311179042978285647503203198691514028708085 99048010941214722131794764777262241425485454033215 71853061422881375850430633217518297986622371721591 60771669254748738986654949450114654062843366393790 03976926567214638530673609657120918076383271664162 74888800786925602902284721040317211860820419000422 96617119637792133757511495950156604963186294726547 36425230817703675159067350235072835405670403867435 13622224771589150495309844489333096340878076932599 39780541934144737744184263129860809988868741326047 21569516239658645730216315981931951673538129741677 29478672422924654366800980676928238280689964004824 35403701416314965897940924323789690706977942236250 82216889573837986230015937764716512289357860158816 17557829735233446042815126272037343146531977774160 31990665541876397929334419521541341899485444734567 38316249934191318148092777710386387734317720754565 45322077709212019051660962804909263601975988281613 32316663652861932668633606273567630354477628035045 07772355471058595487027908143562401451718062464362 67945612753181340783303362542327839449753824372058 35311477119926063813346776879695970309833913077109 87040859133746414428227726346594704745878477872019 27715280731767907707157213444730605700733492436931 13835049316312840425121925651798069411352801314701 30478164378851852909285452011658393419656213491434 15956258658655705526904965209858033850722426482939 72858478316305777756068887644624824685792603953527 73480304802900587607582510474709164396136267604492 56274204208320856611906254543372131535958450687724 60290161876679524061634252257719542916299193064553 77991403734043287526288896399587947572917464263574 55254079091451357111369410911939325191076020825202 61879853188770584297259167781314969900901921169717 37278476847268608490033770242429165130050051683233 64350389517029893922334517220138128069650117844087 45196012122859937162313017114448464090389064495444 00619869075485160263275052983491874078668088183385 10228334508504860825039302133219715518430635455007 66828294930413776552793975175461395398468339363830 47461199665385815384205685338621867252334028308711 23282789212507712629463229563989898935821167456270 10218356462201349671518819097303811980049734072396 10368540664319395097901906996395524530054505806855 01956730229219139339185680344903982059551002263535 36192041994745538593810234395544959778377902374216 17271117236434354394782218185286240851400666044332 58885698670543154706965747458550332323342107301545 94051655379068662733379958511562578432298827372319 89875714159578111963583300594087306812160287649628 67446047746491599505497374256269010490377819868359 38146574126804925648798556145372347867330390468838 34363465537949864192705638729317487233208376011230 29911367938627089438799362016295154133714248928307 22012690147546684765357616477379467520049075715552 78196536213239264061601363581559074220202031872776 05277219005561484255518792530343513984425322341576 23361064250639049750086562710953591946589751413103 48227693062474353632569160781547818115284366795706 11086153315044521274739245449454236828860613408414 86377670096120715124914043027253860764823634143346 23518975766452164137679690314950191085759844239198 62916421939949072362346468441173940326591840443780 51333894525742399508296591228508555821572503107125 70126683024029295252201187267675622041542051618416 34847565169998116141010029960783869092916030288400 26910414079288621507842451670908700069928212066041 83718065355672525325675328612910424877618258297651 57959847035622262934860034158722980534989650226291 74878820273420922224533985626476691490556284250391 27577102840279980663658254889264880254566101729670 26640765590429099456815065265305371829412703369313 78517860904070866711496558343434769338578171138645 58736781230145876871266034891390956200993936103102 91616152881384379099042317473363948045759314931405 29763475748119356709110137751721008031559024853090 66920376719220332290943346768514221447737939375170 34436619910403375111735471918550464490263655128162 28824462575916333039107225383742182140883508657391 77150968288747826569959957449066175834413752239709 68340800535598491754173818839994469748676265516582 76584835884531427756879002909517028352971634456212 96404352311760066510124120065975585127617858382920 41974844236080071930457618932349229279650198751872 12726750798125547095890455635792122103334669749923 56302549478024901141952123828153091140790738602515 22742995818072471625916685451333123948049470791191 53267343028244186041426363954800044800267049624820 17928964766975831832713142517029692348896276684403 23260927524960357996469256504936818360900323809293 45958897069536534940603402166544375589004563288225 05452556405644824651518754711962184439658253375438 85690941130315095261793780029741207665147939425902 98969594699556576121865619673378623625612521632086 28692221032748892186543648022967807057656151446320 46927906821207388377814233562823608963208068222468 01224826117718589638140918390367367222088832151375 56003727983940041529700287830766709444745601345564 17254370906979396122571429894671543578468788614445 81231459357198492252847160504922124247014121478057 34551050080190869960330276347870810817545011930714 12233908663938339529425786905076431006383519834389 34159613185434754649556978103829309716465143840700 70736041123735998434522516105070270562352660127648 48308407611830130527932054274628654036036745328651 05706587488225698157936789766974220575059683440869 7350201410206723585020072452256326513410559...

2   Pass
N = 201; n = 6; y_correct = 0.0750; assert(abs(pidigit(N,n)-y_correct)<0.0001) assert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[101,201,202,203,1001]),regexp(fileread('pidigit.m'),'[\d\.\+\-\*\/]+','match'))))

piString = '314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243 88439045124413654976278079771569143599770012961608 94416948685558484063534220722258284886481584560285 06016842739452267467678895252138522549954666727823 98645659611635488623057745649803559363456817432411 25150760694794510965960940252288797108931456691368 67228748940560101503308617928680920874760917824938 58900971490967598526136554978189312978482168299894 8722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855 95663893778708303906979207734672218256259966150142 150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706 41401109712062804390397595156771577004203378699360 07230558763176359421873125147120532928191826186125 86732157919841484882916447060957527069572209175671 16722910981690915280173506712748583222871835209353 96572512108357915136988209144421006751033467110314 12671113699086585163983150197016515116851714376576 18351556508849099898599823873455283316355076479185 35893226185489632132933089857064204675259070915481 41654985946163718027098199430992448895757128289059 23233260972997120844335732654893823911932597463667 30583604142813883032038249037589852437441702913276 56180937734440307074692112019130203303801976211011 00449293215160842444859637669838952286847831235526 58213144957685726243344189303968642624341077322697 80280731891544110104468232527162010526522721116603 96665573092547110557853763466820653109896526918620 56476931257058635662018558100729360659876486117910 45334885034611365768675324944166803962657978771855 60845529654126654085306143444318586769751456614068 00700237877659134401712749470420562230538994561314 07112700040785473326993908145466464588079727082668 30634328587856983052358089330657574067954571637752 54202114955761581400250126228594130216471550979259 23099079654737612551765675135751782966645477917450 11299614890304639947132962107340437518957359614589 01938971311179042978285647503203198691514028708085 99048010941214722131794764777262241425485454033215 71853061422881375850430633217518297986622371721591 60771669254748738986654949450114654062843366393790 03976926567214638530673609657120918076383271664162 74888800786925602902284721040317211860820419000422 96617119637792133757511495950156604963186294726547 36425230817703675159067350235072835405670403867435 13622224771589150495309844489333096340878076932599 39780541934144737744184263129860809988868741326047 21569516239658645730216315981931951673538129741677 29478672422924654366800980676928238280689964004824 35403701416314965897940924323789690706977942236250 82216889573837986230015937764716512289357860158816 17557829735233446042815126272037343146531977774160 31990665541876397929334419521541341899485444734567 38316249934191318148092777710386387734317720754565 45322077709212019051660962804909263601975988281613 32316663652861932668633606273567630354477628035045 07772355471058595487027908143562401451718062464362 67945612753181340783303362542327839449753824372058 35311477119926063813346776879695970309833913077109 87040859133746414428227726346594704745878477872019 27715280731767907707157213444730605700733492436931 13835049316312840425121925651798069411352801314701 30478164378851852909285452011658393419656213491434 15956258658655705526904965209858033850722426482939 72858478316305777756068887644624824685792603953527 73480304802900587607582510474709164396136267604492 56274204208320856611906254543372131535958450687724 60290161876679524061634252257719542916299193064553 77991403734043287526288896399587947572917464263574 55254079091451357111369410911939325191076020825202 61879853188770584297259167781314969900901921169717 37278476847268608490033770242429165130050051683233 64350389517029893922334517220138128069650117844087 45196012122859937162313017114448464090389064495444 00619869075485160263275052983491874078668088183385 10228334508504860825039302133219715518430635455007 66828294930413776552793975175461395398468339363830 47461199665385815384205685338621867252334028308711 23282789212507712629463229563989898935821167456270 10218356462201349671518819097303811980049734072396 10368540664319395097901906996395524530054505806855 01956730229219139339185680344903982059551002263535 36192041994745538593810234395544959778377902374216 17271117236434354394782218185286240851400666044332 58885698670543154706965747458550332323342107301545 94051655379068662733379958511562578432298827372319 89875714159578111963583300594087306812160287649628 67446047746491599505497374256269010490377819868359 38146574126804925648798556145372347867330390468838 34363465537949864192705638729317487233208376011230 29911367938627089438799362016295154133714248928307 22012690147546684765357616477379467520049075715552 78196536213239264061601363581559074220202031872776 05277219005561484255518792530343513984425322341576 23361064250639049750086562710953591946589751413103 48227693062474353632569160781547818115284366795706 11086153315044521274739245449454236828860613408414 86377670096120715124914043027253860764823634143346 23518975766452164137679690314950191085759844239198 62916421939949072362346468441173940326591840443780 51333894525742399508296591228508555821572503107125 70126683024029295252201187267675622041542051618416 34847565169998116141010029960783869092916030288400 26910414079288621507842451670908700069928212066041 83718065355672525325675328612910424877618258297651 57959847035622262934860034158722980534989650226291 74878820273420922224533985626476691490556284250391 27577102840279980663658254889264880254566101729670 26640765590429099456815065265305371829412703369313 78517860904070866711496558343434769338578171138645 58736781230145876871266034891390956200993936103102 91616152881384379099042317473363948045759314931405 29763475748119356709110137751721008031559024853090 66920376719220332290943346768514221447737939375170 34436619910403375111735471918550464490263655128162 28824462575916333039107225383742182140883508657391 77150968288747826569959957449066175834413752239709 68340800535598491754173818839994469748676265516582 76584835884531427756879002909517028352971634456212 96404352311760066510124120065975585127617858382920 41974844236080071930457618932349229279650198751872 12726750798125547095890455635792122103334669749923 56302549478024901141952123828153091140790738602515 22742995818072471625916685451333123948049470791191 53267343028244186041426363954800044800267049624820 17928964766975831832713142517029692348896276684403 23260927524960357996469256504936818360900323809293 45958897069536534940603402166544375589004563288225 05452556405644824651518754711962184439658253375438 85690941130315095261793780029741207665147939425902 98969594699556576121865619673378623625612521632086 28692221032748892186543648022967807057656151446320 46927906821207388377814233562823608963208068222468 01224826117718589638140918390367367222088832151375 56003727983940041529700287830766709444745601345564 17254370906979396122571429894671543578468788614445 81231459357198492252847160504922124247014121478057 34551050080190869960330276347870810817545011930714 12233908663938339529425786905076431006383519834389 34159613185434754649556978103829309716465143840700 70736041123735998434522516105070270562352660127648 48308407611830130527932054274628654036036745328651 05706587488225698157936789766974220575059683440869 7350201410206723585020072452256326513410559...

3   Pass
N = 202; n = 6; y_correct = 0.0796; assert(abs(pidigit(N,n)-y_correct)<0.0001) assert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[101,201,202,203,1001]),regexp(fileread('pidigit.m'),'[\d\.\+\-\*\/]+','match'))))

piString = '314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243 88439045124413654976278079771569143599770012961608 94416948685558484063534220722258284886481584560285 06016842739452267467678895252138522549954666727823 98645659611635488623057745649803559363456817432411 25150760694794510965960940252288797108931456691368 67228748940560101503308617928680920874760917824938 58900971490967598526136554978189312978482168299894 8722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855 95663893778708303906979207734672218256259966150142 150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706 41401109712062804390397595156771577004203378699360 07230558763176359421873125147120532928191826186125 86732157919841484882916447060957527069572209175671 16722910981690915280173506712748583222871835209353 96572512108357915136988209144421006751033467110314 12671113699086585163983150197016515116851714376576 18351556508849099898599823873455283316355076479185 35893226185489632132933089857064204675259070915481 41654985946163718027098199430992448895757128289059 23233260972997120844335732654893823911932597463667 30583604142813883032038249037589852437441702913276 56180937734440307074692112019130203303801976211011 00449293215160842444859637669838952286847831235526 58213144957685726243344189303968642624341077322697 80280731891544110104468232527162010526522721116603 96665573092547110557853763466820653109896526918620 56476931257058635662018558100729360659876486117910 45334885034611365768675324944166803962657978771855 60845529654126654085306143444318586769751456614068 00700237877659134401712749470420562230538994561314 07112700040785473326993908145466464588079727082668 30634328587856983052358089330657574067954571637752 54202114955761581400250126228594130216471550979259 23099079654737612551765675135751782966645477917450 11299614890304639947132962107340437518957359614589 01938971311179042978285647503203198691514028708085 99048010941214722131794764777262241425485454033215 71853061422881375850430633217518297986622371721591 60771669254748738986654949450114654062843366393790 03976926567214638530673609657120918076383271664162 74888800786925602902284721040317211860820419000422 96617119637792133757511495950156604963186294726547 36425230817703675159067350235072835405670403867435 13622224771589150495309844489333096340878076932599 39780541934144737744184263129860809988868741326047 21569516239658645730216315981931951673538129741677 29478672422924654366800980676928238280689964004824 35403701416314965897940924323789690706977942236250 82216889573837986230015937764716512289357860158816 17557829735233446042815126272037343146531977774160 31990665541876397929334419521541341899485444734567 38316249934191318148092777710386387734317720754565 45322077709212019051660962804909263601975988281613 32316663652861932668633606273567630354477628035045 07772355471058595487027908143562401451718062464362 67945612753181340783303362542327839449753824372058 35311477119926063813346776879695970309833913077109 87040859133746414428227726346594704745878477872019 27715280731767907707157213444730605700733492436931 13835049316312840425121925651798069411352801314701 30478164378851852909285452011658393419656213491434 15956258658655705526904965209858033850722426482939 72858478316305777756068887644624824685792603953527 73480304802900587607582510474709164396136267604492 56274204208320856611906254543372131535958450687724 60290161876679524061634252257719542916299193064553 77991403734043287526288896399587947572917464263574 55254079091451357111369410911939325191076020825202 61879853188770584297259167781314969900901921169717 37278476847268608490033770242429165130050051683233 64350389517029893922334517220138128069650117844087 45196012122859937162313017114448464090389064495444 00619869075485160263275052983491874078668088183385 10228334508504860825039302133219715518430635455007 66828294930413776552793975175461395398468339363830 47461199665385815384205685338621867252334028308711 23282789212507712629463229563989898935821167456270 10218356462201349671518819097303811980049734072396 10368540664319395097901906996395524530054505806855 01956730229219139339185680344903982059551002263535 36192041994745538593810234395544959778377902374216 17271117236434354394782218185286240851400666044332 58885698670543154706965747458550332323342107301545 94051655379068662733379958511562578432298827372319 89875714159578111963583300594087306812160287649628 67446047746491599505497374256269010490377819868359 38146574126804925648798556145372347867330390468838 34363465537949864192705638729317487233208376011230 29911367938627089438799362016295154133714248928307 22012690147546684765357616477379467520049075715552 78196536213239264061601363581559074220202031872776 05277219005561484255518792530343513984425322341576 23361064250639049750086562710953591946589751413103 48227693062474353632569160781547818115284366795706 11086153315044521274739245449454236828860613408414 86377670096120715124914043027253860764823634143346 23518975766452164137679690314950191085759844239198 62916421939949072362346468441173940326591840443780 51333894525742399508296591228508555821572503107125 70126683024029295252201187267675622041542051618416 34847565169998116141010029960783869092916030288400 26910414079288621507842451670908700069928212066041 83718065355672525325675328612910424877618258297651 57959847035622262934860034158722980534989650226291 74878820273420922224533985626476691490556284250391 27577102840279980663658254889264880254566101729670 26640765590429099456815065265305371829412703369313 78517860904070866711496558343434769338578171138645 58736781230145876871266034891390956200993936103102 91616152881384379099042317473363948045759314931405 29763475748119356709110137751721008031559024853090 66920376719220332290943346768514221447737939375170 34436619910403375111735471918550464490263655128162 28824462575916333039107225383742182140883508657391 77150968288747826569959957449066175834413752239709 68340800535598491754173818839994469748676265516582 76584835884531427756879002909517028352971634456212 96404352311760066510124120065975585127617858382920 41974844236080071930457618932349229279650198751872 12726750798125547095890455635792122103334669749923 56302549478024901141952123828153091140790738602515 22742995818072471625916685451333123948049470791191 53267343028244186041426363954800044800267049624820 17928964766975831832713142517029692348896276684403 23260927524960357996469256504936818360900323809293 45958897069536534940603402166544375589004563288225 05452556405644824651518754711962184439658253375438 85690941130315095261793780029741207665147939425902 98969594699556576121865619673378623625612521632086 28692221032748892186543648022967807057656151446320 46927906821207388377814233562823608963208068222468 01224826117718589638140918390367367222088832151375 56003727983940041529700287830766709444745601345564 17254370906979396122571429894671543578468788614445 81231459357198492252847160504922124247014121478057 34551050080190869960330276347870810817545011930714 12233908663938339529425786905076431006383519834389 34159613185434754649556978103829309716465143840700 70736041123735998434522516105070270562352660127648 48308407611830130527932054274628654036036745328651 05706587488225698157936789766974220575059683440869 7350201410206723585020072452256326513410559...

4   Pass
N = 203; n = 6; y_correct = 0.0792; assert(abs(pidigit(N,n)-y_correct)<0.0001) assert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[101,201,202,203,1001]),regexp(fileread('pidigit.m'),'[\d\.\+\-\*\/]+','match'))))

piString = '314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243 88439045124413654976278079771569143599770012961608 94416948685558484063534220722258284886481584560285 06016842739452267467678895252138522549954666727823 98645659611635488623057745649803559363456817432411 25150760694794510965960940252288797108931456691368 67228748940560101503308617928680920874760917824938 58900971490967598526136554978189312978482168299894 8722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855 95663893778708303906979207734672218256259966150142 150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706 41401109712062804390397595156771577004203378699360 07230558763176359421873125147120532928191826186125 86732157919841484882916447060957527069572209175671 16722910981690915280173506712748583222871835209353 96572512108357915136988209144421006751033467110314 12671113699086585163983150197016515116851714376576 18351556508849099898599823873455283316355076479185 35893226185489632132933089857064204675259070915481 41654985946163718027098199430992448895757128289059 23233260972997120844335732654893823911932597463667 30583604142813883032038249037589852437441702913276 56180937734440307074692112019130203303801976211011 00449293215160842444859637669838952286847831235526 58213144957685726243344189303968642624341077322697 80280731891544110104468232527162010526522721116603 96665573092547110557853763466820653109896526918620 56476931257058635662018558100729360659876486117910 45334885034611365768675324944166803962657978771855 60845529654126654085306143444318586769751456614068 00700237877659134401712749470420562230538994561314 07112700040785473326993908145466464588079727082668 30634328587856983052358089330657574067954571637752 54202114955761581400250126228594130216471550979259 23099079654737612551765675135751782966645477917450 11299614890304639947132962107340437518957359614589 01938971311179042978285647503203198691514028708085 99048010941214722131794764777262241425485454033215 71853061422881375850430633217518297986622371721591 60771669254748738986654949450114654062843366393790 03976926567214638530673609657120918076383271664162 74888800786925602902284721040317211860820419000422 96617119637792133757511495950156604963186294726547 36425230817703675159067350235072835405670403867435 13622224771589150495309844489333096340878076932599 39780541934144737744184263129860809988868741326047 21569516239658645730216315981931951673538129741677 29478672422924654366800980676928238280689964004824 35403701416314965897940924323789690706977942236250 82216889573837986230015937764716512289357860158816 17557829735233446042815126272037343146531977774160 31990665541876397929334419521541341899485444734567 38316249934191318148092777710386387734317720754565 45322077709212019051660962804909263601975988281613 32316663652861932668633606273567630354477628035045 07772355471058595487027908143562401451718062464362 67945612753181340783303362542327839449753824372058 35311477119926063813346776879695970309833913077109 87040859133746414428227726346594704745878477872019 27715280731767907707157213444730605700733492436931 13835049316312840425121925651798069411352801314701 30478164378851852909285452011658393419656213491434 15956258658655705526904965209858033850722426482939 72858478316305777756068887644624824685792603953527 73480304802900587607582510474709164396136267604492 56274204208320856611906254543372131535958450687724 60290161876679524061634252257719542916299193064553 77991403734043287526288896399587947572917464263574 55254079091451357111369410911939325191076020825202 61879853188770584297259167781314969900901921169717 37278476847268608490033770242429165130050051683233 64350389517029893922334517220138128069650117844087 45196012122859937162313017114448464090389064495444 00619869075485160263275052983491874078668088183385 10228334508504860825039302133219715518430635455007 66828294930413776552793975175461395398468339363830 47461199665385815384205685338621867252334028308711 23282789212507712629463229563989898935821167456270 10218356462201349671518819097303811980049734072396 10368540664319395097901906996395524530054505806855 01956730229219139339185680344903982059551002263535 36192041994745538593810234395544959778377902374216 17271117236434354394782218185286240851400666044332 58885698670543154706965747458550332323342107301545 94051655379068662733379958511562578432298827372319 89875714159578111963583300594087306812160287649628 67446047746491599505497374256269010490377819868359 38146574126804925648798556145372347867330390468838 34363465537949864192705638729317487233208376011230 29911367938627089438799362016295154133714248928307 22012690147546684765357616477379467520049075715552 78196536213239264061601363581559074220202031872776 05277219005561484255518792530343513984425322341576 23361064250639049750086562710953591946589751413103 48227693062474353632569160781547818115284366795706 11086153315044521274739245449454236828860613408414 86377670096120715124914043027253860764823634143346 23518975766452164137679690314950191085759844239198 62916421939949072362346468441173940326591840443780 51333894525742399508296591228508555821572503107125 70126683024029295252201187267675622041542051618416 34847565169998116141010029960783869092916030288400 26910414079288621507842451670908700069928212066041 83718065355672525325675328612910424877618258297651 57959847035622262934860034158722980534989650226291 74878820273420922224533985626476691490556284250391 27577102840279980663658254889264880254566101729670 26640765590429099456815065265305371829412703369313 78517860904070866711496558343434769338578171138645 58736781230145876871266034891390956200993936103102 91616152881384379099042317473363948045759314931405 29763475748119356709110137751721008031559024853090 66920376719220332290943346768514221447737939375170 34436619910403375111735471918550464490263655128162 28824462575916333039107225383742182140883508657391 77150968288747826569959957449066175834413752239709 68340800535598491754173818839994469748676265516582 76584835884531427756879002909517028352971634456212 96404352311760066510124120065975585127617858382920 41974844236080071930457618932349229279650198751872 12726750798125547095890455635792122103334669749923 56302549478024901141952123828153091140790738602515 22742995818072471625916685451333123948049470791191 53267343028244186041426363954800044800267049624820 17928964766975831832713142517029692348896276684403 23260927524960357996469256504936818360900323809293 45958897069536534940603402166544375589004563288225 05452556405644824651518754711962184439658253375438 85690941130315095261793780029741207665147939425902 98969594699556576121865619673378623625612521632086 28692221032748892186543648022967807057656151446320 46927906821207388377814233562823608963208068222468 01224826117718589638140918390367367222088832151375 56003727983940041529700287830766709444745601345564 17254370906979396122571429894671543578468788614445 81231459357198492252847160504922124247014121478057 34551050080190869960330276347870810817545011930714 12233908663938339529425786905076431006383519834389 34159613185434754649556978103829309716465143840700 70736041123735998434522516105070270562352660127648 48308407611830130527932054274628654036036745328651 05706587488225698157936789766974220575059683440869 7350201410206723585020072452256326513410559...

5   Pass
N = 1001; n = 9; y_correct = 0.1050; assert(abs(pidigit(N,n)-y_correct)<0.0001) assert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[101,201,202,203,1001]),regexp(fileread('pidigit.m'),'[\d\.\+\-\*\/]+','match'))))

piString = '314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243 88439045124413654976278079771569143599770012961608 94416948685558484063534220722258284886481584560285 06016842739452267467678895252138522549954666727823 98645659611635488623057745649803559363456817432411 25150760694794510965960940252288797108931456691368 67228748940560101503308617928680920874760917824938 58900971490967598526136554978189312978482168299894 8722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855 95663893778708303906979207734672218256259966150142 150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706 41401109712062804390397595156771577004203378699360 07230558763176359421873125147120532928191826186125 86732157919841484882916447060957527069572209175671 16722910981690915280173506712748583222871835209353 96572512108357915136988209144421006751033467110314 12671113699086585163983150197016515116851714376576 18351556508849099898599823873455283316355076479185 35893226185489632132933089857064204675259070915481 41654985946163718027098199430992448895757128289059 23233260972997120844335732654893823911932597463667 30583604142813883032038249037589852437441702913276 56180937734440307074692112019130203303801976211011 00449293215160842444859637669838952286847831235526 58213144957685726243344189303968642624341077322697 80280731891544110104468232527162010526522721116603 96665573092547110557853763466820653109896526918620 56476931257058635662018558100729360659876486117910 45334885034611365768675324944166803962657978771855 60845529654126654085306143444318586769751456614068 00700237877659134401712749470420562230538994561314 07112700040785473326993908145466464588079727082668 30634328587856983052358089330657574067954571637752 54202114955761581400250126228594130216471550979259 23099079654737612551765675135751782966645477917450 11299614890304639947132962107340437518957359614589 01938971311179042978285647503203198691514028708085 99048010941214722131794764777262241425485454033215 71853061422881375850430633217518297986622371721591 60771669254748738986654949450114654062843366393790 03976926567214638530673609657120918076383271664162 74888800786925602902284721040317211860820419000422 96617119637792133757511495950156604963186294726547 36425230817703675159067350235072835405670403867435 13622224771589150495309844489333096340878076932599 39780541934144737744184263129860809988868741326047 21569516239658645730216315981931951673538129741677 29478672422924654366800980676928238280689964004824 35403701416314965897940924323789690706977942236250 82216889573837986230015937764716512289357860158816 17557829735233446042815126272037343146531977774160 31990665541876397929334419521541341899485444734567 38316249934191318148092777710386387734317720754565 45322077709212019051660962804909263601975988281613 32316663652861932668633606273567630354477628035045 07772355471058595487027908143562401451718062464362 67945612753181340783303362542327839449753824372058 35311477119926063813346776879695970309833913077109 87040859133746414428227726346594704745878477872019 27715280731767907707157213444730605700733492436931 13835049316312840425121925651798069411352801314701 30478164378851852909285452011658393419656213491434 15956258658655705526904965209858033850722426482939 72858478316305777756068887644624824685792603953527 73480304802900587607582510474709164396136267604492 56274204208320856611906254543372131535958450687724 60290161876679524061634252257719542916299193064553 77991403734043287526288896399587947572917464263574 55254079091451357111369410911939325191076020825202 61879853188770584297259167781314969900901921169717 37278476847268608490033770242429165130050051683233 64350389517029893922334517220138128069650117844087 45196012122859937162313017114448464090389064495444 00619869075485160263275052983491874078668088183385 10228334508504860825039302133219715518430635455007 66828294930413776552793975175461395398468339363830 47461199665385815384205685338621867252334028308711 23282789212507712629463229563989898935821167456270 10218356462201349671518819097303811980049734072396 10368540664319395097901906996395524530054505806855 01956730229219139339185680344903982059551002263535 36192041994745538593810234395544959778377902374216 17271117236434354394782218185286240851400666044332 58885698670543154706965747458550332323342107301545 94051655379068662733379958511562578432298827372319 89875714159578111963583300594087306812160287649628 67446047746491599505497374256269010490377819868359 38146574126804925648798556145372347867330390468838 34363465537949864192705638729317487233208376011230 29911367938627089438799362016295154133714248928307 22012690147546684765357616477379467520049075715552 78196536213239264061601363581559074220202031872776 05277219005561484255518792530343513984425322341576 23361064250639049750086562710953591946589751413103 48227693062474353632569160781547818115284366795706 11086153315044521274739245449454236828860613408414 86377670096120715124914043027253860764823634143346 23518975766452164137679690314950191085759844239198 62916421939949072362346468441173940326591840443780 51333894525742399508296591228508555821572503107125 70126683024029295252201187267675622041542051618416 34847565169998116141010029960783869092916030288400 26910414079288621507842451670908700069928212066041 83718065355672525325675328612910424877618258297651 57959847035622262934860034158722980534989650226291 74878820273420922224533985626476691490556284250391 27577102840279980663658254889264880254566101729670 26640765590429099456815065265305371829412703369313 78517860904070866711496558343434769338578171138645 58736781230145876871266034891390956200993936103102 91616152881384379099042317473363948045759314931405 29763475748119356709110137751721008031559024853090 66920376719220332290943346768514221447737939375170 34436619910403375111735471918550464490263655128162 28824462575916333039107225383742182140883508657391 77150968288747826569959957449066175834413752239709 68340800535598491754173818839994469748676265516582 76584835884531427756879002909517028352971634456212 96404352311760066510124120065975585127617858382920 41974844236080071930457618932349229279650198751872 12726750798125547095890455635792122103334669749923 56302549478024901141952123828153091140790738602515 22742995818072471625916685451333123948049470791191 53267343028244186041426363954800044800267049624820 17928964766975831832713142517029692348896276684403 23260927524960357996469256504936818360900323809293 45958897069536534940603402166544375589004563288225 05452556405644824651518754711962184439658253375438 85690941130315095261793780029741207665147939425902 98969594699556576121865619673378623625612521632086 28692221032748892186543648022967807057656151446320 46927906821207388377814233562823608963208068222468 01224826117718589638140918390367367222088832151375 56003727983940041529700287830766709444745601345564 17254370906979396122571429894671543578468788614445 81231459357198492252847160504922124247014121478057 34551050080190869960330276347870810817545011930714 12233908663938339529425786905076431006383519834389 34159613185434754649556978103829309716465143840700 70736041123735998434522516105070270562352660127648 48308407611830130527932054274628654036036745328651 05706587488225698157936789766974220575059683440869 7350201410206723585020072452256326513410559...

Suggested Problems

More from this Author62

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!