From 90255ba3207545de9a506e9e98c67b7a62ba4c5b Mon Sep 17 00:00:00 2001 From: Shraddha Date: Wed, 12 Feb 2025 13:27:59 +0530 Subject: [PATCH 1/3] Corrected the posttest images This fixes the issues - https://github.com/virtual-labs/bugs-virtual-labs/issues/1301 https://github.com/virtual-labs/bugs-virtual-labs/issues/5091 --- experiment/images/code1.png | Bin 4939 -> 3256 bytes experiment/images/code10.png | Bin 8272 -> 2875 bytes experiment/images/code11.png | Bin 7843 -> 2737 bytes experiment/images/code12.png | Bin 15723 -> 5215 bytes experiment/images/code13.png | Bin 11726 -> 4303 bytes experiment/images/code2.png | Bin 4419 -> 3787 bytes experiment/images/code3.png | Bin 4249 -> 2675 bytes experiment/images/code5.png | Bin 8501 -> 3444 bytes experiment/images/code8a.png | Bin 11578 -> 4325 bytes experiment/images/code8b.png | Bin 14382 -> 5571 bytes experiment/images/code8c.png | Bin 11356 -> 4347 bytes experiment/images/code9.png | Bin 4968 -> 2944 bytes 12 files changed, 0 insertions(+), 0 deletions(-) diff --git a/experiment/images/code1.png b/experiment/images/code1.png index 56654ba77d6886dc287a7db214fcd6add881682e..b60fed476a283d19f2f8f3da7bb9925a6ae006a0 100644 GIT binary patch literal 3256 zcmbtXdpK0<8lOS#*IbX=$fe7U+%n~^O{m;Xs@)jH#1Jz?A{pb(Y-}V&Z*7NNdm@|9DtVJwENbd-K2ZgXY+uliE zC)H`D6=x_$z}~DizJ7b^f?R?tOq1W{c_Y+FUSvm^d7YR(Y^q(z!Sr$@95!LqEqYt? ze}ewUhG1o!R$<@yeRXM<-SX%0I=?!EU3{$I!siw4R2{-TA-=t}m9W9*pyR*k#tnH^ z*tNI!l|uXL86MM-J2Qgl50$$bkiL#gAS5ZYYYqNM4E#QaXpUfZEwkU~fcK;lTb#K4I)EQ?Covpp zvcWf-Ni*tj2HikO^u(q?r(S_=xlsY$FUj_X>@CE7bzkpF1%z}rf0M|k^fzFyaioBn zQA~s5aDRXQW#QpM0d;qXRzi@lH|yy~uM@N-QVObvg1v~t;5Ib7&K@PX?|;5r9WR|M zy82Iq_Gwq*`Q@9NfR4sG(+ss8$@#@5^Rhd`XW_t>Qxpr%_p-wy89vFtE2ZfNl97D@ ztomql4dJHRy>Ic>?&s-Q!Z)k zC@F`nlx(Vigng2Sa9x&ljU|BHuerqVSuq#(LNkHLU3 zd0DL``qDH>wX{E@9Ewbqxz*0SNA3Uiwg|6<%p?KdqtRR{+(ie^$mw2LT->fI+^Pqy zgK(N9)9T_HF-z;~6YD0z48^~7;;+uIPuLv#<&s&gM_Sp_OGnukh`RH~nN3x1f;~oi zp>I0pW^3S4C8cz1Xjwbsq`2wR@rhl(WdoDHKFOXqYvpxOKFKZa|$ybNPZf{whiCcfgTX2(ufR2s+0GH-ISfqIobmM#&V+*074*O_;^nrTQolFY3 zksmoExYVTrInpzRrr%G=4eAyev5w*pMWw#d_)I`~l${B*&#Qjb#iyUI9%E$!w)2W# z_3*v35he-0Mz|Lx=)g-;0r+mx4v2g<*vvu?=>FNi~ohoZe!T7AB8u zSlA5zIp&dG=gaTw%gf6vS4@9H3VhV}63Pt!?MuYh@rmUU+{+TSt&RJ#D_a) zLZdBPG*k_al_-Dxn$aR{@fUY&@yCAw<}wWqF}2PaV{3fpqM7;N^sUF;oLy^Y zAMzd;fsPC-ke6hp?xlVjcdj9W&+32amzb4^ond0E)5rmYA>V0U3Hk-Z0u(ZbSJZX= z$$070mw0Z}sBoGj3ro!DFIh z!E~q=#VZt@+$^uAH*;1iu=8;z>y!cdMRR2&h7KaS>8AEwVOPH;--avRQ4LV-eRfb4 zZ1NfLQQupP{>8pxLm+;P&q@hmzoAV?dMG6ZM-2}7GCrqdEh&JxtMGD}l!FnC^J5ML zYB^{rG)~}6nHn6!IobKgZ5)isX>gDV;eXO==5e(l;?Y`4t+Tjo;e{_VNVTYK;Jpjw z1jkSAiDH+V2V}Db3!55)g2!7NZ{LhtZ60 zNxeLaVc}YJ@Q$NN;ab{Shnr`^(>dz79TNA3x|+XBZQInv3y;FyE?s+Q8F!|)si-)M z?IaSmwd) z7(XfMt@=<^n_prSQc|PJShy7PAs3ZQ(Qez+dSMt~d z`wx`t-ssm!ld~i9gP-Lrc|0C_{BqqZNw3n85UrseCsvr2nU8!$dHE=_#4T*EX!O3W zEo#wGZ&5LBmjTuF!`WbL~y1+Nx(Q8qb6|nhsZ4e!4d9ya^>% zN;%lNz;#@8EjGm4`69DlC5~qpp*LN<1sN=7hUhh!Kty%y>D{LIg$``9CO9{9SO!Xi z3KZACJo*)o2^^?AAK!M7QO%cW&H-ecQe)?-sgUey-(jyRXB(4q;Ex94VJ*lb%hhI* zDmQnG8pOu6@=KopA)t!il6Yk23}3N19gw-(|4f6n%Q{PFE>ZPOo*uUd!n|M!Bp!*{|qJbnXDtkI?Gs&P}6p8Wn(Vp=z ziyLz2HW6_L=o}m@w{VXd!x0eSExDtZg0ppbB0$9=rr-`&8~*MoBwt$Z3I+V6g|xGQ z^*J$M*B$=@ZzMiO!KNZZ=))cjBn(nWKUPFPQc3^M-l`aCd#Fl{+CVAvw*fnH*u$yz IXaAIc0ec`i_y7O^ literal 4939 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 qk9N7f@fHO@mSF^y0qy_8(5B_ literal 8272 zcma)?WmMfz_vV9BoQpdYC@zKK?(T4LcZwJH;!?Co@nXf@-HN-r6?ckVoT2}DXU&J1 z4{z2=&N|6XPO>8V*}o?d%8F8`NQ6iL0HDf9i>to1Pj7QRBJ|smAA7dst%3O>Dx;2w zh`6$)wE5O0aFNh*QFE|xaW{502Q2L!?97?Im^z!A+kdfga5;zR6a)aWZ5eS9b&rhG zOn>zm$n$x&FyndEr0=vuy4JznMV|vvNxPrwX?$IU;r60U(F%%`rtxV9=ki#nms@bN z?il}uP1SzO|p1U^<_;&HWcB z+Boue@bYPp?H%IHtCzo?H2gx9ZR_Wd<7dCZh+L1Cr~9WTA7$ENk%v=zAcSpAc}h(c zjowRkSVTfehNtL&jt&7wfO_|5Zec#L`gLMrP-Iqu^Zy$(P#4irxV77EEwo%J;B3Ci z_)M~U4Ea?qWF$!DTAtZ(q_O;zI$cL#J)KH_3by1=LjrmZj|$kYM$qqizqiCJwBP-S zV&QBF@mRCHL_9my;n7_O<)kJ$#mlcmFIH}RmPX)Xp!9P^VoHzR+b*-#&FcuD02%$_ zRm5riJgp1@kY^=u}slU>87tj(Zr%T>iWTb^g32BPCF`e^sV^OqSP-A~;*z*o0@ zTb)Q9SGAX0stb3Ge$5+ez1RXb 7{(ci=!QbY5MlS5?QG^E{_g+0_h@b;1gx+qD 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 X13ix$7RUenDFDbwD2i8z8U_9@*$gll diff --git a/experiment/images/code11.png b/experiment/images/code11.png index 2f4a0c1559da2148aa97b9d8a0fc5bfdb7ad4b23..1a14753ee7f5d4797ddfb1193d0d0e3e4f5ba780 100644 GIT binary patch literal 2737 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 diff --git a/experiment/images/code12.png b/experiment/images/code12.png index 592a04f49b2ca42e2ae052e8e4401dcbf9c5222f..5442b678edc472162ce1dd10e089b36331d8dfec 100644 GIT binary patch literal 5215 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 diff --git a/experiment/images/code13.png b/experiment/images/code13.png index e23abc9b89dbd46c57cdc268dff64ab7887e2a96..2937ba188e3cd61e93ffa1d41d2749c7a4434d06 100644 GIT binary patch literal 4303 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 H^1SyCs-AoD literal 11726 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 NM)IpfxtQV4{{v=|7Wx1H diff --git a/experiment/images/code2.png b/experiment/images/code2.png index baa07f466df3ddec350d60913367893d76aec827..3d1a1775f42d7f2cee1a7a39ff60eacab83830bf 100644 GIT binary patch literal 3787 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 AkpKVy literal 4419 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 YG&Ugb+2L#@`W6I3SzhBs4bT$$KlyTWGXMYp diff --git a/experiment/images/code3.png b/experiment/images/code3.png index 764dfcb8c7f555f7a9127614c40680ae731822b5..d77a7088ff2d1f56a3b1d47a69053fb522e24b39 100644 GIT binary patch literal 2675 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 diff --git a/experiment/images/code5.png b/experiment/images/code5.png index f80430843abac1b0fbbb4e1a1abeb0b6db895473..2feb25174fc40718c4fff2ac1aa9eb9b71a0a12b 100644 GIT binary patch literal 3444 zcmai14Lp-;|GyV`>mU!MC_6YwlEv}b(K0VvJx|C%B5y0jjBN5e zQ(H~MLb4*}wAdU?GOR3wG|cNZJhyY6=RD8<^FRO3|NeaLm+Sgn_x19-zTe;Pdu1K- zL1}9lX#oJBedMs`_W%H)fZw+?)W9brSy~CcAhF-0+yPeCj&ZP{8iDXe06=yACgqPC z!Lnw|;S;d{pwqg3L%7lRegb>aJmQH6NDQ4C?7Yx((xCl9pS$*leWr21&cCZ*zYZXw z9oT34jDG84wz!KJbvtc(p-Kf-}^IneEjTo_HEEW<*lmp?L_!zE;l0W%3(+4^qmzr zq~+pv2!zZzp_WVB<%4URR4SEJT9(w|V5k-Sz^>6LH1Gaq#r?hHH=(i~b+bRNVv;XzyD!Kt^eb^kDoPglV?z1qqeG{O>P_EOcNFFb6vg2oBI||Y;t>ay#^(5ck$|c1$ zv!)p@BQWMIZ@H#0mYcMn+jZJt8Jw0_h;VVa_9oSRVsHD4)|PboW!cFLu@%kmJEqk%oXvi)azaRM2YuvMFip;$|$q z89(H!{9Lpr`Cb5ykOEkXtkcyL6`P;tlf|tX&oAoPf7()Ub7J^s8=Nc>m$G9kza>7I0Mk4}?4LXxkeV zcEJ0X@a^^l(PiLyYcX07VI^^kf2C19>Ui(XBS6qV1Gsf`4w0iI=iH_Rub?;@(vW`|mXPBND z+ML;!7ksU75jXN<+`6yyCDQJ%axG;XiK_B zduRB&A)JM19qC*j^WVYYPZ$257_x0jE^m~jR{(+x+6zmM1WO>zMpYYWiUp#wX(wp) zy6?biPy)n-)o2tbgVR_GOAU?Gkn`DG&C;?mRu`ZDmglJ$85xmJ_Hli<2Yh^djt2z= zCGh!vYe1el;<1~aM(Cr8eTMkKfp4#Qm%%NtW;^F>4lat^BG~$ z1(7=gjnmGWW4GR8)}xXMsTO?wFv(boFu3dxz3mJSbRO92{|dN&>eC(NOD_p;AI?Kg zMQTvYJq3WXg=(iBxSKoliQ#w64#z>OC&G)gC@H!%k)hNtx+dneKrK>mG>2$vxK{6R zQHQic$HZXS;Q;@0CFk3k!e2h90Q*2tRg5(S zz;unMV&9Tw+?p(#28pp$?R=TzQa4h`b0@%%SM+5|nQDMeF0FW5>LL2~8*@MUV=(TU zfDjNuNW=}4*(#kNPPSjxycN<_i6V{by#@qEh;I>uBQ>1Ln<#s&0@rAr8|CBp3Ui=O z{r^uy|K*qTZdO&5EG>So@RFHteC6C67D+BcoqGntvqihyY?Q7ks{v5JMM5|~}mh0;}plp`GDQ=R(3ti@SPSX`8fa~G;> zLkI7h=kfEQhrZCc)j6q95i9k&hEdL6+Ez@@3*H%8;Cu4?KJ(xvVwy-N&?zE!UaBC^ zXB-jNVhj{A<+3dIRK0G-YtfTvDe)WP-u~Jy@@_eqXS)f+e^MrG`{l!;Qet>mh4w+J z<@pDU5@xvYaAh_UZEH8Kj~{g}?%aos--!$0GK^fN4n$InKpYMqdbLiM-0uQAR?5$z zr)FX=P3(ShKcYT%u;bfRu)r<47wcak+ zS;CSd_wC7nI`5>*;)Nx6WMluEu%Xo@IDJh%e-0D+(3iWvO0@Vl*#b^PYNmBdYmBb^ z)ZgAr(_9U@9O`3AdRrmcEMsSK1C#XasqMyeMaDZ105DdfN_y8Qjb| zWw5%e3F;woJYJX6;*=-EyPsodP&U5W2>Zyn`gn(pNG;cp-=q`Po~vmDYwGV3iA1?) zb}c4|r!EDHI5@_#}w5xjC zxFJ>uEAmU2Ay>3CBLE+StJZ_G0TKyFxVF8ozrp#WJd zIg>4|SboL`<>t18z=o=y2arst-G@AhcF8*U|U2yLccyoAE0BvlzB;^ z4LtwxKdB!SSsWhhcahc79G#&9^mRpn+Nd%FNK6Ecsi(I7OMz_z0DAiWJYImpH_qRi t<*1T&mW&2-ARQDNe}4S1PB&ff@^ShcXx-4LvToNhakb--C^Sp+%*tjW5HcFu#v<6 zzW3C*b?a8$_tdGHn$_#uOt0zg-_vWtl@uh=Q3+5106>?P5>o*HxZD>z1{wZk#*-xN zeR&|bh)Am;BO@3A(I)A_K?N}1P5T6TGMJZaa10sxvz2d-RJmTq*$zwF}3|%4aYWu~S=c34PV-3WEx?su!$=FG3VD@%UwqY^~2xe{* zs$-8I+|N_gY#?4*o<;BWrU4VD6-XI6P`g$$F8&D4vnaZyO@-U zX9ff!8~W!-eQF*FpfGgTW4tx=_Sk#~^F~0N)O(Uxvw4niD@Go}9o$BF&63gM051Ku za48vTW2Co1A75wr?fb7OkD~I%b&*kO1OQlEf$qJUwe)Cw%edszR~u!9^vuj!`fA(ya#XF8$f;DoY}AK1~BBr z9V&J4bnCX-Pe-oikNa(Q<2lfNs~e$XGi(7n+r2#U~NV8D%OCrNQ*A?qi_5x}D0!Ax;dCN6vh08VFl^~2D1 zLBS(9*1goQ#2vGF&X-smPT`=k)K46Bz6*pRetwXvt#I%3_FXwDxr#iGZk3ZrWHnQ3NQLlx3jpo;wg+V7Rfv`)1kXzA$!{THN`|XY(22Mru}tUB&s+g9zYr- z`_H=Yow%KrU}WT{!U<_A5sfGKZZ7h9)yCR*>e?maQmTie6%6KcsFK9ll;Re6`cGFw zt|GpTk><GAV1K_{TwJe||$y|ufJG5BpHPdwjfQiX{NxPIw3XX}3s*k8% zs8p9hru%;7Xoc|3kV3(8PVw1@v^}amUvfN@kT$^R@n%Yis5!C=dHp5gucRVB323C&opYcG-el%Rm{&eq)*0~KLXyIS03eM>{l@hvnb;+KMcUHw~lFZTUM+qj7zG?%U$;fl|s80WKCO z-#-OYa4(lG4Zjy@&fULKcR4ir1BU-QlG|islsNQAvTSF(Ly7gU;Ad&uRp0n5leqqb z+fF!5YmS`S4c(y^iX)!#2-!z!+I@u(e)&q&e*VfcuwyKV?MFoj*K@e%Sndv6m;0CJ z=IZP#5=iI|{#DEm_d`m$N%X8@5-W#DZ)V*F49}3)iYw{D$BB#CR-~d@H~5BB)Y$Cx z6QDE+-4+5IbgZb9;i%%Dn$+JB3|^Ujyz)`*5qqMzA8r(O((dJ0?q@xXE>DiQncdjT zK1s_?nCOzl&bkDv(FXgS3AjkTAr0(H0cZ0#h7WUYc5L$A<~qEPuH|8_-}Ho)HYjdAo>cn0x5e_d-Qa!B z=_WDtZa7VU6Xpg&pmBOZM4pl#4I1;+Sl~L!qtFn#8djhT@g%k*jF9fx=A8w95lY(A z1`@#PQmA86U0O!8G=y8l#>vSse==nhCu$Xys@AM?^XKhr$!8ivcSDkwOy5*3hQ>FE zuaoJp>$rd;#-~fry>IlS?fC>n{PVhdIKl4Y0q=#E2mv7UJ6>*i4NUb1URt6QMXm#^(%yNR^3{VyZk$$tLNmR;dmEwp?`eaVsb zcDn3yZdH{JzbM>IF0~Rsm>_r0SrVsMWB3zT`zDe6x zt}M}~t}S+^MMy~1OC6*;zk&sibF8zvM!y{5Z@}x#p02eH=MH;_K2IMekpxX0NBtmf ztu$z2xRtPzEtz_soNgPTrs;ul_Mjmi$#Y^8lHv%XlHosiV@@9uSJl54m!7yJ~a;Bn6m(irGKB$7JY)H-GIO z>R;!84tp}(y2i#RWU25a3=%9W7@{h?Z1pFqP$MUK=~ES(%jzQ}CE1I&2_Re(KOtZ3 z_JwDbOj_^VNP~(j8T(rfqjGilFc>ow1`~Nl7LOG`MK-NEzGG&0y_Qk0iz_!yO-Tau zbSI9IL#$&r12Dnw**>Hk-t72TX39051n}4Isit3-kWr7bf#6f^U86u{3eA-fnBaZT zme)!YOEG=ZKAlYR9_M=y$K3Ybb6ozNXYk|fCwYzYJ#pTu!b;QvF)Hl%s8y50mXOAm zB^fjJbBl~%WBCa=qMUuF5n(_IfGckFSNes9efv5H21Agfq5jnYbUYqcBK(LU|2m&R z9b>2OR&d*y5v>>$;@or6Fz3rM>lSzZfEh><_e%OUUfJh-MtINF*JEP)1SDwzDy^FM zF>fzD;)CrlOvc`}qZD)e!rlw3tMe$!ho zBCIp<1p<+vg&%H$#fMk(+niUww-wnbLR#r5y6bo1^iFGPd}zs%FG=__>XsALwCJ>x z`(rf_#bx0FpjO&8(!Ra*wg`Ab2=lOn8$X8dEWSQ0U-VIM$%u%(M4FDFg*k1$2DkSh zQttBjN3Y*^=+nGYAfokGPz?BtWn1sIyfxnM>DP9P>utLbh$04j_wf6tgkOW2NE+H+ zdkY2xLNmPFQ@dcJ-96;||E}w{arS7R3=@My_Xb{~%%oK5H%0WqOQGswa*2 zC~RC?`g3Y`j3I}io51eliU{k@MtUO0ZVlLe1@mOY{#0c&LVz!_C($-*@^OQNk(xq< z5$Qp66ZwVIWglN8#eLU9J_2#17b6pe0)B}P=lxo9koaqi;?$k%y5?eUns=p;S+z{+^5ulYyCU=V9!O-a_2Y#enV0ni_q}nD zk)003OkO>flKW`6{GXq~xw&qZ26Ilf{og;Gt+XZCjU+D)&cXpgICXy6>^p{dYZE-W z7t4%KI@%NU?MrJ2L6~WnT;=TB^U*#IbJtxShRz$wLTjWSUvwOFyvWW3MhOm1_v8{>!a1Wc4Uc$~Dd@*T)Ad2bU)%8DbedhJX+ zwvQUBmN_Q|gRly8)CGb32Rfcdn+(!Q<)60<0g*{sWO zzC&vFwWK4S7Z{%EUjzPa&%&Ksoi{Kh=+T!NMHoxcK=c+xo z=!eX{xa7y;wUuS0yl$k+U!$FPH1C|ebgMINv9BS#4QLJ)ekImN6`Gk6(+A}nffo2aMV+= z{pHIg*>YEs+I_vxlABms$!bn z_{I!!YgMovG0hCbr26Tjjw)vO|1O$ENki{#ISu7El7slD_(6L&}-VRP@I5CD; zX{@Y#khGCW-#@@B_88CDVgbSTHg4nCGwL|o+n)a)T-oGg@-g7WXA0?tsW$CgB!5Tp zE}9$IN~#KQIpn=1cf6v~yWMCRK54nIszdbxcJqa54hk-c3BxvC4j?sU2NvMuNa!XIOcGrD+FGT-R-schq z=2k)HHx!;yz86}{-tfEEm5cZW}I%ZFsNo-D5iRc<(o z{@OeMUt^OC+rj)k^48yS1^UmN#`;Ev4OL_qnVRYtWHooh;tw)$M(Y?xXUxA~3Elc| z9By;7-m{~0IM^2U3(qz*Hfg1Bw+qa>6jG&scb|SM+eo(T5>26rqigN5PcNa$Ha-(m zRQC`?>VT>o@{}|DN1?u_fF#;-R3Z@hJw)AO%y;etL^!^QEoVs4D7H>r1l-e8V`f z3Cffm{1>G6P~H*snxBfN#sz22%b$=N>ZWZ~VkoF+{Y}W&R80G*&#-LHK{Td(3z^nZ zR`ScpvrYyzYn)D_PZBg^O1ssLr|YM*8r{OSI1P;BU$|bsqd2EMFi)S|t(~3PDPmFV z)vI?^G1V}B65iA%i)3Ud&%{_Qx%%h2mwh$=paX6Z`!tko)z@udy%HCA>Oc@Y}URWKVi;V2jC z4M8t%^Jd!88nrrxNRrAo5y{`EO%|y6+Bh8p`II`CtWO6M_M|TfDU=IJ)u7v&U-k~h z@ypng=;R9{@ZfK z&{7xow2!VojCoK_W<$*PLsTA7)g_vG{(dOimvY6$@oj1+)vbIAgjnSgnSYr?p;N=t zwUX4Y^=s7W&@t58&53Pm{xnULySHQ0=N0W0%=xT@y=qVyiv(Z}l&M+M&HLV8xO-iB zD%i--E`TlPnzjG$23v;3VHjq`7akD*TcHF^`8K(`+F2b806Dw5C>D>V=-rl7xJXjb zh?YZvRlRZHh`tu;yY65AD?RBq9%}J=Li-VJF#$Ea?kn|t(pajVpMkmfcF?MVUl}y)Q&NaWZlsqlRzuJQCa;ADOpCVK-sUeTb>+hojqjUm=bPOAKg@PqU&%VH7 z20qO%>axP$vo^;6kAJuH72bq>uNo#PLqOBS!|nP>mQjEix?*WXK=_}o4F$nV8L&^!4RLbs zf39%48+@d4n$?^}`4<0!&7HG0=EBx)bj{d)-uQo$HdxZbSLG?0cF9PF^CwpJ*ae>0 zIXsm?kE?6;9tfX*oosn^X7?qsdL{yi*B!%a_p8(e&3P0&p9IZWdB}0YMM%|Uv2#nS zM)p&U*&bI#=#srAAbxG*11*-!s|sg6gqi3hYCLQaQR+ohBgT-5PdzR+pVcXaMdjzG z0t9zs?R++bM7iS13L{RyWu{SF)aaBLJnz7{D7g3&btET2I!af=r+)@eo7$pU%lJ=)z2%MC#aEPcxG>7wmjCnrek}R1qC21^hD!t%Z;dFVE!fsd zvbXw9Vz*jTKEdNereM6;o2SD^==6oC6OVYFP@dtKwqm23|Cb?Hyz@ZvXgEbza?RN2 z1Hc&f+kNbGMTeA^d2?$%>f}qI@P`bqT%IU3Tpyi!Wi8dZNyqgRsskiki`65$lD>T- zQWYGO^$ag#05Cdmx0;u{1puMu^ua7gY^-3^9%F~>Pr;Yp(Nm*E0Azi2mCl*O%Wu;= z@Ow?lk3WjrJU3nFY$I{eDJfx`c9r%z;7JX3S;90=W9^%2@4ZqPN^vE)TC4eM*&DWInx#|xtM`dBEEKIxf7?9O*N-5J$B}IDm9v}&2W0$!WcV|8fMoIl}Rlgk=%&gzTum)C~!UR{w4m9^tx}F zpge6=R9(VY;wBWsNhqyCGHPY)hyl3@+DC5!q>3VN;o}lWfwTLjHTY0yK)-f}@h-n@SJJ)^cG{ajC8TNSV$eaNMEVe*iu8uWj=QF7M!O}y zO#J8h)j}nGX*4e!5L8Q-iX1?Xwk@(J5=<8z=r`a#vU!BG=TP!cUbwzL$Sy2NS7b*o z9}=}2iu@2jA=MijwHcZ6R;2i_&4tl{bhnIHH`kGvz6@McDOY13F7i%1p*GitlpL2X z2{|B_q4;R*7i^~J_h4nTJ@mNm5pk_m&C-c9&{*ITwVTI z_qa7=rkE7%ae8yhb*Sn=qT3*#nZQ+a8U|(B7Hl{flx&wARYARIzvdSg6ZU=Rn~}aa z+~?gK^^W}0d>Z!huZ(^Fgv4@1P0iYAs_GmTQv>NF&uX)!e@Tiz{)pl{h8ye|JbC7) z=4s=}&*NWaPcS(Yltg@-3>JjU9tWJ{jo}LLi%SQC6dQ}%q%&Fk`?-B3+hHo1f@^6$dNDd`U&r*e`DO{ z%Y}jVf9?X9SeIFgt;IW`O*fwoVXp0_o1#U|CGm!kM9LSh8P-vFs7Ws++dawNIvSUv zjDHV{ytWUxs>Mbr1$x@E>!7r9bvY%xgCBmR(v*>3VQ9<;sS%R}iZbG5Yo&C&_cS diff --git a/experiment/images/code8a.png b/experiment/images/code8a.png index d33c82b20fd8a0dd02fa280aaf25b2f6658fb429..fc32f23698e560d9d0710eb59c9239fc6d935ace 100644 GIT binary patch literal 4325 zcmbVQd0bLy_rFT1qq$Y4xnyQDmZj!oX=I|1VPk5hSgE;W@3`gym`f^Frez6jqouhp zrX=RlxP>9uq>`D661kw68(^l0h`8c=Yvwb*cjkTn`u)M>xtH(roaf=3@A;l{Z=Q5U zDl2L$0sx?V+~Mdc0FcQA#|#BI@cMfLJ`Mbm!JI$|S2iWdUQ2`1b5fQvj*jmEU z!YCo%hZ-xKYu5A~YYikxx9RIkaBHiQp?sSqe&K3<*6d)+&{W;UI?j6=qw7|OdiBuKvRye4A=s^X_7r!CgXX(e>&3*xEMN3N zh=QfAwfb7EAY>@EM|vrNOi_E0Lh*Z)Q)}OO2z`kAM#1(lA{CDh!=@Cvx!A1Eaockw za0B`4h@Z^NatIGBDoBgf=d3e$wd5IwIOIfJ|EVF541;ZKiePzpxm9{0#QI}iT3Xt* zsr2hGK|q5=gtfMCf*!I+?WBe!xfIWjcGE_JS!~oM1_imkKb9Zp_j|?_DU01&H$EkLSe<8G(L)ka zFH5HVU>+ogo-cbMM&C;zk$Nf4in-**I6VsUSll`D&1hQ(({#tgz_{E)SniTnwvUF8 zny5jrjPNRsZnC|FhOuqVysRJ}1bXcG&vr$IDhB(U-uuPP-eVGt!z7+YM~*Q|OsSU> z9YE!I7IElt5 ztuSp!jQ^diviVp2wUi{lo8gp(Pp_)jKelL6i(;8nz*6BV3athnWiLajs2#dc%&LhK zIQe;5_VoCHkJO8O?)>9EF*T~r!H~#vmYblaDMCwMr(2p&N_S{*EPQE7?^qaO#`T8J zUZVDM5A#E+bafA5JE9CBm18}FVdwPGgo135FT%(BtbxH2a-`9;xAh!D9 zKVX}hJ9_jJ9B2BO>g_od{tp!&M+~isdwhouXGi*f2sNhuN^Z}DBUvLREcV^z_p#tu zH!KP^Rv?tl?2)rgGNXD=BVjzR{L*1Sx}0qe6f_VKMzD1ofyi^OQ&k9XnPlk(9q2}Vi7N1d1~RLcvx}YkD{xDJqO2rA`t3uU!21?kGL8rIga#)FuQm8w za`bf}KIgG031_x0z~F&~9|krPw|DdIak&&Z4R84j#7@oepf=+EXyxZU61kuZX5Wni zs%B+LuW7Z$drNDBZV^YLrZ2r*twjkC1c543o5(7Ojc=zPSw`g+KZ5G8)Z1t45uY15IFGubhhNqb8{fS)bNN$OqX0}dN^m}G=7(Lr`A}^*mlgibh zA)P(@Mrv;7RZKin)+;k244MhDidHKxgzI-^D8E?$2Po_0V2MYKeb$EDE!=tGfW@aR zYS3KhL9BbDC`KN&zC7fmg_x%ndE;G%|9hseHkOm@b(D|&+{-LU$Dmd~>!RLF=jOhr z#42oxJh-jE?Z&mJ=bY>Sc%b94I9#%u8Whsy%2d#|(KW{&i;GBhQ-@x2jiPZ&iZEK{ z*pY)Wb+`YSdvjUQ$qT`8K<|%mQov#r6sU|&ab_&+Gf3`IgX$S#f!nFf2`wVT&jNg$ znO7$Vcp>=Mu+OjV0+lH6Sg~P>$?ED*y_fTbOERAZ6msz>-*+JB7$1B4WzXMcgE_v? z01IV6U^2H;{<#mU{?Spxd_CEjy(udA-w_TnkFPRcxq?$j+p*yf!x>47v*Xgm@Ol%D zsurq}A4o6m7h}W;FM7GiMQXe_gnql-_mTFx&=Ay+3;seuqOvb#EAY4Q;9{%il>N6$QwY`FqlN{4dWbsF^7 zH-B#XjOpCslGDGO`22oQ_zK|sfl4y7)Cqa``NPiZHv~bVuDgWHVs4B+icV=KN4sAH zmXIK(1YR*8d&H=t5GKY@m-lv51lMcSNAn}wEGm^#R8k9AiN3hi=x{maR=7N3MjjJa*2Z0+qsCQjWg9<$zWaxl zSKjj|71}_u$yaAx+xyj7eZb&Brx`#?hR8CeSqHcJm-_eZ+jbY?7pjn}3>pqoCRX{Us3ezx#&}*NasSjM z`TV|{#8F4h z5&Yr9W9eJc`<*^7qZWel5}rVS9`JuM_NAA&69a^Eec1pcc?)=!Llz_IKhX^Qrn8+B z;5AuoER7IFOCabvbK(rG{gCgqn@Ffird7m-2SpPAQ}(aC`ai22XWoiJPKoLj*~Uze zVxqv%1#9JGS8#aCMFU7y|8Lr1P0~mRh}L&R)^kdQDd?CTSZGn@u-6fpujG6PPm5St zw{IipkNPX0rl;|tP$1Rr|3SY1QK!np&*_8Vb#z)Z4u_jLg78Z6J}H**oAOGunbfts z<33qG#-r0#X4_UTKan5>_iLvF^tF$YlG>r9WfQaRBU2<7o5isSUOvtyXid5-kgQEh z!HVtLd=1rS%1lrNlP-+XC;GFNB*Fo)BpqaUxmd0Hk4lRdzwRD=-AVsk$cagq#3n~6 zlM?LpWNLAa<)R87(NcLFL0_GxpLD%Z(mwg#`g6d8#Gk=bfzDudxh5wC^Uhkmb z;d3?H9p-r;24bFM_Bcae2Oh6&iJT z?ybQC#x}^i(OezE2hFTbq$=C0fr_Z|JSd>+7KFBBQeYRWmP+8r58I}meW%xcUlQTn zLEKb_ST;z#)3UnA%hwMJTq*Nizc@TR><42Qt``f3)AYC9Hq;E$5UScN6nOhA?{OCW zc4z}SIetkMwh|dxzqkBy#sGmc(&en-0jA-BeVU4z5p~VKa?fjDGji^<-(NQYdz$WO z`s8!ZB=+uO-e#&T3MLwP2yNsP?F|=)<$Ud8`fwnJO4w;Rd0>3v>Tkw zR(ZbGKR9)QODN*0;blhQjPBkKQKje}ZW6WsH2A=NCb*(BW~OMGp_Ik0z`79xh3bWpg8M3fwl78L!Kf-EEeG*zS@ak~7lyNHH_vLQVA7 z#NX_=wjgpno_QR|cBrO+oVD`APb24?D&U{GiK8cP(x1g1&XPqc=xs36w9q7aHx_yy6+w@# zU2)$1q%WI!NId5`&ACYX;eHl@^H6f!{UUDjayd6w$E&8|w~*X8&**p)G|tgJVmG#$ z;C!UvAgZ@?{2cQ@;_fr(J4Y!3>xeuXc4k}xdw0z)N!`~&l%{9(&*q-R82q~SMQ9mT z6S`QkIEZ9NgjXFPZerYdy+7hULyN?t4RV<`iN(P}(7p?r-#k8Qb2IVs;nBN{fnIXr zFR0}q>z0H$p*Lmb@?#$Lt{=IwR1mBFk(Chdgl$r*vrO}$-4L9wSPU4-KHWC1^IdU^ zhj6Z_@vLGSnAyU6-Gyk^3=+hepj6l&(1jN*-RGMijD~*HgV^fg*>hw;FIPHpPzvS+ zdAm&BO{7g!{=|Xk><$<&IY)ur(x+F#;=1N)dX?yFsaSjo;B4i}4 znZKE}?xg(76UN{?6wQ^??jjh{W-opcDwqpK!3`wipT2oK`kLriEv?a4X z(-8DUt`4Ydi%;K-8P9kI`;I$g94aKnR9h0EiCCmAq{x$ zdQKA!EVr$u>_DY|s^G)}*k$yD(p!MJ5tK~R1=+9C`JAFUFVnc?e`vCG#RA~)txCi2 zl6Dya-kXS3GS)^)e<(R}3Gz+JM~}&VtFivB#CUZma15;4-m0#Ql^*~M|F7*%Ro0^s z&A0H8>J5myEPh~f9=4e*ff_vrKw7Vi&G&Z5$) z@bK_U8;a}ihaX)eG+k62%w61#oXh|Vdj~r+MrRWzGc$WUUgr!4AW6qy`z-4)a_KSC(J?#+3 zr3~}LOAGQin>$4ffUF!KMBz!jSoGat&_yjNdSWEtN%4*P$w26lET$Nup^_iK@TB78 z$XX!uT#R4_QTPdXF;P5BnRm#L`(ky4?`=$o@iEIEv7R`MBh~|Kd5G8XlJ#SBxkx?pI_E4ZgI|UB zh}{u1<4>$}y&*Z28CBmCmt4kP4G{%v7uvz0o`6AK>)W)+LnIPrwMUUuLz!d@Whr0^ zk0Jmi597SSd&i@?)79}zW@8U$X@ftl?OJtv^_s48I}o-@l&Cb~`LV#3Rzj>=@58Bo zGFym>_boG`L>`gwoT#8yVXMa-ak@E5WC0qTvdV4SwMe=8TQ?>_SK&=fK_8a|E%IUv z!=B@$1FE=$hpe0Qba3J*5u9B)r)&1+Ek@C?g zxqGI(oVoK^+=voOdVBzwzrFnlmt@8z(~p-_TrsmfrSrIM{j{_BVxaGn?D*yz<6dJq z1yhhiFiBezwa2uERqGW_(bQd4#KL33L-OP<9a$fOhna(Mwj(wxci+1i^N|VwHvA4Y z06_Jk?#917$I$kE<6)NC$!+fd0x%!uyQvIG~mgYY1(wDVun(Aj=S*Nz6u<`?IvSWL0+c5_qv_cpLqMj|bFKW&U#Y;lw zR=oH*$ka=e{^{Hn_}u#_|WpF25J3d`+jbv*3W!S%52HVD6oP8x~;8B z_H=ZCfX6Z$IMh1+m1IhD7=}%0f6Nsh-k0GZgp}``A>xT=@GEw9k~TwAShxAOLRPi$ z4Nl@}qW&Al)8U!zeqKLNG_MQ29%6hM7Jp^f7~y5!6aQ&QLdD$&02*JRy%UO_(YfBw z7ki4Rg7vo-KO>S!hlhrWp{mw{{69}sufN&7H7oR1>s?GNkC74Ct!hjmmQ3$Q++-mH zflDVoju1+?*oT)a;3f7#4s}-g@olBBF@VxqK_o9n!GnC*I#pJF_fiRD&7!kX2W=B; z%QqcMT8Z61od251whtXzmK`lM<3XIydIfv)zj6G%{>E;@v2`uc`|w5s z@t5N@6^&3;s`8Cf7OEyg8qE{01 z-`21W19Q?9Mjof~$QBRDd9Q|s3cayP7!rmc|I7`yhUcZ2M_6{*EJcgT$J&$5zB@HQ z9b#&>-Gc7nsBT&(;n!I{CxOMo-0Sler$Efe0_moIz=4i|_n5bl5cNo=RRK0$zkz0_ z&U2K?a#a7kmwxB%efd#PE@KMk3T<&bULu_szxhQ9rSgy5co;b`bumj*{P7@W0f{;& z;45$Vq{<7GZ3x}M!Db&Yu9}?yu{1FY4KS>xu1idtXZ}{JJ=8f$ppFk$z^--EH^{xl z1`r;J!n3cjZ@T-IMn%>o^+(EDrxsBYw0)Yjjks1r944g>eBb9IK_3msb|B|_6{riH zZn$Y2Vnopx<7}{8Owa<8H7(?O+5(Qc+@tD#1_=e8(C5GN9|zS2J#*~taB325W`vTC zAg%`kVR6#zY@mQ_<|c2N+%T|BH00FdYRCRTWx9s8EkiZ zGF9%W=e9C3XS7|bVGdtiFj3pPAL?ZeR*a^;M~<(v&F(n16)G&@$ax`tV88_eGRO%I zPv=}1vrX%a7ldUU*EPj#ltCxzJ+EC_k!1RZc-3%1@IDG>_gQ?w)#(qSef?ISwL65Hh$AS#q5SDm z;%lwW<;`Jfix}OhAfckU05J5aP$oRRP4)MWIo)0bijJ+&mo#z9#*fo6 zcGM7>$D=i0kdBm&Uo*cJS;DkTpz58-%$gSAd~Z!^MW~ULmle?DZgjbU;?`aiEzPay z!_GtK`P*7b+&R2Rq>WE}AhPzg)NH<{>tR6Mu=i&H8=IMG2?G@zOOeC{gmM>|k3PUjgps$T|Q(vUv;o{35imXMp(Ssq@aW zo&gJqZ#C7m20DsLuc(JNQqp42oNHlpc+viPdjMBYY1pv(ef_ZjP4T`rc>p-HzRU+X zWFMI#0TC13*$8gnL;eNBQz8IJ#za;LG#Z2iSj^bv5dOv|#q>Rm7&}9DT5o`O_{%vI zp@48*v$m=GH$+1$0Jr7=$ydwW`N*sJsv)htpgPjAeiNf}U7JyJ)GP-1b00QvJx8SL zu>JV_z0ZVQ?xY;|`CIB4$1FJ}P|L+sGVDXmlq{8uS=ibepIAZ2Rhai{SxG0*2(dFD z>dhTbTz$v}o@lKqiu=^aw6# zS4yX^blw6=$DD6x7q>fBk@dK)O0kiUWW4ttM^>ck$}@(pVHT9Lri0!mARYN?@NvWo8*MGAWO z_3AIHUa|GVMv62*B0%xVBs)g3K2ZmExiBTPY&lR^JE_vZlmrC`Hyv+t6`obxJo}J~ zRZe~xOE5LRasJFC;99gjrqVq{sBNt#^!73fGr4s~u-7L0`fOr<6{KhOQ%FuXOV9*6 zX3z#4?_YY*f3#Z$#yY0;Blcw8?9N-O_Z1Qx0IM7=V3z;_047t*cMN2#^lR5)MSj3tT#R_v;gw4Rx^)!Fn(5=Ml)?n55+} z3HTi$fZt3+vh=Q~eDTf-J`ixBA`YL9nS}q5sj~l9CHj8~SJUAbN`4`^*nB%jf1~jh zR{bsnTB}Xjg*e$gac@XMW6Lh zEZnrOG*fZeDncBF$O7H;9!F%ZkBP_!F)6d4Ee!0MiM6F5q>;FH)0?#wPO$aFXkJBi;N}o2d^-rC{(#EqVLV>|?_>5Ex__sf& z;wX3hQ{$>YNI-T!DjMG;j~DF}C!OaT9p1a5^;3XF(boH-`Krz9yHcH2rJQPRQO7f@6yJr-1$kRBIHro@dGx>Q4<0vJcdz1J4fK&|&N7 zACewNRnU&;u*j1rwGgl-1FhZczR=_XfQxAdu{d1x0_w<4++J!mFD7?jfR>bTH(LMj zo;}|Of_4VQbeEPp85}A|4zx4{aIS&mrJwhztu({?)-)ALPZ?am zfaJKX#i9J6R56i4Iv^2G$cRGPZMaWLIe)g(9F^4w5)IpUA)=IhXEUDcBZBa1e@B7V z@v&Uz$tsu3XVoF^PMRuL98*{EfQY!c%a@!-)-HmnxBP`47BRPk zslUL2MI=X7CNHP?CAr#IoBO5+%r3Y$0gmT5qYY}iYctm!Orm0$tjsAho&5LQ#uG==2D6u7})=gURu@+=-0i;!DzN9*-Gb~{?1E65P)Z62L%Bgx!>px+v z(gk9>sZ^qshMK|0>m=_>pLLc5Eiqcye^zuX7jfxv`)#Eyzkgq4rp>;rKuc_X2|fHc zxylwGS>4sNRzrc6OMUUWZa$+u%)X!I#LChW#_`2!t-BM{68kvqoI4=@)APCIX2PZi z7w?bx&5Xp4@pBdiv3iMe2=6G$PWlyc30x|_Wt9$!;#l9Bf)K%l_QH0`0(Uy2*FR0W zB(snJt8*~Dss&oc(op8y(Z5#dGR_waOTtjjovl{)A*RN<*KT5>Hl=+jNdLI(YThIu zSRfC?5Kr=6^|Fva=T8!Ns?N?ce+vHx2?Qdn2WXDgNeh3LCsTro&_6c0VxLz%?tOW9 zC|RsANTspoT4hf5Ie+_tp}R;m0paB80EEO(pQYgP)vu;6b}lm(&`P%juFtQ(6j9Xy za*%)+E{gYGc&%=C=iA#;=c(eby%z{!F9tRWdBG}_S?pi^qHS%|A`|6ZC0q11iGR*y zBEk^)k_Ur!Wd`mpz9p?De5`sn>n*6vTD(cJF*YX&pgU4DGQe^1gt>9VcXFq^>fURPaisME%jQ&ECYh~09M|Ig)Opk zy(X{8qY8w>q)3uycZC8W(`^F3k6-8Rvx)wWr0y9ipns^dOeV-AMH0p>pw!)|h{At` z`t#FKS48|=xAzW#nf1T%)M_QhxGUD?L{b|)|Nycp4(e(4Cp*--*I9j{X` zz{afva|x5r+EmT43B}ehzDU>acY5%jW%EHspL5`g(vD{UU@ z&HP&4NZ6@*zOX4AWa|D)<^D+_zFa=%`0rmmHF<`mb0}xclpXvvX=huh>Ve&5lOXDd zr%x!qlGm@@Nz>a)3|JgE#sZ}UeUcMYbmj#biCMjE4wHrmrdF5YjPj+sF+|0BVluW$ zrE_NId4el#G(umQADeOKkx^iP&Q#WyDc8?)@qb#7h^nbuUN00KB&PLNlcXSjE9WuK z`cq*KR!CZKymwQNuZR-^*wJMI=Af~0+)vnNDz!BTB?!Q8H-MdaV}5&ObDDSe=QvDO zhY)M!eSKLpW2~3J&&}6{c;h{Upg1dxYA>h#^g_{rJP}VubkUx<7!<9NuxZVo=6W6J z>7@{W<)O#CY4DiG?MPfaj5cESfx=F-P>au@jYX_`2M$0Z03#fjc_^gMSIbpQRP$*h z-#>PHc|wR58t4>{)ri%YLmj7TTOF?*pNxe8`~Cn!#mQyb6eOvYEC0@03oLdtJ)~P!1+eD0BiW_;?Je!e0PhUsewT%o<#Zy3{rH0i$28{=g#Mqp;#uM z@^%|NEygUWGjIijP#kU%%NW2=dfUa1R7VfiE3XHsJ#xF=H#uO8%+(?FuH?t|{s ztlb*-pZwPTDbz%rTIQk_A$5Zo#+!xhdXqPf5;Yz7w&x+fa(RGlqWsgH7BS(s@!uR~ zJRR7Ug*87{vTL(=rxF=tFr``lb=HL^Qz`5y16#M>yq_ub%TE2xK;vK7mYb1+DUElL z=ThkxFy%BstNc9`Er#62Iwe;MFD@-(SwBfZl2rdC>fGNA$^RFV@qd+e{WL6Pnr#8u7_h@Hr4{r!>0ESZcT?tC5a) zqaR0t>#2&LudBiQ65c|J)%AK98%)VYRw#Bi;MC!K0%M6jTGzDo(N%wD+FLc_!g(;D7@DRY(F7IBac=gDPeWL zrj6&rDt}5@sY>{aaaNpUll9h6&+X_ICcmoNO?#yl66=br3{qFa+YUrg_?wa6q&m(m z;NIT8wI54oscxu(?ApE5C8p(os?F+ww=$np)&P~SV2II(xzeL$hepyWo z4KSoUuPzy+9a5=VWL2Ky9fB^(%x3NW{qgX-9n&}O zyFwVjqF`Dn1F`kw#U%cL9FmO8b-^43)0`yk}hPT|5EBT zPdHdm-<)snwx$;*&3oB=(;5yg`KW(Oj!TMyKnoXE}ve@N+Iy6PlN(p9p zxZ>8b+&&By9_ahX{X{Bi+4*x(uQTiHM4et{IOfaI(|~4BGZDkX^XX!>?FsTduVD)K z_bj;8n;K0fx1+r%rRNR|WOIb`2LF(~6F@<>;bT|#*CDf^qbQb=;8baCBYa}UBL#Vx zOvg|T!;{P~!g3&|VK5EM9m&pg1ZCt!QSGvjFc~IfsV8htzI3wZy=snyot<%SP zyT$uHi~H`jN^zm;C6RI}2zZk*q9}BH zrQk#H@aW#Kx4x)k9KX&i6gzq4-h+-+I=@{DI7S$llA!NM(Xf!Ut7{E8`}i{no>gQn zE3Hu9cNr|FXsn%Y6O)txAUxgXX})I8=h=N zr?6KyJ*4wfb(>y=-e&qUyMQhav?QabWx!8N@Vh|88x0#f(~=LxQoMEDn;p;nl~2@W z-sBX$-_0}dN&+{m1sWe>p9NUqNv|clFa9%B@ncY_%GDu!U$lOElIJ4j!$!QcJ^UD& z3WXKHauz=KgurIi{d&wxojn@PX?JD^r$nt#zui7EaSr*V65kP0S2}#{9oy@?cZ+4 zi+TL5%4orY)a~5f=1e>p`J?a+lmB z-1%X|?kHA?L)9ACz@%K{Fc8xo}e`b@h*xibL zNvV;?<+JCjaKdk}2wb+hpjN(3!gI`IcEzX9AsRZFt{g#S+4`Eojg?`#3fuMq>c+>u z9|gQt{G+_RpK08@({yuqFDg@?4fvA!olvP?c7;_z4W>z^+@r9ZU~Mp!PtrtXwZ|#8 zg`50qQ(55BBwbUP%)>Q7Zq64Mx}yAzx|x%L8(pKqsY_1L8hWdPYcnlocy{Aixe&b} z+rGQ&Ov(s0g`$sJ5doFa}b|5;eP~~PukZ7yJ;!>kV zc#v{)1927iFtUqjaj5;{$tqwBFGX*OZi%^tLZeG zLpx4P&%$9Da#IXcVDBYl)A& z!6jB;{jOzZMP*MeOlGr9wT7x9(czIEm&fo(<96joV>3T;Ach*z-*+imV5U}oVYVr~ z^%r>w<|C3tkvjjAtRJxw+VX|GI76&CL#>rP65|s5QYlD!bd#6Q)U1RU&u=j~o}`)9 zWOcx{!4#&gbFa3}_I>UBHfWdh1pxHSjJMgo8;ol_2z=6qGw5pc@2f;aTyjIem9m4c zf&)HW-6qc0DHMdoc2m;#M60z(`CxK(w2Zd)o^gk{i?`#|@>CCUnzoI9M*wV%{v__C zciVLhL6TnGo8IFf)m`4S|D!@rhGncV5vT*mD8^__5IB56m;gV?Chn zvELrj1MITOoczGdft`(IM7s;y`dC;1fZX*@7Qn=NG(~ciE`fjL=gF2HS7_~sw1uhA zXSdhhIx5Zb{KJD3Mc2!2<(>JIntQQpd`W{~+kR#F{J+K=M_x)!_A0(pTV6r+I6&vW z8YuaL0Z2xe6M1(!|7Wee4I7Jzhfn|Np56&pfq!+!!TWn9eGF3U2Mu%1gBAez z)G0KVbeD&V5R3V91gXaigik3xu@usb(vSgB$~MxFNrKOB~CH$Me7yiW7n2DzaJMl zovE{Kl&*XnxHK+Jn`kWs0E{1(UYRb-@`rP^Bb#4ui~qbJ2>pte0}Ppc`j*N_*e{&S zerS`o#Nj5zP*t2XbpHV%@PA!CBHd4Rx{!|j32oUP>o2>te$2nGBz4QTP*tz3KIW9X z&M{931;l8_O~(S;TTxKulmn+cf?wjMm7~4WFY{#5eTu<3S}Fc)D!FO9Cta}Xh#=yLT#j#y0SYNk&Xn_f@`jKBlIc}O4_TAphtlAS`u#oa z?uBA&6%B9DE=knV>3E!;6XXC{dNYOEn7mG0qc$jf_f;z!j-f*sC7w~ZcxF`{n=0`J!nAO?pY&ofR`@13G7m@^=6 zoI(NuUm1I0#_A*y`Yu4drj=(30yoLS=}6Fh0U9M%zgn&X@^9v&(XQp0M(0v zBOkhH8<@U|1MQGjR>vDMz@?VBRAmrb??`osxU==!Ewm~W@L=Psfg48wh_E04n8~dv z9Y{zQu7oD20H^>*>5nNy%y@P2>9s1hxvOpB!Jqe0m#z>~kBkg0aH0IJq6|T?c13g6 z`NtNN@hl@pN%_)k_wqVDQ$gshd@b)d{opso_n4<5pbFI&E(TmL)NQpfx(4T#YG_g#1ILMep~P5hAu@^jQf%S0v`~T z;+%GGN6kkKkWO}0UC=@&qPuoGwaf>H?K&Ak?!&)A6HSM=bX?(wOIYx|S{!W~R+N;S zdPz$+-M6;BJ+d`@LanXkXs^mna@R9xEWIrh_e2K(Q!}US#OadPAvmDh?brbFqzPxn zpw(le{NKD$NQbRBZbez3V;7wrB!&ynj9g{4x`o?14F0l}^W(M*viz;_>VcMgnsO(* zm*wj>?d@a32W=mwhj`$>kglCihHy52Z8?;w?mc?cCM9*N;?tOag-ce~9U2nAAopr| zMN0*t9yp&-p+#JTeGouFK#c0t4cVy@qHM8#>?S~{Z)`t}XO!81Dh?B2s_m#rnDsh3 z72*B#NW7meEiiMnvlK=*!NppTk%6BI7v8RM`X^((Y9+dqsrAlE3Z2nf_KRV$W{){uC-@!T05UB#Ro{2Mo2%kRGgH8{FQ z(U%o&;rUTitt}IEhW1GfodBQt`7iT|=~gg?oUUs7{86d3wO|O~a+Xr*mrCcOu)9uR zRYn^f8QY(TrCb;wQd9MQo}R_{J64F{6&|#d6#Po^;VYfo>tzJyG4-W^6hSfzC#fbC zbOZ#zK=s2g1$`_dIEC-Zt~k{InVXqt*xI#Kmw}xMaA|kRU`E3-Y-X8`kY!morGMG$ zM)}72u>C7*j6B))HEw-JCBb+ivR(PN(oFW2LP|GzfTLzDQ)dvx2#?A8t_~hblHn1= zu-W5v3}saTDJgYze;bDcOpRu7W`@^-VC0OjKCM32#ZG)z35#;b8b!n+d^>p+0s<=3 z)sav~6)HE*!Q4lQ^VNgfQm2QS=5qBP5-yeo1}Hi@rXZGXmu_=10g zHmkJrg<-UJ@0~yWqv65JxxPFrFV&BMw#8#q4TMicO67~qM>__qR(6mvVfH(XV~_ix zKO_rihaL)q*)z;)8!$Fnc)Y#uM$%NU#-5-8t~E`+q+-Gcwo=B;mn)8>b0-$ljVxz* zsJ$mPS~A}8=uSu%+?Xwi3!T+_l!=h_jW2h2-Bt3;r_34ks6XW0PSGn@!B= z37s(wsQ%LSkbUM1a9Iak|a%X$(2PMN`+xwDJ!j`?{2k z?d*}C>ayE5GI5S|ix}WAFz*;;goKS&p@qWDo9AA|QKX@>O$* zQAr0aqAcKj!1waH##s$;qBZyP-_GVapK6kdO(jw;TF#_=+L(6NgZpBoE^!vB`Q~-V z>+|8hiIgVj^I%SSx)W--&@dToHKVmFEdBi+T++?nf|{iUuw=ZqC8%fZOB{6apJ2ur zq7cII;(=^hItFU>(Mt}zJ%V?D(;a&xun2k~u2_4KniG4JDw?8Ka9NA&b4fkw^49d) zYKqwzP9F>zyv_=~zAodACG+|ySES~B$E@+Ed{tn2b#^(RGFsdUjd_WbC`t$spUxKa zjn*ipmUOp!yg5~T7+H3OUAEOs)~S~r4XM81&%7zfXHt=V`v%{B1!n(da$t-I@B7){ zOuW9ke5Qm4tS?K=?Xa}myv7ubf`GwM+dB$veRGWr89>scuWe0D(Z5*U!m?0+98hc$ z<1vB|!);>#(=cw(xw}q}(lQPduSoIHd*Zj)jAAalsvTBPko32-nnRp zZ%Z@{?dc31tr{X7T{M*G?;+E8Y<@HNcW!Le2I^qr<3Et(LxW;slvToe4iw%S1+RVh zrvZg1d>fS{%0lYWFGeQ8S0Y^#+;DW!N{p#Rx7G9O4z!#xO5 z%RlU=;^Fa-T+Ca)h$3a1r}wVY-_Nc5fz$Nis%^zug7jnD-rkJ_d=AFoJM#j4gvf7( z!NMiI{@a-~^H1vZ=Te;6W;qx>hbyA`(exi@mcyO5vOs;+IG+qdbpM83roS1whzhQW zRoXR(`_+_mRU-i1%lU&%zy}bz7x_jI^Z!p$_1`A)#83#sJ0|g}f9Lqz&TsXU3LL5k z@0N5F#7kKs0(ATlF21*;$j)pGlmz#OcYFHASa=17mqhy4wU=20js>!Fl?~{9y5VmJ z{`m#^tfmMxUB$4X@R4#*Xj~4MB7G-T=ZNg&$z!OI=$H>u^%=wQo5OnWq|@==-$!Wn3fb3EBse^d|W_?fdwh@f~W2b?Tf8e#h*T{dC{Cz{y;M1& diff --git a/experiment/images/code8b.png b/experiment/images/code8b.png index f2cbdecf3544eb381713b665556194273fe3ef87..e80c9992628ffd3b70a027bc94e8af4e5007b008 100644 GIT binary patch literal 5571 zcmbW5d0bL?_s0=jGq+4FMa^uRT(dGXmr--f(b3Y$ObX4+oj}PnP?RROEN!yV3UykH z%G?EVLGNT~Wod>>f+FTZE@-5HyU)eu`OW<1dFJ=W?~nVseAj!q-*eudb58mp4;Q61 z+G`*Xh?48U16~k_6dAnCO1UkaL^f;TCgmy08$q!m62Hl#xwesX|7%Ci&~Ps)I8 z1?<6NI0!_!QF2K&V;%)TAR4}|2ONHmL-G4Oufbh3luw0&x&hCHjv3dI{!%xB0GD} z5(1dW!yzfE2*_FkEM$Wt7h--9kP46|!2ngLT#|vbGQ`PP7qK$emZ;aT__d|ktbX>B zK-{pBkQX0Q&hRX-vt3%!Uzu$lEF}tyDE64)w#4OWX1T46jSX>0*q!B{AnY8>vR_67 zvFX?BD=`gAqGJU3IH%y`Tdipr?wB?9-sd2-dMYmYs}GG9I|PiT55`T8ykqW~Qk#Cc zSOm9!8aN81_n#Fn`z-n)rLc;~yA^x+X?B$6uh;a{%$u%})NOBn?s+l%ux@CkFSdVa zi)#46pzmL9&ndQjkh_mETv#LeaDpbhM6Bg}q*(Jm(7ZAFEY9&W3rh>)5V}??-&3zG zRYgBv_b75^+$z)aEnDRH^_o9s4&NHxGr!v^R?jTYhyl-SyGF{c*pck_3XeVpeC@Zg zRXnXZ&zY$yp&bg2I+GD-%+#E7W0!;*l#tZNOV};?i_WEvox}42rmDxNQes2wx%G5g=cE%>J^aV>N_8oP(a{n6fjIkdApJR6tTDFu7(M=zXUr0MQwLUl zFMuDPq!#|qYwEd$vhhsZ+{b==WM?&?7}LkVeYtJPB@!)3+0JE4SN1)m?kgb3JV9s7 zjWJPH49yXTW~%)nHBu4Dy(luth4glR zAWeVJij~6dZ;{KSbU;Qn{o$rBK9JPcaum!{hhcI_R{!b5w|<^N7YZJnu!*AYg`RtB z&&Jx7o0WT(PYJ@rZK0}PrVX&lfo-vu?uEJtIJbFvn|JIEvWRCjcMP`2WED5gOSd{q zoTs;4POjCuPDOY9CSBsjb$`NmaMK_4&U1>Y$TR(Ym=bGM6wWIu@Wn_!Z)|Mze26Zl zYhCYY2@}UOm3>poUUQctcSk}9-J88l=D|MZ67sfUw|g@dq6&(%?8t$U|p4vJko zT#r6MtZgProl+nt!-ciRYWM1A6~@&OidNwRcHxJhW`#ZAEYi7 zjWQ{Q|qJiVm z%G=u`;ub`FZ%+eL@8N~Gz|g$Z)Kunh5nQSEbRAJBxoI^7dC1%veK)JYMLsAh>wVhQP$vq1U_ycH>#rl* z(`9\n`; - stackHTML = newHTML + stackHTML; + languages.forEach((language1) => { + document.getElementById(`basecase-${language1}`).value = + basecaseSelect.value; + }); + }); - resultContent = `n: ${n} | subsol1: undefined | subsol2: undefined | sol: undefined`; - resultElement.textContent = resultContent; + let basecaseReturnSelect = document.getElementById( + `basecase-return-${language}`, + ); + basecaseReturnSelect.addEventListener("change", function () { + basecaseReturn = parseInt(basecaseReturnSelect.value); + reset(); - if (stackDepth > maxStackDepth) { - resultElement.style.color = 'red'; - resultElement.textContent = 'Stack Overflow'; + languages.forEach((language1) => { + document.getElementById(`basecase-return-${language1}`).value = + basecaseReturnSelect.value; + }); + }); - stackElement.style.color = 'red'; - stackElement.innerHTML = stackHTML; + let recursecase1Select = document.getElementById(`recursecase1-${language}`); + recursecase1Select.addEventListener("change", function () { + recursecase1 = recursecase1Select.value; + reset(); - return 'Stack Overflow'; - } - resultElement.style.color = 'black'; + languages.forEach((language1) => { + document.getElementById(`recursecase1-${language1}`).value = + recursecase1Select.value; + }); + }); - if (!step(executedsteps, stepstoexecute)) { - return stackHTML; - } + let recursecase2Select = document.getElementById(`recursecase2-${language}`); + recursecase2Select.addEventListener("change", function () { + recursecase1 = recursecase2Select.value; + reset(); - if (eval(`"use strict";n ${basecaseOperator} ${basecase}`)) { - stackHTML = stackHTML.replace(newHTML, ''); - return eval(basecaseReturn); - } else { - const subsol1 = step_fibonacci(eval(`"use strict";${recursecase1}`), stackDepth + 1); + languages.forEach((language1) => { + document.getElementById(`recursecase2-${language1}`).value = + recursecase2Select.value; + }); + }); - if (subsol1 === 'Stack Overflow') - return 'Stack Overflow'; - if (subsol1.toString().startsWith('<')) - return subsol1; + let operatorSelect = document.getElementById(`operator-${language}`); + operatorSelect.addEventListener("change", function () { + operator = operatorSelect.value; + reset(); - resultContent = `n: ${n} | subsol1: ${subsol1} | subsol2: undefined | sol: undefined`; - resultElement.textContent = resultContent; + languages.forEach((language1) => { + document.getElementById(`operator-${language1}`).value = + operatorSelect.value; + }); + }); - if (!step(executedsteps, stepstoexecute)) { - return stackHTML; - } + let nSelect = document.getElementById(`n-${language}`); + nSelect.addEventListener("change", function () { + maxStackDepth = parseInt(nSelect.value); + stackText.textContent = maxStackDepth; + reset(); - const subsol2 = step_fibonacci(eval(`"use strict";${recursecase2}`), stackDepth + 1); + languages.forEach((language1) => { + document.getElementById(`n-${language1}`).value = nSelect.value; + }); + }); +}); - if (subsol2 === 'Stack Overflow') - return 'Stack Overflow'; - if (subsol2.toString().startsWith('<')) - return subsol2; +function reset() { + stackElement.innerHTML = ""; + stackElement.style.color = "black"; + stackHTML = ""; - resultContent = `n: ${n} | subsol1: ${subsol1} | subsol2: ${subsol2} | sol: undefined`; - resultElement.textContent = resultContent; + resultContent = ""; + resultElement.style.color = "black"; + resultElement.textContent = " "; - if (!step(executedsteps, stepstoexecute)) { - return stackHTML; - } + runButton.disabled = false; + nextButton.disabled = false; + prevButton.disabled = true; - const sol = eval(`"use strict";${subsol1} ${operator} ${subsol2}`); + stepstoexecute.value = -1; + executedsteps.value = 0; +} - resultContent = `n: ${n} | subsol1: ${subsol1} | subsol2: ${subsol2} | sol: ${sol}`; - resultElement.textContent = resultContent; +function step_fibonacci(n, stackDepth) { + let newHTML = `
+ stackDepth: ${stackDepth} | n: ${n}
+
\n`; + stackHTML = newHTML + stackHTML; - if (!step(executedsteps, stepstoexecute)) { - return stackHTML; - } + resultContent = `n: ${n} | subsol1: undefined | subsol2: undefined | sol: undefined`; + resultElement.textContent = resultContent; - stackHTML = stackHTML.substring(newHTML.length); - stackElement.innerHTML = stackHTML; + if (stackDepth > maxStackDepth) { + resultElement.style.color = "red"; + resultElement.textContent = "Stack Overflow"; - return sol; - } -} + stackElement.style.color = "red"; + stackElement.innerHTML = stackHTML; -function check_result(result) { - if (result === fibonnaci(maxStackDepth)) { - resultElement.style.color = 'green'; - resultElement.textContent = "Correct Answer: " + result.toString(); + return "Stack Overflow"; + } + resultElement.style.color = "black"; + + if (!step(executedsteps, stepstoexecute)) { + return stackHTML; + } + + if (eval(`"use strict";n ${basecaseOperator} ${basecase}`)) { + stackHTML = stackHTML.replace(newHTML, ""); + // Ensure basecaseReturn is a number + let returnValue = basecaseReturn; + if (typeof returnValue === "string") { + if (returnValue === "n") return n; + if (returnValue === "n-1") return n - 1; + if (returnValue === "n+1") return n + 1; + if (returnValue === "0") return 0; + if (returnValue === "1") return 1; + if (returnValue === "-1") return -1; + // fallback + return parseInt(returnValue) || 0; } - else { - resultElement.style.color = 'red'; - resultElement.textContent = 'Wrong Answer: ' + result.toString(); + return returnValue; + } else { + // Evaluate subsol1 and subsol2 as numbers + // Parse recursive cases using n as integer + let subsol1Val = eval(`"use strict";${recursecase1.replace(/n/g, n)}`); + let subsol1 = step_fibonacci(subsol1Val, stackDepth + 1); + if (subsol1 === "Stack Overflow") return "Stack Overflow"; + if (typeof subsol1 === "string" && subsol1.startsWith("<")) return subsol1; + subsol1 = Number(subsol1); + + resultContent = `n: ${n} | subsol1: ${subsol1} | subsol2: undefined | sol: undefined`; + resultElement.textContent = resultContent; + if (!step(executedsteps, stepstoexecute)) return stackHTML; + + let subsol2Val = eval(`"use strict";${recursecase2.replace(/n/g, n)}`); + let subsol2 = step_fibonacci(subsol2Val, stackDepth + 1); + if (subsol2 === "Stack Overflow") return "Stack Overflow"; + if (typeof subsol2 === "string" && subsol2.startsWith("<")) return subsol2; + subsol2 = Number(subsol2); + + resultContent = `n: ${n} | subsol1: ${subsol1} | subsol2: ${subsol2} | sol: undefined`; + resultElement.textContent = resultContent; + if (!step(executedsteps, stepstoexecute)) return stackHTML; + + // Only allow +, -, * for operator + let sol; + switch (operator) { + case "+": + sol = subsol1 + subsol2; + break; + case "-": + sol = subsol1 - subsol2; + break; + case "*": + sol = subsol1 * subsol2; + break; + default: + sol = subsol1 + subsol2; + break; } + resultContent = `n: ${n} | subsol1: ${subsol1} | subsol2: ${subsol2} | sol: ${sol}`; + resultElement.textContent = resultContent; + if (!step(executedsteps, stepstoexecute)) return stackHTML; + + stackHTML = stackHTML.substring(newHTML.length); + stackElement.innerHTML = stackHTML; + return sol; + } +} + +function check_result(result) { + if (result === fibonnaci(maxStackDepth)) { + resultElement.style.color = "green"; + resultElement.textContent = "Correct Answer: " + result.toString(); + } else { + resultElement.style.color = "red"; + resultElement.textContent = "Wrong Answer: " + result.toString(); + } } -resetButton.addEventListener('click', reset); +resetButton.addEventListener("click", reset); -document.getElementById('lang-selector').addEventListener('change', function () { - var selectedLanguage = document.getElementById('lang-selector').value.toLowerCase(); +document + .getElementById("lang-selector") + .addEventListener("change", function () { + var selectedLanguage = document + .getElementById("lang-selector") + .value.toLowerCase(); languages.forEach(function (language) { - var container = document.getElementById('container-' + language); - container.style.display = 'none'; + var container = document.getElementById("container-" + language); + container.style.display = "none"; }); if (languages.includes(selectedLanguage)) { - var selectedContainer = document.getElementById('container-' + selectedLanguage); - selectedContainer.style.display = 'block'; + var selectedContainer = document.getElementById( + "container-" + selectedLanguage, + ); + selectedContainer.style.display = "block"; } else { - console.log('Unsupported language: ' + selectedLanguage); - resetButton.disabled = true; - return; + console.log("Unsupported language: " + selectedLanguage); + resetButton.disabled = true; + return; } resetButton.disabled = false; reset(); -}); + }); -runButton.addEventListener('click', function () { - stackElement.innerHTML = ''; - stackHTML = ''; - stepstoexecute.value = -1; +runButton.addEventListener("click", function () { + stackElement.innerHTML = ""; + stackHTML = ""; + stepstoexecute.value = -1; - let result = step_fibonacci(maxStackDepth, 1); - check_result(result); + let result = step_fibonacci(maxStackDepth, 1); + check_result(result); - runButton.disabled = true; - nextButton.disabled = true; - prevButton.disabled = true; + runButton.disabled = true; + nextButton.disabled = true; + prevButton.disabled = true; }); -nextButton.addEventListener('click', function () { - if (typeof stackHTML === 'number') { - return; - } - if (stackHTML === 'Stack Overflow') { - nextButton.disabled = true; - prevButton.disabled = true; - return; - } - stepstoexecute.value++; - executedsteps.value = 0; +nextButton.addEventListener("click", function () { + if (typeof stackHTML === "number") { + return; + } + if (stackHTML === "Stack Overflow") { + nextButton.disabled = true; + prevButton.disabled = true; + return; + } + stepstoexecute.value++; + executedsteps.value = 0; - stackHTML = ''; + stackHTML = ""; - stackHTML = step_fibonacci(maxStackDepth, 1); + stackHTML = step_fibonacci(maxStackDepth, 1); - if (typeof stackHTML === 'number') { - nextButton.disabled = true; - prevButton.disabled = true; - runButton.disabled = true; + if (typeof stackHTML === "number") { + nextButton.disabled = true; + prevButton.disabled = true; + runButton.disabled = true; - check_result(stackHTML); - stackElement.innerHTML = ''; - return; - } + check_result(stackHTML); + stackElement.innerHTML = ""; + return; + } - if (stackHTML === 'Stack Overflow') { - stackElement.style.color = 'red'; - nextButton.disabled = true; - runButton.disabled = true; - return; - } - stackElement.innerHTML = stackHTML; - prevButton.disabled = false; + if (stackHTML === "Stack Overflow") { + stackElement.style.color = "red"; + nextButton.disabled = true; + runButton.disabled = true; + return; + } + stackElement.innerHTML = stackHTML; + prevButton.disabled = false; }); -prevButton.addEventListener('click', function () { - if (stepstoexecute.value <= 0) { - stackHTML = ''; - resultContent = ''; - resultElement.textContent = ' '; - stepstoexecute.value = -1; - prevButton.disabled = true; - } - else { - stepstoexecute.value--; - executedsteps.value = 0; - - stackHTML = ''; - - stackHTML = step_fibonacci(maxStackDepth, 1); - if (stackHTML === 'Stack Overflow') { - stackElement.style.color = 'red'; - return; - } - else { - stackElement.style.color = 'black'; - } +prevButton.addEventListener("click", function () { + if (stepstoexecute.value <= 0) { + stackHTML = ""; + resultContent = ""; + resultElement.textContent = " "; + stepstoexecute.value = -1; + prevButton.disabled = true; + } else { + stepstoexecute.value--; + executedsteps.value = 0; + + stackHTML = ""; + + stackHTML = step_fibonacci(maxStackDepth, 1); + if (stackHTML === "Stack Overflow") { + stackElement.style.color = "red"; + return; + } else { + stackElement.style.color = "black"; } - stackElement.innerHTML = stackHTML; - nextButton.disabled = false; - runButton.disabled = false; + } + stackElement.innerHTML = stackHTML; + nextButton.disabled = false; + runButton.disabled = false; }); diff --git a/experiment/simulation/pages/fibonacci.html b/experiment/simulation/pages/fibonacci.html index ad83f5d..3c5598f 100644 --- a/experiment/simulation/pages/fibonacci.html +++ b/experiment/simulation/pages/fibonacci.html @@ -1,274 +1,355 @@ - + - - - - - + + + + Recursion | VLabs - + - + - +
-
- Problems - + +
+
+
+
+
+
+ Instructions +
+
+
    + + + +
+
+
+
+
+ +
-
-
-
-
-
-
- Instructions -
-
-
    - - - -
-
-
+
+
+
+
Code Block
+ +
+ -
- + + + + + + ) { +
+
+ return + ; +
+
} else {
+
+ int subsol1 = fibonacci(); +
+
+ int subsol2 = fibonacci(); +
+
+ int sol = subsol1 + + subsol2; +
+
return sol;
+
}
+
}
+
 
+
int main() {
+
+ int n = + ; +
+
int result = fibonacci(n);
+
+ printf("Result: %d\n", result); +
+
return 0;
+
}
-
-
-
-
-
- Code Block -
- -
- - - - -
- -
+ -
-
-
-
-
- Stack -
-
- Max Size: 5 -
-
-
-
-
-
-
-
-
- Variable Values -
-
-
-
-
-
-
-
-
- - - - -
-
+
+ +
+
+
+
+
+
+
Stack
+
+ Max Size: + 5 +
+
+
+
+
+
+
Variable Values
+
+
+
-
+
+
+
+ + + + +
+
+
+
+ - - + + - + - - - \ No newline at end of file + +

=t#*GW#m2S^@5Xcdi$Yw9`@#XRL65Fem%I(2SO=D)+x`P#g>DPEn2nZ(|j2H9Vy!8 z+rialSjUuuM3!SehxfYWm>{H8hskM3OcVkNY8H%yH(^NI-2pbF#%r77>*q%9u-5ke z3Y>IpH=2e>y>;f6J=j1E7>|aV=l@+szqx4k8?(LmDlOk+&{%A`bj*y3?r(;{e+6!R z%pW)b$pmfTf7?vmpp0)iaEp9WL^>i*hNZdOPgcgB1#M_9dUyXzDW6T)Z6kN30=9xZ zP&vuWTtG@<3Z&qKC0B3TKm>ob!@^w0W?fG%bnPJl*-OZ1*+IQW1?6h_sPM1&AECG z)fx|h7>QG0Mg-~idNi9Xv0snK@eTTL@Qf9W09by#m=;CmT zI6UKu2^EqhPYx|TnOo4^+vp0Fn*@Qf^O8UR@y|$^I+HTO^P(e)U($eTYB3Pys??;4 z$bJLuSr(x%bsm` zShZ9$CwTxVX6a=%)Z_ z4y46B`WF$OO>xv?q{Q1gUOuauY|CPC4qW_cl~6hZHRu*8*M0^;T;*PsxHv2LZjW93 z?3c*><@LBgzmiHZ=Qos&M8~u1Y&tdPX9*X-S1!%A&9FSn(re8J(uLHMSJC|F^0%D) zY%J-NDuO(7DSpZs%in-0&_SRd*gvb^*K7zLxetyo_#=}-Imu;%#^2u# zw1Wrh{JzQz2}4+etL4ce4JO0|d{a#o#k%v;O}6j=1yCFEyp%M zWcep937O?fk_?d*y!du`S=`X={7}n2%YS9QJ1cR4-Jefg88%BiZ%tnTSLRb2Ug$4> zNp1FD{G{c{Gq&Sf2KtfPx}UCaBv2?lx?^Sy&N`Yq(~%T+#rNp?ikkXaF}1Cy`Z+uk zjusF@t*i0df@i1cM-lQuRyKbeiE@46RIJc@n#w9Av@kZaG z@rasbk7mJaY$>muc3LVyJlV&zXkQi#Hd8jw4m75QuwT0c75lnO`lFuAP1a5kqg{(_ zGtU)x_lao`-g157%JLpYO8ANTlKYIIZls;r-p6M4nmmlnjZl!sC+85UWUHUR&hr10V(#leEX$QPf8%Xd7j^yx?h-kYT0_|P;F~3if~yV zwyDRlOGziPjOdkAOirYX$Fi}RMyVx&*5TM|s>S>ieYiG%@m8~FxAEA_+C1ZV{&LfD zvo(&u2-Ix}LSFo7f8wOKv}@kJZmoss(!{0lW84?`vAI`-UHsuP--k+7Zupj=^Xa(q zSliu_m~!O{`q#F8cO?4vrCuN`<8w95uLB9@hnn2pHhtpkT_l#BFp-zaiK5b4T_cLP zsrZsHt66eF1RC8Sd%!63F<+soz%SDKg#RS3I#rexh!4YS4$cykuH%nAxnZz=q3p=B z!MHXdeC%9!*=eM$8Dp+>ROSr+H9pu7gm|)1hPR2i;C27|h^XT6M`*_88hUZeci3=; zcf!sV41cEXX!Pg?uQT-gY))Owt(v8?qsN6^eG&UZjIb3~^V#$c+2)(t+WhEU#j&8| zj8Q78Iy}jF*J{!~CiL^_^Du*mXu_b6FRF{0^=TsXIZ!bCo>d@3m%RP9 zf+zA3w^q%RUs!xDk+ zusxKn71I#fM+T?J8&_25+jrg1-Fh0gY08VGLEZe)n_V`=Y7wblnHZLqm1c8Y>SRh*(x?w2H6W8`$MYhIim4%pZd|5 zVh{W7bFDtyD&CB?q;^o07293ba`n|TdAw#l!obNSC+k#3LMYvPYAU|tW+wV}@F4Tbag}p+&SG(p(dd$W%+n{pWw48@;{}SudlTmZJe9`K&(5~chcgCfH z6PMpd6`@gg{xQeU~#07MoG!Wn>=aEL~T$`kTO#~|`tBDVgV4{n#U!ENtJnEk?T#JCH z`&wgd_CUa-@2~Yr9mHzb0U0Ta1h?1v>)77|kryjc?fXB}E)Q~gz``rU)!E}fiDSTp Fe*v|ern&$C literal 14382 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 XPaz0{E;LC1^d}`I|G82`Kk$D59fgWB diff --git a/experiment/images/code8c.png b/experiment/images/code8c.png index 4c309f78bbdcc71a4434890d3cc0011f42483683..e6edddbdf1ba8df135e03516c92a42c0882c7ffd 100644 GIT binary patch literal 4347 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 Ls7TjHnuY#1EFb6S diff --git a/experiment/images/code9.png b/experiment/images/code9.png index 8fcabe16a1fbc576f9212ce3521acc5c53b2e9ed..e2d519863a765b4c178acf93902c4ec900e237ad 100644 GIT binary patch literal 2944 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 From 8c022193382cd085d436060cf32604ecd8957895 Mon Sep 17 00:00:00 2001 From: Shraddha Date: Wed, 11 Mar 2026 20:31:01 +0530 Subject: [PATCH 2/3] Fixing the content and format of pages Fixing - https://github.com/virtual-labs/bugs-virtual-labs/issues/12751 Added explanations to a few questions. --- experiment/aim.md | 8 +- experiment/posttest.json | 447 ++++++++++++++++++++------------------- experiment/theory.md | 37 ++-- 3 files changed, 259 insertions(+), 233 deletions(-) diff --git a/experiment/aim.md b/experiment/aim.md index 5ffa5b2..4e6740a 100644 --- a/experiment/aim.md +++ b/experiment/aim.md @@ -1,3 +1,7 @@ -Sometimes solving a big problem may require us to solve smaller problems of similar nature. For example, computing the xth number in the fibonacci sequence may require us to find the x-1th and the x-2th numbers in the sequence. If we are able to break the main problem into smaller instances of the same problem again and again, so that eventually the smaller problems become trivial, then we can use the solutions to the trivial problems to progressively build bigger solutions. Consequently, we can reach the solution of our main problem. This concept when used in coding is called recursion. +The aim of this experiment is to help you understand the concept of recursion in programming. Recursion is a technique where a function solves a problem by calling itself with smaller or simpler inputs, until it reaches a base case that can be solved directly. This approach allows us to break down complex problems into simpler ones, and build up the solution step by step. -For writing a recursive code for a problem, we simply call a function inside the definition of the same function. Thus the definition of GNU (the source of much free software) is said to be recursive because GNU stands for 'GNU's Not Unix', i.e. GNU is part of the definition of GNU! Or maybe two mirrors placed parallely! The nested images are a form of infinite recursion. \ No newline at end of file +For example, to compute the xth number in the Fibonacci sequence, we need to find the (x-1)th and (x-2)th numbers first. By repeatedly breaking the main problem into smaller instances of the same problem, we eventually reach cases that are easy to solve. We then use these simple solutions to construct the answer to the original problem. + +In programming, recursion means writing a function that calls itself within its own definition. A classic example is the definition of GNU, which stands for 'GNU's Not Unix'—the name itself is part of its own definition. Another example is placing two mirrors parallel to each other, creating an infinite series of reflections. These are all forms of recursion. + +This experiment will guide you through writing and understanding recursive functions, identifying base cases, and recognizing how recursion can simplify problem-solving in computer programming. diff --git a/experiment/posttest.json b/experiment/posttest.json index 4967bc1..9b96c52 100644 --- a/experiment/posttest.json +++ b/experiment/posttest.json @@ -1,214 +1,235 @@ { - "version": 2.0, - "questions": [ - { - "question": "1. How many stars will the following code output for a given positive value of n:
", - "answers": { - "a": "n", - "b": "n^2", - "c": "n(n-1)/2", - "d": "n(n+1)/2" - }, - "correctAnswer": "d", - "difficulty": "beginner", - "explanations": { - "a": "This option is incorrect. Did you consider the recursion?", - "b": "This option is incorrect. In each recursion, the loop is on the value of n passed to that function instance, and not the initial value of n.", - "c": "This option is incorrect. Used wrong formula?", - "d": "This option is correct." - } - }, - { - "question": "2. What will be the ouptut of the following function call: fun2(20); where fun2 is defined as:
", - "answers": { - "a": "20 40 60 80 60 40 20", - "b": "80 60 40 20", - "c": "20 40 80 80 40 20", - "d": "20 40 60 80" - }, - "correctAnswer": "c", - "difficulty": "beginner", - "explanations": { - "a": "This option is incorrect. In each function call, the value of n is printed twice. Did you forget to consider one?", - "b": "This option is incorrect. The function is called with n = 20, and not 80, and one print statement is before the recursive call.", - "c": "This option is correct.", - "d": "This option is incorrect. Did you forget to consider the print statement after the recursive call?" - } - }, - { - "question": "3. What will be the ouptut of the following function call: fun3(100); where fun3 is defined as:
", - "answers": { - "a": "6", - "b": "7", - "c": "5", - "d": "4" - }, - "correctAnswer": "a", - "difficulty": "beginner", - "explanations": { - "a": "This option is correct.", - "b": "This option is incorrect. The function is calculating the intrgral value of log2n.", - "c": "This option is incorrect. The function is calculating the intrgral value of log2n.", - "d": "This option is incorrect. The function is calculating the intrgral value of log2n." - } - }, - { - "question": "4. In Python, which module or library allows you to control the maximum recursion depth?", - "answers": { - "a": "recursioncontrol", - "b": "sys", - "c": "recursivelimit", - "d": "recursivecontrol" - }, - "correctAnswer": "b", - "difficulty": "advanced", - "explanations": { - "a": "This option is incorrect. 'recursioncontrol' is not a valid module for controlling recursion depth in Python.", - "b": "This option is correct. The 'sys' module in Python allows you to control the maximum recursion depth using 'sys.setrecursionlimit()'.", - "c": "This option is incorrect. There is no 'recursivelimit' module in Python for controlling recursion depth.", - "d": "This option is incorrect. 'recursivecontrol' is not a recognized module for controlling recursion depth in Python." - } - }, - { - "question": "5. What is the time complexity of the following recursive function for computing Fibonacci numbers?
", - "answers": { - "a": "O(n)", - "b": "O(log n)", - "c": "O(2^n)", - "d": "O(n^2)" - }, - "correctAnswer": "c", - "difficulty": "advanced", - "explanations": { - "a": "This option is incorrect. Did you consider both recursive calls?", - "b": "This option is incorrect. The value of n is being decreased by 2 (linear) in each recursive call, so minimum O(n) time is required for such code.", - "c": "This option is correct.", - "d": "This option is incorrect. For each value of n, two recursive calls are made, so the time complexity is exponential." - } - }, - { - "question": "6. How does the compiler or interpreter handle tail recursion?", - "answers": { - "a": "By converting it into a loop", - "b": "By using a special optimization technique", - "c": "By adding a flag to indicate tail recursion", - "d": "By doing nothing, tail recursion works as usual" - }, - "correctAnswer": "a", - "difficulty": "advanced", - "explanations": { - "a": "This option is correct.", - "b": "This option is incorrect. It is not a very special optimization technique, but an other way of thinking of recursion.", - "c": "This option is incorrect. This is not how tail recursion is handled.", - "d": "This option is incorrect. There is a special way compiler/interepreter handles tail recursion." - } - }, - { - "question": "7. Can recursion be used to solve parallel computing problems?", - "answers": { - "a": "Yes, recursion can be used to solve parallel computing problems", - "b": "No, recursion is not useful for parallel computing", - "c": "Sometimes, depending on the specific problem", - "d": "Only if the problem has a small number of inputs" - }, - "correctAnswer": "a", - "difficulty": "advanced", - "explanations": { - "a": "This option is correct.", - "b": "This option is incorrect. Recursion can indeed be useful for parallel computing, depending on the problem and implementation.", - "c": "This option is partially correct. Only recursion's suitability for parallel computing depends on the specific problem at hand, but it can still be used.", - "d": "This option is incorrect. The effectiveness of recursion in parallel computing is not determined solely by the number of inputs but rather the nature of the problem and its decomposition." - } - }, - { - "question": "8. Which of the following is a valid way to write a recursive function for calculating the Fibonacci sequence?", - "answers": { - "a": "", - "b": "", - "c": "", - "d": "None of the above" - }, - "correctAnswer": "b", - "difficulty": "beginner", - "explanations": { - "a": "This option is incorrect. Check the return statement for the base case.", - "b": "This option is correct.", - "c": "This option is incorrect. Once check that have you covered all the base cases.", - "d": "This option is incorrect. There is a correct way to write a recursive function for calculating the Fibonacci sequence." - } - }, - { - "question": "9. Consider the following recursive function fun(x, y). What is the value of fun(4, 3)?
", - "answers": { - "a": "9", - "b": "10", - "c": "11", - "d": "12", - "e": "13" - }, - "correctAnswer": "e", - "difficulty": "beginner", - "explanations": { - "a": "This option is incorrect. Did you calculate the value of y in recursive cases correctly?", - "b": "This option is incorrect. Did you calculate the value of y in recursive cases correctly?", - "c": "This option is incorrect. Did you calculate the value of y in recursive cases correctly?", - "d": "This option is incorrect. Did you miss one last recursive call?", - "e": "This option is correct." - } - }, - { - "question": "10. What does the following function print for n = 25?
", - "answers": { - "a": "11001", - "b": "10011", - "c": "11111", - "d": "00000", - "e": "None of the above" - }, - "correctAnswer": "b", - "difficulty": "beginner", - "explanations": { - "a": "This option is incorrect. The function mainly prints binary representation in reverse order.", - "b": "This option is correct.", - "c": "This option is incorrect. The modulo operation with 2 give 0 for even numbers, and 1 for odd numbers.", - "d": "This option is incorrect. The modulo operation with 2 give 0 for even numbers, and 1 for odd numbers." - } - }, - { - "question": "11. What does the following function do?
", - "answers": { - "a": "x + y", - "b": "x + x*y", - "c": "x*y", - "d": "xy", - "e": "None of the above" - }, - "correctAnswer": "c", - "difficulty": "advanced" - }, - { - "question": "12. What does fun2() do in general?
", - "answers": { - "a": "x*y", - "b": "x + x*y", - "c": "yx", - "d": "xy", - "e": "None of the above" - }, - "correctAnswer": "d", - "difficulty": "advanced" - }, - { - "question": "13. Consider the recursive C++ function that takes two arguments.

What is the return value of the function foo when it is called as foo(513, 2)?", - "answers": { - "a": "2", - "b": "5", - "c": "8", - "d": "9", - "e": "None of the above" - }, - "correctAnswer": "a", - "difficulty": "advanced" - } - ] -} \ No newline at end of file + "version": 2.0, + "questions": [ + { + "question": "1. How many stars will the following code output for a given positive value of n:
", + "answers": { + "a": "n", + "b": "n^2", + "c": "n(n-1)/2", + "d": "n(n+1)/2" + }, + "correctAnswer": "d", + "difficulty": "beginner", + "explanations": { + "a": "This option is incorrect. The code outputs more stars than just n because the loop and recursion combine their effects.", + "b": "This option is incorrect. The code does not output n squared stars, as the recursion and loop do not multiply in this way.", + "c": "This option is incorrect. The formula n(n-1)/2 does not represent the total stars printed by the recursive structure.", + "d": "This option is correct. The code prints n(n+1)/2 stars, combining the loop and recursive calls." + } + }, + { + "question": "2. What will be the ouptut of the following function call: fun2(20); where fun2 is defined as:
", + "answers": { + "a": "20 40 60 80 60 40 20", + "b": "80 60 40 20", + "c": "20 40 80 80 40 20", + "d": "20 40 60 80" + }, + "correctAnswer": "c", + "difficulty": "beginner", + "explanations": { + "a": "This option is incorrect. The output sequence does not match the actual order of prints in the recursive function.", + "b": "This option is incorrect. The function prints values before and after recursion, not just in descending order.", + "c": "This option is correct. The output reflects both pre- and post-recursive prints for each call.", + "d": "This option is incorrect. The output misses the values printed after the recursive call." + } + }, + { + "question": "3. What will be the ouptut of the following function call: fun3(100); where fun3 is defined as:
", + "answers": { + "a": "6", + "b": "7", + "c": "5", + "d": "4" + }, + "correctAnswer": "a", + "difficulty": "beginner", + "explanations": { + "a": "This option is correct. The function counts the number of times n can be divided by 2 before reaching 1, which is 6 for n = 100.", + "b": "This option is incorrect. The function does not reach 7 divisions for n = 100.", + "c": "This option is incorrect. The function divides n by 2 more times than this answer suggests.", + "d": "This option is incorrect. The function divides n by 2 fewer times than this answer suggests." + } + }, + { + "question": "4. In Python, which module or library allows you to control the maximum recursion depth?", + "answers": { + "a": "recursioncontrol", + "b": "sys", + "c": "recursivelimit", + "d": "recursivecontrol" + }, + "correctAnswer": "b", + "difficulty": "advanced", + "explanations": { + "a": "This option is incorrect. 'recursioncontrol' is not a standard Python module.", + "b": "This option is correct. The 'sys' module provides the setrecursionlimit function to control recursion depth.", + "c": "This option is incorrect. 'recursivelimit' is not a recognized Python module.", + "d": "This option is incorrect. 'recursivecontrol' is not a valid module in Python." + } + }, + { + "question": "5. What is the time complexity of the following recursive function for computing Fibonacci numbers?
", + "answers": { + "a": "O(n)", + "b": "O(log n)", + "c": "O(2^n)", + "d": "O(n^2)" + }, + "correctAnswer": "c", + "difficulty": "advanced", + "explanations": { + "a": "This option is incorrect. The function makes two recursive calls for each n, not just one, so the complexity is higher than linear.", + "b": "This option is incorrect. The function does not reduce n logarithmically, so the complexity is not O(log n).", + "c": "This option is correct. The recursive Fibonacci function has exponential time complexity, O(2^n), due to repeated calculations.", + "d": "This option is incorrect. The function's complexity grows much faster than quadratic because of the double recursion." + } + }, + { + "question": "6. How does the compiler or interpreter handle tail recursion?", + "answers": { + "a": "By converting it into a loop", + "b": "By using a special optimization technique", + "c": "By adding a flag to indicate tail recursion", + "d": "By doing nothing, tail recursion works as usual" + }, + "correctAnswer": "a", + "difficulty": "advanced", + "explanations": { + "a": "This option is correct. Compilers or interpreters often optimize tail recursion by converting it into a loop, reducing stack usage.", + "b": "This option is incorrect. While optimization is involved, it is specifically loop conversion for tail recursion.", + "c": "This option is incorrect. Tail recursion is not handled by adding a flag.", + "d": "This option is incorrect. Tail recursion is handled differently than regular recursion to improve efficiency." + } + }, + { + "question": "7. Can recursion be used to solve parallel computing problems?", + "answers": { + "a": "Yes, recursion can be used to solve parallel computing problems", + "b": "No, recursion is not useful for parallel computing", + "c": "Sometimes, depending on the specific problem", + "d": "Only if the problem has a small number of inputs" + }, + "correctAnswer": "a", + "difficulty": "advanced", + "explanations": { + "a": "This option is correct. Recursive algorithms can be used to break problems into independent sub-tasks, which are suitable for parallel execution.", + "b": "This option is incorrect. Recursion is often used in parallel computing, especially for divide-and-conquer problems.", + "c": "This option is incorrect. While problem-specific, recursion is a general approach for parallelization.", + "d": "This option is incorrect. The suitability of recursion for parallel computing is not limited by input size but by problem structure." + } + }, + { + "question": "8. Which of the following is a valid way to write a recursive function for calculating the Fibonacci sequence?", + "answers": { + "a": "", + "b": "", + "c": "", + "d": "None of the above" + }, + "correctAnswer": "b", + "difficulty": "beginner", + "explanations": { + "a": "This option is incorrect. The base case is not handled properly, so the function may not terminate as expected.", + "b": "This option is correct. The function correctly implements the recursive calculation of Fibonacci numbers with proper base cases.", + "c": "This option is incorrect. The function does not cover all necessary base cases for Fibonacci calculation.", + "d": "This option is incorrect. There is a valid recursive implementation for Fibonacci sequence calculation." + } + }, + { + "question": "9. Consider the following recursive function fun(x, y). What is the value of fun(4, 3)?
", + "answers": { + "a": "9", + "b": "10", + "c": "11", + "d": "12", + "e": "13" + }, + "correctAnswer": "e", + "difficulty": "beginner", + "explanations": { + "a": "This option is incorrect. The recursive addition does not result in 9 for these inputs.", + "b": "This option is incorrect. The recursive addition does not result in 10 for these inputs.", + "c": "This option is incorrect. The recursive addition does not result in 11 for these inputs.", + "d": "This option is incorrect. The recursive addition does not result in 12 for these inputs.", + "e": "This option is correct. The recursive function accumulates values to reach 13 for fun(4, 3)." + } + }, + { + "question": "10. What does the following function print for n = 25?
", + "answers": { + "a": "11001", + "b": "10011", + "c": "11111", + "d": "00000", + "e": "None of the above" + }, + "correctAnswer": "b", + "difficulty": "beginner", + "explanations": { + "a": "This option is incorrect. The function prints the binary representation of n, but not in this order for n = 25.", + "b": "This option is correct. The function prints the binary digits of 25 in the correct order.", + "c": "This option is incorrect. The binary representation of 25 does not match this sequence.", + "d": "This option is incorrect. The binary representation of 25 is not all zeros." + } + }, + { + "question": "11. What does the following function do?
", + "answers": { + "a": "x + y", + "b": "x + x*y", + "c": "x*y", + "d": "xy", + "e": "None of the above" + }, + "correctAnswer": "c", + "difficulty": "advanced", + "explanations": { + "a": "This option is incorrect. The function's recursive structure results in multiplication, not addition.", + "b": "This option is incorrect. The function does not combine addition and multiplication in its output.", + "c": "This option is correct. The recursive calls accumulate the product of x and y.", + "d": "This option is incorrect. The function does not perform exponentiation.", + "e": "This option is incorrect. The function's output matches one of the provided options." + } + }, + { + "question": "12. What does fun2() do in general?
", + "answers": { + "a": "x*y", + "b": "x + x*y", + "c": "yx", + "d": "xy", + "e": "None of the above" + }, + "correctAnswer": "d", + "difficulty": "advanced", + "explanations": { + "a": "This option is incorrect. The function's recursive logic results in exponentiation, not multiplication.", + "b": "This option is incorrect. The function does not combine addition and multiplication.", + "c": "This option is incorrect. The function does not compute y raised to the power x.", + "d": "This option is correct. The recursive calls calculate x raised to the power y.", + "e": "This option is incorrect. The function's output matches one of the provided options." + } + }, + { + "question": "13. Consider the recursive C++ function that takes two arguments.

What is the return value of the function foo when it is called as foo(513, 2)?", + "answers": { + "a": "2", + "b": "5", + "c": "8", + "d": "9", + "e": "None of the above" + }, + "correctAnswer": "a", + "difficulty": "advanced", + "explanations": { + "a": "This option is correct. The function returns the second argument when the first argument is less than 10, which is the case for foo(513, 2).", + "b": "This option is incorrect. The recursive structure does not produce 5 for these inputs.", + "c": "This option is incorrect. The recursive structure does not produce 8 for these inputs.", + "d": "This option is incorrect. The recursive structure does not produce 9 for these inputs.", + "e": "This option is incorrect. The function's output matches one of the provided options." + } + } + ] +} diff --git a/experiment/theory.md b/experiment/theory.md index e5a5841..5b2fe89 100644 --- a/experiment/theory.md +++ b/experiment/theory.md @@ -1,8 +1,12 @@ -***Recursion*** is a programming technique where a function calls itself repeatedly until it reaches a stopping criterion. In other words, a function solves a problem by breaking it down into smaller sub-problems of the same type, and then solving those sub-problems using the same function. This process continues until the sub-problems are small enough to be solved directly, without calling the function again. +**_Recursion_** is a fundamental programming technique where a function calls itself to solve a problem. The function continues to call itself with smaller or simpler inputs until it reaches a base case—a condition where the answer is straightforward and no further recursion is needed. -To illustrate this concept, let's consider an example. Imagine you have a set of nesting dolls, where each doll is placed inside another slightly larger doll. The smallest doll is the base case, and we want to find out how many dolls are in total. A recursive approach would involve defining a function that takes the current doll and its contents (other dollars), and then calls itself with the next smaller doll and its contents. By doing so, we continue to break down the problem into smaller sub-problems until we reach the base case, which is the smallest doll with no contents. +Recursion works by breaking a complex problem into smaller sub-problems of the same type. Each recursive call solves a smaller part, and the results are combined to solve the original problem. This approach is especially useful for problems that naturally divide into similar sub-tasks, such as mathematical sequences, tree traversals, and sorting algorithms. -Let's consider another very simple example: Calculating the sum of numbers from 1 to n. We can write a recursive function like this: +**Example:** +Imagine you have a set of nesting dolls, each placed inside a larger doll. The smallest doll is the base case. To count all dolls, you can define a function that counts the current doll and then calls itself to count the dolls inside. This continues until you reach the smallest doll, which has no contents. + +**Simple Recursive Function:** +To calculate the sum of numbers from 1 to n: ``` sum(n): @@ -12,25 +16,22 @@ sum(n): return n + sum(n-1) ``` -Here's how the function works: - -- _Base case_: When n is 0 or less, the function returns 0 immediately. This makes sense since the sum of no numbers is 0. -- _Recursive case_: When n is greater than 0, the function calls itself with n-1 as the argument. This continues until the base case is reached. -- _Solution_: The function returns the sum of all numbers from 1 to n by adding n to the sum of all numbers from 1 to n-1. - -For instance, if we call the function with n = 4, it will first call itself with n-1 = 3, then with n-2 = 2, and so on until it reaches the base case with n = 0. Then, it will return the sum of all numbers from 1 to 4, which is 10. +**How it works:** +- _Base case_: When n is 0 or less, the function returns 0. This stops the recursion. +- _Recursive case_: When n is greater than 0, the function calls itself with n-1. This repeats until the base case is reached. +- _Solution_: The function adds n to the sum of numbers from 1 to n-1, building up the answer step by step. -This process might seem magical, but it's actually based on a simple principle: divide and conquer. Break down a complex problem into smaller sub-problems, solve each sub-problem, and combine their solutions to get the final answer. By using recursion, we can solve problems that would otherwise require a lot of code or be difficult to understand. +For example, calling sum(4) will compute 4 + sum(3), then 3 + sum(2), and so on, until sum(0) returns 0. The final result is 10. -When writing a recursive function, it's essential to follow these steps: +**Key Points for Writing Recursive Functions:** -1. Define a clear base case: Identify a trivial case that can be solved directly without calling the function again. -2. Write a recursive case: Use the function itself to solve the remaining cases, gradually reducing the size of the problem until you reach the base case. -3. Ensure termination: Make sure the function will eventually reach the base case, so it doesn't run infinitely. +1. Define a clear base case that stops the recursion. +2. Write the recursive case to reduce the problem size with each call. +3. Ensure the function always reaches the base case to avoid infinite recursion. -With practice, you'll become more comfortable with recursion, and you'll be able to apply it to various problems in different domains. Remember, the key to successful recursion is identifying a suitable base case and designing a well-structured recursive mechanism to approach it. +Recursion is a powerful tool for solving problems in computer programming. With practice, you will learn to identify when recursion is appropriate and how to structure recursive solutions effectively. -> You can refer to the following video from `FreeCodeCamp` to learn more about recursion: +> For a visual explanation, watch this FreeCodeCamp video: - \ No newline at end of file + From 06c531be8504211c1066f07efd34fae9b83a13e7 Mon Sep 17 00:00:00 2001 From: Shraddha Date: Thu, 12 Mar 2026 12:37:21 +0530 Subject: [PATCH 3/3] Fixing simulation functionalities Fixing - https://github.com/virtual-labs/bugs-virtual-labs/issues/13148 https://github.com/virtual-labs/bugs-virtual-labs/issues/13141 https://github.com/virtual-labs/bugs-virtual-labs/issues/13089 --- experiment/simulation/js/fibonacci.js | 539 ++++++++++--------- experiment/simulation/pages/fibonacci.html | 587 ++++++++++++--------- 2 files changed, 633 insertions(+), 493 deletions(-) diff --git a/experiment/simulation/js/fibonacci.js b/experiment/simulation/js/fibonacci.js index 97e98ad..e9767b1 100644 --- a/experiment/simulation/js/fibonacci.js +++ b/experiment/simulation/js/fibonacci.js @@ -1,27 +1,57 @@ +// Set dropdowns to correct Fibonacci values on page load +window.addEventListener("DOMContentLoaded", function () { + languages.forEach((language) => { + document.getElementById(`basecase-operator-${language}`).value = "le"; // <= + document.getElementById(`basecase-${language}`).value = "1"; + document.getElementById(`basecase-return-${language}`).value = "n"; + document.getElementById(`recursecase1-${language}`).value = "n-1"; + document.getElementById(`recursecase2-${language}`).value = "n-2"; + document.getElementById(`operator-${language}`).value = "+"; + document.getElementById(`n-${language}`).value = "5"; + }); + // Update local variables + basecaseOperator = changeOperator("le"); + basecase = 1; + basecaseReturn = "n"; + recursecase1 = "n-1"; + recursecase2 = "n-2"; + operator = "+"; + maxStackDepth = 5; + stackText.textContent = maxStackDepth; + reset(); +}); import { - step, - changeOperator, - languages, - nextButton, - prevButton, - runButton, - resetButton, - stackElement, - stackText, - resultElement, - fibonnaci -} from './main.js'; - -let basecaseOperatorSelect = document.getElementById(`basecase-operator-${languages[0]}`); + step, + changeOperator, + languages, + nextButton, + prevButton, + runButton, + resetButton, + stackElement, + stackText, + resultElement, + fibonnaci, +} from "./main.js"; + +let basecaseOperatorSelect = document.getElementById( + `basecase-operator-${languages[0]}`, +); let basecaseSelect = document.getElementById(`basecase-${languages[0]}`); -let basecaseReturnSelect = document.getElementById(`basecase-return-${languages[0]}`); -let recursecase1Select = document.getElementById(`recursecase1-${languages[0]}`); -let recursecase2Select = document.getElementById(`recursecase2-${languages[0]}`); +let basecaseReturnSelect = document.getElementById( + `basecase-return-${languages[0]}`, +); +let recursecase1Select = document.getElementById( + `recursecase1-${languages[0]}`, +); +let recursecase2Select = document.getElementById( + `recursecase2-${languages[0]}`, +); let operatorSelect = document.getElementById(`operator-${languages[0]}`); let nSelect = document.getElementById(`n-${languages[0]}`); -let stackHTML = ''; -let resultContent = ''; +let stackHTML = ""; +let resultContent = ""; let stepstoexecute = { value: -1 }; let executedsteps = { value: 0 }; @@ -35,276 +65,305 @@ let recursecase1 = recursecase1Select.value; let recursecase2 = recursecase2Select.value; let operator = operatorSelect.value; -languages.forEach(language => { - let basecaseOperatorSelect = document.getElementById(`basecase-operator-${language}`); - basecaseOperatorSelect.addEventListener('change', function () { - basecaseOperator = changeOperator(basecaseOperatorSelect.value); - reset(); - - languages.forEach(language1 => { - document.getElementById(`basecase-operator-${language1}`).value = basecaseOperatorSelect.value; - }) - }) - - let basecaseSelect = document.getElementById(`basecase-${language}`); - basecaseSelect.addEventListener('change', function () { - basecase = parseInt(basecaseSelect.value); - reset(); - - languages.forEach(language1 => { - document.getElementById(`basecase-${language1}`).value = basecaseSelect.value; - }) - }) - - let basecaseReturnSelect = document.getElementById(`basecase-return-${language}`); - basecaseReturnSelect.addEventListener('change', function () { - basecaseReturn = parseInt(basecaseReturnSelect.value); - reset(); - - languages.forEach(language1 => { - document.getElementById(`basecase-return-${language1}`).value = basecaseReturnSelect.value; - }) - }) - - let recursecase1Select = document.getElementById(`recursecase1-${language}`); - recursecase1Select.addEventListener('change', function () { - recursecase1 = recursecase1Select.value; - reset(); - - languages.forEach(language1 => { - document.getElementById(`recursecase1-${language1}`).value = recursecase1Select.value; - }) - }) - - let recursecase2Select = document.getElementById(`recursecase2-${language}`); - recursecase2Select.addEventListener('change', function () { - recursecase1 = recursecase2Select.value; - reset(); - - languages.forEach(language1 => { - document.getElementById(`recursecase2-${language1}`).value = recursecase2Select.value; - }) - }) - - let operatorSelect = document.getElementById(`operator-${language}`); - operatorSelect.addEventListener('change', function () { - operator = operatorSelect.value; - reset(); - - languages.forEach(language1 => { - document.getElementById(`operator-${language1}`).value = operatorSelect.value; - }) - }) - - let nSelect = document.getElementById(`n-${language}`); - nSelect.addEventListener('change', function () { - maxStackDepth = parseInt(nSelect.value); - stackText.textContent = maxStackDepth; - reset(); - - languages.forEach(language1 => { - document.getElementById(`n-${language1}`).value = nSelect.value; - }) - }) -}); +languages.forEach((language) => { + let basecaseOperatorSelect = document.getElementById( + `basecase-operator-${language}`, + ); + basecaseOperatorSelect.addEventListener("change", function () { + basecaseOperator = changeOperator(basecaseOperatorSelect.value); + reset(); -function reset() { - stackElement.innerHTML = ''; - stackElement.style.color = 'black'; - stackHTML = ''; - - resultContent = ''; - resultElement.style.color = 'black'; - resultElement.textContent = ' '; - - runButton.disabled = false; - nextButton.disabled = false; - prevButton.disabled = true; + languages.forEach((language1) => { + document.getElementById(`basecase-operator-${language1}`).value = + basecaseOperatorSelect.value; + }); + }); - stepstoexecute.value = -1; - executedsteps.value = 0; -} + let basecaseSelect = document.getElementById(`basecase-${language}`); + basecaseSelect.addEventListener("change", function () { + basecase = parseInt(basecaseSelect.value); + reset(); -function step_fibonacci(n, stackDepth) { - let newHTML = `