From b79bfc78f01ba3d9c3421e5b273a7f179840c147 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Thu, 30 Jul 2026 00:33:03 -0400 Subject: [PATCH] pe2 and css --- static/posts/pe-p1/post.typ | 12 +++--- static/posts/pe-p2/image.png | Bin 0 -> 9575 bytes static/posts/pe-p2/post.typ | 79 +++++++++++++++++++++++++++++++++++ static/style.css | 2 +- 4 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 static/posts/pe-p2/image.png create mode 100644 static/posts/pe-p2/post.typ diff --git a/static/posts/pe-p1/post.typ b/static/posts/pe-p1/post.typ index 1100de9..7503213 100644 --- a/static/posts/pe-p1/post.typ +++ b/static/posts/pe-p1/post.typ @@ -12,7 +12,7 @@ If we list all the natural numbers below $10$ that are multiples of $3$ or $5$, Suppose the base numbers were $2$ and $3$ below $10$ so $9$, they would create duplicates, ie $6$ is counted twice. Therefore take the sum of each multiple to the limit, and one time remove the numbers counted twice: -#html.frame( +#text(fill: white, html.frame( $ &2+4+6+8+3+cancel(6)+9 = 32\ &sum_(i=1)^(floor(9/(2)))2i + sum_(i=1)^(floor(9/(3))) 3i - sum_(i=1)^(floor(9/(6))) 6i \ @@ -21,17 +21,17 @@ $ = 2& (4(5))/2 + 3 (3(4))/2 - 6 (1(2))/2\ = 3&2 $ -) +)) This revealed a general solution, for base numbers $n, m$ below $L$: -#html.frame( +#text(fill: white, html.frame( $ f(n,m,L) =&n sum_(i=1)^floor((L-1)/n) i + m sum_(i=1)^floor((L-1)/m) i- n m sum_(i=1)^floor((L-1)/(n m))i \ "Define "&a = floor((L-1)/n), b = floor((L-1)/m), c = floor((L-1)/(n m)) \ => f(n,m,L) =& (n a(a+1) + m b(b+1) - n m (c)(c+1))/2 $ -) +)) Testing this as code: ```py @@ -64,8 +64,8 @@ The goal is to not add the number if it was already added. Mathamatically this can be done piecewise. If a previous element of $A$ divides $A_i k$, skip that number. -#html.frame( +#text(fill: white, html.frame( $ f(A, L) = sum_(i)^abs(A)[sum_(k=1)^floor((L-1)/A_i) cases(0 quad & A_j divides A_i k and j < k, A_i k quad & A_j divides.not A_i k and j < k)] $ -) \ No newline at end of file +)) \ No newline at end of file diff --git a/static/posts/pe-p2/image.png b/static/posts/pe-p2/image.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e23f7fffc47f5b497cfbc3a5825fe02b474bbe GIT binary patch literal 9575 zcmbt)c{r5c-~VkXM5qu^Nkf()WQineHMUC09$_$z89T{ZpNde*9w9`9u?)jlV*1+m zEi*9~CB#^>XM4{0JkNFg{`p=e*B3@B6*H-mi0B+%&m%_|S<%5Ck1Y zT-P&&AQmhHF>$jW1W%UK_4vSr)msN~haLQa*qtK4y^xQ-h0kqwXCMFjUP#CV>yAOn zdOLa{kyvk6cb^58I!(|>meEMp3whrM<&G7-gTf%8JFdQ>7vx0^eBDG9l)E#6{7V7IpmLez#85N zUi-P#9P(59*?X1KXSNFoYgSV}>zL9JrrVzlkp6YF1!gcj#7^F`{=5GV3Sk9Hf*{_D z%&PluL>>z>uB@*}hZ$GqYh#SXLXXdSuz*V#X{Tc40Az91mLevWMG(mOmPKL6xx%b! z?-;ER3v2DC6jEfq0vTE)$pluF2CFTBvKJBY$V$=xXg7A76-#Qb$XwWrvoF$!$M89{x=+H7KOeb?t?QPFqZz$chGu3?W8m@KC(**ZZ~S_4 z<74ykem(kP(64kuJ4NB@Ox3+fF(wFFR93`l!E6FPwA4jgfp@fS{H&}+^}Qme5k~JY z(3|6UnN-f`6O|)xc0%^nlqp28YUqAyLH-BAT|7K>W@5re{RKJ2jcNCTNv2E zBWfbtap&!0F7w#lYz=8}v@JMevwP^X{33bGh#uk=$GJ2hf-)mb~+q*uXHQ zgf1rYlSDH!!iu?d(X^+RDX^I7UA47gruF2|{QlN%7ja!vG z=B#e;vnVo)7yO_8v%FdJJ-ssX;N?P3gz(!3PbIsTZ>7_NfZsijR^x%UdnNv9A7oL@ z;X8bUH@bv5`KIuhl>>1lPQpiy`m(^p}^&^ycTR3NX!w|Igo!(RZw*m5bGf*{^+K`+|>PfuH^6@`Szn zSQh4Y9gO}| zNFTU-OmBDH#^YMqq76ISV_{w)psYbm@L>5`chQ9I0e1ace5HiP=}+3bgdHtvn6BQW ztY*1XzslUP>0y{AtNUa77-8PG?y0e5q3IXO!n*nN&s2|K%XQ7CVv&}2LQmVvH3=eO z_3&_O-=4KL!Tw7{q;2-$u$EzLMMcqSf_hmg#y|?VcNpPrENr^tL9$;HEK7n5mAKSYrJy5KH4or2bCLs$;(SwdJwiM6`6IRr_ai;U&*d6op6^sTz6qT zG?}e7PizC074L@NX_Zf*I05@#aZRais{Q(>@gI@-njox zpHf0z-Un35D1?I>0!7YLNsuL#a1#L9m zL=7xG+@AIgU%|br)_UW@wD`6#&;l(>p|4JDwW#jBeW0Bq897SnS`Lam0NcjK38^N@ z(yO$=VExl8e*J{KJ#=ChuBu0IRn__vPsVLCGk5Vi%f!}cpQGrx{5>`cQY_Lrd;_X7C7($+_x>rn6BlZn zRrGev)hk!=t?q57tJTl^To~eUK+okipXH6r46gCplBw&kf-nvO=Vyc z1N~<}^#=ca1-9-ip5dT;KF31)4V721%xq8uSJJcoNa61SYZX6)d)ctTfgHIOUw>1R zdI)=mq2kN6%hcZ@Y;N5>KQ#mI^$PfoO;Qcz8(;RA|5WsG=7B^*bTbYV6tGao(RX1w zW6xa}B62T29<4B)u|^(%8e$TBp`xIzdjS$-X5SuDdn6W1Hknlwu~3+%2nz({4!?HR zf5;Ey()%tnvVA!3aiNK~hKcmNSB+bXdQ%|X5n7ZUBFQ$0qUO0oAyFktW6z_Y_3YCW|BEVcbBP}|#GhA6znPHF?yJQ?|kBZW@ z30K~gGajjypC|_)!PCfC=-wuN@!d3g#$IA=m=xE6YqtwMxWA|XT;tY!F5{YRPCU&k zLw7cg=|4(7x#QovS=XyHj*-u|0l*W+%jJ8q3-5-f*_!dEO^1=VWG4k3B`&Y8ht%Cz z8%n-cmJ^#PHhvJI{;;;pIFX^M^)R<3H#pLb`d43wxO5*NqoLRlu>@0}d{*YNUk==X z4=Dc%&Kbd0G=}(_nMLhjp^-!*xGT=G;|27X+L5>|$_91RTUB32#FMR3ax-O4^1jb$ zgDq=-03@(EB4{4pi2zUvf}=i-te+D%4BommOo@X91R0}cKlZ45ao3R$sR2LZr?xBCBHoAx=8o zDJ9+{*!3hzkOBS9o>2D*EC`k`>Ihq1#3TsiqasWr3j%*-4UY@_X&b+JLIf(t)+!<- z%t&ioa{)Ohc1?aHz=$N%pe>76&EwJL%%ZHd?_YMP)oL>yUw^(<0z!Uyb47Cf;De2W z`(wOyJk1Hj&-o)2*l3Z89@btl)Sg?cXBO&MpzW@T7=5WmO#%CVx~9Ar)-5`|R;UOO zJ-dV1}OJA;1uS_!c8?eqpI2 zz$ZZ}3fS8+&?pfB4g_t#agV)iHV|#z*KJ{#OX z9Di)@80NE6MEJX-L?*2uJe^Lhd*a!1MV0Gq3V?cIc{~q*JZLuv0 z)4m+kBqIdyEPYiP#OOJ{z!U52H_9HTZpml)9f#!kX{@qkZmHP>X9u#^mwQRIta?ta z3g_Z;VMRLDPQcX-#q}r88;cw|SSbaGokU~gV>~YNd@xHzP);~1r^;xL_$ z5$=30H{Q>#g`e8ufJ8<1VGMxk0JB>r1}on>OFh`|QSuPLt$6Aj$i_jdMuO6564d7k zdMAl5Hdt~?O0l)}uYubqy5JIE2!Llkx|AzSjvu&;$7tC^X1yN4o&DVfB?A0XM>-O?Q7X;N~h zxjcfR)PlR;h&x%5H@BtRP0PsIwlaV9?WCo|MhE(DTO`6$}B3yL$4&L@*I#7I4|5nhBMi<_QJNzHu%Gah^<$`6F zyuGzk`;}e}FZiQUCNV|6mWfKYzD@>HnacBpF%+@uz{uf~z;}~%QMidmU)pv;lIW{{ z*Nlu}pN`3Tq;d>{l&|`!D42e3rfQx`I^Oi_a9QRu&f!vq3JCL>b>-9kX8c9nkIYXA z>GY6C>nXmrwlaIQXWhbNH;~%R(`cL6sQ~%qx-7|4-8dyq zU0kW0Cu(hj%gBC(B{H*)ZtUv;qW;v9fF@hY?HTg?=^(^a!0P*3CK z@o<4i%}fHf^NrLN@4>xkpTDj;lj(ID=Sz^r{n4=~FV3|y@Lv%c=OaVojO3eGZ~c6M zO+5sZS4cs-JfI$)ztJviXJ|U4V~Mg%p^9EvLvyz-zdI@lr8TjS>a^n3<~UNwRm+={ z^;wu}J-L!=)$U0}kARn6`f=~Sg*X|<>ttECRH+2F{JcDGCR&&eX z1=;FVvtx0NZqdZe;JCs6jQtgKQW!_hqMy-FCY=)gBu`EWd{V0`tXx)EiV9v$PPLyn}-Zdq#*me2X zaBykUlun?+NB7>(XoYYWoehxt=IE4U zwYl!kwH#LF>(}l4xJi2jOO<0QvXd*~5-tA;k0If5=*4=D9ple!=`T5ps_nYW^ahtWn0jC;Pgxn61Aly|h3F9{0A1&FV}_)4j+(d~k7*4SH%IH8Gb(J?^^G z7f=CjH)F*jE&C+7QYVGCf;r`#sO0-`w&G0C_a}wH@H;UOb)aHHryO&#g~$Z)X4d8! z*A*5_1;{mzD{MI5q?P-ym47HQiVbu=$qwj`h?{ohb4iMbbsAopr@-89{Bj$N@{cJ3 zg2d`I1)!p;bdFHVj<2As18upsETA$=^rg~8_+$YmBOSllM4mSM9Y}$;=aU*m9J#um zkw7^M@xF0iFA;Qfs-U+1@JQZhgWwa?#&`R1aJiyAl-l0El{WV-f>YAn%rbrsrPKu;eW^cO^xYGGDhF{o&283v&u%! z-Hsk8Q3ecEAgEYmUvw{JzFI~S?fb5k8US9re$@%&&2b1sn%g{4l960`(U?`oR zm-0LEXHQb=hw)S7_jIB6gpe((K!tPN-U8mtdH{lG!88vKM=Qi6tSTA5eIEc4HT6?w zA^M4Gfhpy32CQ{FP^9f-E&z+5#Fytb|MQ(&;vP#BaQyrkgU_8V)M$k?T%T?6Bxgq( zJ{}K0Js3r4T@0ynVUBK0Gx=DNt4|(ken=o2BqC!U$I}2X#Wi)y|7e;I>sH0mQ@4gAvxnu51`Hvo~kBMF7Hq#IgyAAWQq&wu4Ga zI!Zmwgw;(Jl~ViVblpMcS%2M6!%whSPm=(#@kOMv$zg&NvHP|!?} zrlBpx(5?wyK!~YBo0+xWx zXi!3?w$`9<0Pq0Dik+dQtoWlj-};ik#N}le#;ejIc$REcLT;P$JNBk{{f%@E2#`^x z24!UUm>b`?fb~@dHogj2ML_&0Y}%G;bc-9`miUh_Z$EK>!P`VzZ$D)eBrOBJvPjFq zkUr|&#GHr-KK+u}XZDKovt7weIEAZi_+QD#x1ScqLJ%OPWB~i1y6Nk{d3EUuBKCSL z?AGoU+4tlGjkEu($JT4>)gR8OHxiMt$hU%yiM4!?#Yyy>M0#eBM02C8N`ofWac}GX z30CZB$w-}8*qf?C)ul5;rS+ady46h8E5F9WP;S|?ZW+oV)6)0<5c!V)MseDZbf}~m zqeaQ%(QfeB=YJVW$iK^{KlO{Ee0Ae4upEl-!n$qt>kQkVTC zaP(3ODRE%>n5gSCqH+Jq6cp^58Jy>74F;v@|FY|8A~qJW4_nz(TQZk#e)HY2NMnY! zN9az<#<$hdOhQxO>D^PK3&xg(-}&Wtkzz5cf{w%Y_oP`_(=rH+D*`85+Bx zB22VIpZ+{cox57BqTp|lOHfHEwSYwRtk9^GtMR7UMn^|VtGnZm^(q-N(7ma_tLC$8 zg4c|slxK+iORCUYFA)^(v}1y2lmbS=BYVa3Ug1~vuR>6Vdxz0~Zt6EIJrn^_BdP~7eJT2 zC1E1+-`3qL`qtGAGrkQbG{0W`E1-5|0)o^x);M}!ozAp+5GpL6(;06dopVaoZhdR# zY<5$4m(SnP1qC{V3F`OU`nt6UzxGM6BBIxsSrzZP?1f8Vg6PV3B-AE$RmRK>=iOOy z_x<&^(zoQNk^E01b}$jZHz4SD*|$v$$*%bPu@W)H)`0u-F8AzVu1tqeVF!I++|Vdj z0)qLBgPnu}!`8vAaadGV@`QSrJJ+1M_sOEi%K!Fj!_V%Vns8hz?1ws)LJsxdj%okyJ$N@kO=>0Tb1`BDsUAqe z3$XY05XB9n1sSOYwg*$<0J zFani*@vxgglOUh~TYHxHZ#xV-U>T1|)>swgHu)u)CfRa^UqcV85hl32yv7h!a;N#| zCFLgB$^DSfBx^RG6Caz4YOxwSXPCIIh%I^gZ)z$o$n+|$^_!_xq0cS&&gmNT$44L7 zb(-;{u3iGPphmZv0~93+K85`_paUG81PTbi(iRBE`{h?K$yo?HD%jrhm>PO`XqYaKJ#usnD5Us)?S*2KkNu#k59%_P z04grn@AE11LUB`z735e-e$)<=YW(lVl6K@Lt><+ngewfB)-umnF_!KYe;)0ramuCU z=$LnHDfN#=#*#r;03*m3YwKEaDq`8+EX=Aj$vRv!2Y^MTC5ga}tNe#k5!K9XmzeA+ z%u`XPVtjkFT3|n}Hc{f83hvH0dQ8<3iU@hqcxhoIZq+$b_f&=BJDG|DMGGTyesOtu ziC;d2-IV5lNKFMf34iIo%o{SK^oE1RRX%*d1do&b*F<&?jE2|$nEo<;Iq+%|h_r`= z9^{-dxJwf3f6Kpe(k|>FZh}3m)~%eHdTo&QZ~gx8AFpj5hRF%z6APXdF&zL*BUX1v zcTz^1Y}NfpHq%4Au!1_br0mEwSazCWP{n7^EmjfR)rojGO~QZHe=wII!o>TNsN4h( zsZCp`9GA>tpFCLH490)Cn4tYUp5T#}_sGUPCAUwh)45c@da}LiX>#i!)UX6X3=s=T zO?Ej+z*?u|f`WU3K{cx7YcXd3auF%3)8T}|{gWE+7-E^Y8gl-FTk5ekV(^H&OSB~{ zzmTylm5vX|ls$?&u)l_ze9u(TU-b^1`AM3)xVWIiZNR{vVFV-`ROOjRPh9aPIjsazZCRc|o$@k8Tl)C(IyjV(*sU(?S?Y5fgG)bSg9zaLVQ!BIzX8T#Zyvla)+( z{rz}PYQ@;=sQ?d42jERQW8`}OWx%>^%CSPlYT#36X9y21kX1L$3<7w@)8iOhYH^^# z2X8zr7O@q}r|yR>Zs4miy5ZVe1~6Tr3bDRR*iyLTu)|SS?3FQR5n9jl33pW`7E(%Z z3WvAQtExhpW@^x2`AvgP059naril|bIxUK$-8J)h!gXE3#@oxEDPjGqZ5N0*dWvTh zf|uyK0ejZndGY+HJ7n#po>u#J6W)F*e^>ujghKB6c787EiKMc3;Kn=Ps;HC-x;HXA zi2LaR)zg}?I@63v$ptWMTws}a1MD|cN7U?q6r5+L7FkOV*@>Il+QpsuQqm)Tp)&Wo`uq4-UusnnH7$)9Tv*p0aP0nE zh_1AeOQUT~T=ti-nd8S5u5bIOA1IM#gF<_iI$dSftk9qHq?4Uta|H%wW~VQgo=@VG z9W%F|^%OR}5bK9>GCx>M-vxov2vqHQ+c;#XGGEZs@;81aw6dL@rkjU%Lh5)X&+tHX zrUnQzvrw!L_{KLgbmzP$`jqB^?)mQoOQ~6hCpY5^p_R1I@5)#1$7nWzG97GQ=MZ)` zNI%U{DPS{J+c-pjv=n0t5I2>g(<3s&w8$orE>O0Tf>pJg;d{63A;w7zTp4r zUo!<*vYdFEBJ$>5O8xhqK&mO9zK4u6RD2iACnY!LpAc%CUQWC#?jJ7l z(2!+REqYF-WNO(dZD{=NuSy?}m*eF{-p({4GE}$;qh6 zQLe*l35bxu!Zg4v!KhkbqgS%1I?)Ify`Mhe&kcTW;RT$Ai$7#~Qq3eb(dJ9=c8Td0 zSw*bBFD2~Ya#lV-@D?_-BZ_s-vSDf~X~(wdMBDZyCUj-j_x*g^*gMRGR$3!oPBY1u z)c#d#v(Nilh;*JTzUml51-oPWoXy^H24HPghRn=f{;68u`mzqcWE91iGW@~pBsWO} zAR%E!tg`r)+<7vr(qmF|KTARa7yP{0?B(96MN~3^R9IsWb@;2`+3Jy31qTHNRCoV& zi6}96Is4(CH}==$P>Y(kXOMh)dcXXtje}8IMeP%R)|6>)|3Sn?5X!x4STgqENYqAo zrS7Fm6|{wORnnwxD{8>2!E@t@NA0)wgQi78Md!((!9xaJ#qqWEAGh$Bxml6GvBl&2 zx&Mgm#H-*bJ3^^Ce`W?^>biQmmf=>n2}G^T8HwmJ5f(x5uwY?*j@S9MSY{uv!g z1=8J8?aZ~JUH+9}MXxCGMZzMp9u?0G>XDiSmsnU9A#o>!W*IwVo_pdf zBZ(GAC>iI#+dp#HS|(=2KPoeEPr7~AOnFbA`Fx*JuyE?svSk_B0ha(Y#1|ot-5a6k ze#K_2X?~RpNOzZzmterXC{TuaHYKzyTVh_B8sz28z;UdJHyP2XbiWXbx@FM1`X~WZ z(Q~_0A!1&h>rB`fkrBtT<0~#>E8-9Q1@JfM-Iwp?fIt4GZ!7AW}R=A%x@bIlo`RmZQFg@gs0is`t)g21Ehlnk}{s%G7_TEDL#B>x*k^%Rjp&mat(cal(F)_(i+2); cal(F)_(i+3)) = mat(1, 2; 2, 3) mat(cal(F)_(i-1); cal(F)_i) +$ +)) +Also something interesting I noticed for #text(fill: white, html.frame($cal(F) = {0, 1, 1, 2, 3, 5, 8, ...} (cal(F)_0 = 0, i>= 1)$)) is: +#text(fill: white, html.frame( +$ +mat(0, 1; 1, 1)^i = mat(cal(F)_(i-1), cal(F)_(i); cal(F)_(i), cal(F)_(i+1)) +$ +)) + +Playing with that leads to the similar equation + +#text(fill: white, html.frame( +[$cal(F)_(i+j) = cal(F)_(i) cal(F)_(j+1) + cal(F)_(i-1) cal(F)_(j)$,\ thus $cal(F)_(i+3) = 3cal(F)_i + 2cal(F)_(i-1)$] +)) + +An equation to represent this problem is as follows, however this would need a computer to finish in reasonable time. +#text(fill: white, html.frame( +$ + sum_(i=1)^(n: cal(F)_(3n)<4 times 10^6) cal(F)_(3i) +$ +)) + +== Solution + +Since every third number is even, take each third element of the sequence until four million. Three step jumps can be taken as defined by the matrix above. + +```py +>>> class Pair: +... def __init__(self, fi_m1, fi): +... self.fi_m1 = fi_m1 +... self.fi = fi +>>> def f_3(pair): +... return Pair( +... pair.fi_m1 + (2 * pair.fi), +... (2 * pair.fi_m1) + (3 * pair.fi) +... ) +>>> x = Pair(1, 2) +>>> s = 0 +>>> while x.fi < 4e6: +... s += x.fi +... x = f_3(x) +>>> print(s) +4613732 +``` \ No newline at end of file diff --git a/static/style.css b/static/style.css index b415c2d..d1952a8 100644 --- a/static/style.css +++ b/static/style.css @@ -145,7 +145,7 @@ pre { padding: 2pt; } -code { +code, code * { font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Source Code Pro", monospace; font-variant-ligatures: normal; white-space: pre;