Created
April 13, 2020 21:14
-
-
Save cgobat/6cf66e89463be64142dd7b7366d34730 to your computer and use it in GitHub Desktop.
Simplistic implementation of a Monte-Carlo-type method to estimate pi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
with open("randomstate.pkl","rb") as picklefile: | |
np.random.set_state(pickle.load(picklefile)) | |
N = 100 | |
trials = 50000 | |
theta = np.linspace(0,2*np.pi,360) | |
fractions = np.array([]) | |
for i in range(trials): | |
points = np.array([[2*x-1,2*y-1] for [x,y] in np.random.rand(N,2)]) | |
C = np.array([point for point in points if point[0]**2+point[1]**2 <= 1]) | |
fractions = np.append(fractions, len(C)/len(points)) | |
plt.plot(np.cos(theta),np.sin(theta),color="steelblue") | |
plt.scatter(*points.T, marker=".",color="darkcyan") | |
plt.axhline(0,color="black",alpha=0.5) | |
plt.axvline(0,color="black",alpha=0.5) | |
plt.xlim((-1,1)) | |
plt.ylim((-1,1)) | |
plt.gca().set_aspect('equal') | |
plt.show() | |
print("This simulation puts the value of pi at approximately",4*np.mean(fractions)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
€(X MT19937q cnumpy.core.multiarray | |
_reconstruct | |
qcnumpy | |
ndarray | |
qK …qCbq‡qRq(KMp…qcnumpy | |
dtype | |
qX u4q K K‡q | |
Rq(KX <qNNNJÿÿÿÿJÿÿÿÿK tq | |
b‰BÀ ÿmÀãñ¨ØßÀf>jÔóÀê¢ýD[½þJ}üÈŠc®™‹Øp EjÎxPu»ójŸÎ¼TLN$Îòu¬7ÇöˆàÝ=CE§'™*Ç`j†Ì³4ÔÒP%.‡†R¤6%Ãâ`ÆðNÛníÁÃ>"œ5^«èugÍl"){pVoJ¶fË’†¬˜™}I š…‡Œ`_4`´x‚û_&"«(ê’öþbM„¢ôI ¶~·¯ÉøÒß’#Èh«9· ?þ×ΦàÇJÂR’ | |
—¡˜¿+Ú)è×—³dyÖ”U°jN%ÝØÎy7°Ž°=£[We¹<ì §šü-ZÅ^úØÐ;ôµN.ý„ÓˆÚn~tºGVM³ï2¢«®.òŸ@æžÉ¥½,¥™k®(%½{>áß|ãìB>¸a2<<./Zã}HÈr\źg@ï§. ëǦ(»í¿ý—#KmeOÁ˜Ž=Þz–ºXÁ)ç;³&'Ãjn òýÐ/ýC ª?s"wÏݨ×jÒªŽ~™5Ð…)g¯zp7Œ(*QÏçHšTŽ>tuzª/çí³Ö&úÏôîE | |
̵IœöxuK.<Š÷ÌXp~\ [åya=êÚb5+&Xƒª'¦Œ'YæãÝR3²u1T,† âë¤ØF¸ÒŒ¦Æak:s.ç«X˜r”p, 2¨ÂŽñÊ´|=Wóܘa{Š[Þ+„úzM¶¶ )¨‘ü¬ž X:oþ)§ëºqgÍF¬Ëµ¤ø†x¢ U¨ÄöÜÖ¾ï^g3¢§pÇ*W-m}¤"B” | |
ú<5¬Ÿ¦òeÆw‹ù˜?m©1¶X¶U3ÁU=üd.†$®7ƒ;È’z¨]èG<ƒA”<0õjôÍȺ1Ô+Šxñf‡% | |
8@É”¸—DŒ&ºÀPÌ¥FG…J#—ƒ¸ñÿhÁuóò_£±PF'‰0ŽT¿ŽªJ„ŠÌ]†YH TõœTV#Ñ9õS/:džò¶ ªÛD6m!3`6<Än3Â#¦ñ芗)xc|Up¢§ëÁ’az | |
ü´»p¼–ëzc^YJ•ZÜD2ÜÔöEƒZàk¥Íóž2jç/Lìð,ËZžë˜Këµÿð>Äð²Í§soädÃË®Á×t¤”`2dÐÕš—XAigËrµü£¨á9öÜÀêlHšzŧm3‡Ýó'ýM´¸ | |
ÃüKÔrXãkëlãl¡›&!Ôaʹ¢Ñ—^Ûæe¡Ú#sh„ù˜‰¢dÒëŠ9zA´Ûý3 „á¢òÆ9iÞX$«V¿šo¾dœøD¾JÌ›‡¨aÁ@ù¨XNÕ×N«9Eá/û¶–>¥¾F›xÒZB×0©H/ͧA_…LXkûá³ | |
G6Ôý¬M¼»ZC#Ž;^—3¯‹WË{J«’ýòœOBñb‚Âì~×ZîÖTóÿ¹Æ¯ON{Zu—±áÑ9jÙÉ=îXŠÀ;<IQ0Ïn@:*sP‚"›ãg°žÄ(ùAŒSº¥QwŽ‰Wƒ.<“nf¢ÃÆ×ʯ£ | |
YŽvw©ùqxe.íê圉%Á²§Œªú¨s_óªLK~.`–:Te3gÞ | |
<(‡ö‹™¹u¨‰Æ»‚Ÿ…h!-Ø£4µ'ˆ%IÓÔ¾fØA–ïo`ûK…[J€qÛÌ&Á]j=†œ·\»ÖÁh û[÷ª/ÃVw— | |
§hmØcÔ{Œ*OMÊf9/GØOðN | |
²YÌ'+ºƒŒ±œä^×õÝ5=Kz×[ï8L—°Æ9<L÷Â^îš³k‘|c ^í’éX«Û¬íä£AhZ‚½*AAǾzV#Gdx18V–å“ö7mxŠ~Áœ@~²[¥Y¶Üø½ž©ˆüv6HnŒ<YY=îqàŽÎƒ8]C;!Ï"7‚Kr™Müì¨zõ‘ðo%€†©þê®ðâï*òÔÜê†9Ç¿¾?YnŒ¹p/¹-Þί@e¦ÇºsÈ$ºÞïd«¬/+"[MöÛ{¦$}—éŽf | |
Š$kOPûx«·ã…¥2¶ID7 Ó':ª¼á °p><f’,¾ù>˜ÜÚBŒU$©pmt'=êx—§Ýæ²(TÂ`>².ØßÉ †r:ô4†ž|”Œâ¡%Ã/ö?=kë”?0§~pÈü°ö›ÿ3á†Ï*6‡F¥t|d=n"€ÉýGUÊuLv9´¡®¥ºìn3bIã¾Èžæ6MÀ”·]™X€©¨¥£aÕOÿ±uŒØ´pLÙ‡<ð@0Æö(¾z€l¾aïç;&Ô<‹öÁÎÌÃÛ¼êk%>„mè‡ÚãÁMfw´diàâaÒçjC?@Qzò€E˜vZ®3Á•T‚Ûw#ovÏs!dÕa¹‡$,QÜøÚŠŸaJ[ŽV-n2ÑÏcvsg_QëâT¦Þez"BÈ‹|¬ÀÓCÈ—¡£a‘³ôYƒ'YlµññXˆ¼Ûââ+ršaÉíàσ*¸a.7Îâ§.öÿC…hêÒ,À | |
ÿæ&¿“Ò¶¢GXa<Û&ÝÙ¿Ü8 káßô‹¢nÁ,ÿ=€KÕ×ÕQMXwg–Ž½,•êMàîÖç¢A 0„9Û3º¥¼4kwÈàQ^ß«_¥=€˜Û(GËãI]ë뇦ð¥Ì$R(Ÿ' | |
Y|ɽí¶éC®áLw!þºuÒ'”ž–æ_0}]7]¦68»Ö%TÊ$ªw“lì3Χ…ãÁÙ¥«gøIüÇì—§hÎ#6†¨5¥ØÑ“0ú§q„È ¨†–y;£Ç3µ©‡OÒoãôsêqÞŠör>±BâÛš¼Ž]ξm+%|Ç d£Ç] | |
âš÷ÃJEwmž=ídøú4ºu,ùR,ªeQ)ñ+n‰ÂÊòÍ—W’ pÏ\ÇÿŽ·puìÞs"Úðê’2žâꤸôÁïËÅ ¼á+3Ü¡. | |
GÓß<wPe”áýËÑJ¡~î—®X_r2À4ÊÝýyÚØÕ>l#üo1Š{ç'Zê-Ó{A”;sêÞvª<°âÖ•s¼Ç±|²ä÷4r,îP, aƒ^T—ym%; Ú÷¬Ý`Dë4öbVƒ˜$EÁŠ5¬)2ÄÍŽ=UˤËgÊWÚ“Þ‚KÎÜ]t^wF§Yœ¾>F`¨›Žb“ÁµqÂÜÒ<cç–³åqtqbMeK G tq. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment