From c31cb1c699c6a77a0ea90cfb3a5acb62a3f52ac6 Mon Sep 17 00:00:00 2001 From: Accusedbold Date: Thu, 30 Apr 2026 09:39:02 -0400 Subject: [PATCH] Just the tricky solution left --- __pycache__/algebraic_steps.cpython-313.pyc | Bin 20715 -> 20400 bytes __pycache__/problem_generator.cpython-313.pyc | Bin 13566 -> 13516 bytes algebraic_steps.py | 23 +++++++++++------- problem_generator.py | 4 --- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/__pycache__/algebraic_steps.cpython-313.pyc b/__pycache__/algebraic_steps.cpython-313.pyc index a498a0656ecfd3ad166e100a7a9473e929b6fc61..a54cb753660ffb4a9e377df01879a74b00b6a55c 100644 GIT binary patch delta 1289 zcmZuxO>7fK6rR~#J2tx;+xRc!&vxpRIfk1nydT9?m^#H0wt?jSc-g-$B4wYJ|eY2^PQgtMM^Y;CG z^X9!b{&j`kU#9AYs_r1T_GCAvCRbJWfyOE&yf35j32kWF5zVXe(CKHLN@q5 z+ycSKQEG(?k#@KpaSO}~A4k}ZD@bt#&o9-W_ux^}Q#0x4g_{Q#ef%sDe;fA@>e)HT z@DRZqH33#f+8Wvj(P&zP%WY0kNK4QYZ-(1riJ`mV7*jDU5i;rKsnWz?KChb#v*kiD zuS+?0y2Os5m1zhekzK=0x1KtiD^GBnE+WE*hXTjnL&II3+hG(cq-Nh)N&RedR>hj! zIKO{>e@$_Jt+YN?TCZo8$8U^3QJ(*CTk}K-{AML~*HeWkwgu}Wx$9Q^vE21Y>H^=P z7GX(*_Q8RdDp*jgJJw#%NLs>k{)6TGwpU&Q(-XWOm*Ka(HM$DM*O2A{`|o7h#1hd?4h*WgSd_?F6EM};v2 zqcdlXRvRvx0}w|W<6YLRh2qQ`1(qup*qdC*M}y6CIKjRoyheov(YQGn>-l^6J6hXi&XHzT`}fRf+Od|a{0;Q@jqfHE>j@4(nd z6aDMq>5*mn$_h8~aJIm~cr8Y;czJc{)J$;_AI_aEuSt|j{I&Y)^hO*9>%;Wu`!vNC zQ4X2dHuDlHwwa%y$WfO#7{lU%uHH^k>_NbG8ESgJ94SrO82aL XQj~huj|moPUw5h0zJXdh3!v-Ys7ENG delta 1708 zcmZuxT})e596#sYTPXdyl+wZ=!0q^21!Wl`D*_WJrDal=T`m%9hJ{vWg16+{5|u33 zd}DsC><_NW5?I`WzBmlV%;=l?v_wln3~5M43@?Tkg~SIFr{`QKAG-7KJOBUrf1Ll< zIV($e=PtJHS*<2S*WZtJw?rp%U- z*FqK9vY}=!M@uLy!cXn>*ba%)m1Vr{Du)t1hq|@*?9ET!TD?u+mZ9Fyk4EOisqtaVZ+tk|aJlos5kn)UlZK zW;{6|#on4CF-?mn)HVqob_`+@NS&3HhA9$Plca?D%8LInBtxKd5))9_Et;ja18bdw zrQ1S5#?tat^nrIZk!kT~OnvJ@VAFjTp1Lp(A3R-ft)1#GAO*>oCCv&bb21W;0|jW^ zR4#l_F@%PTWL_4$yov`zgv?0V&&LoV9JM6<6#S%{q6ZU&ZG2XUkZ~<5ux!W}J<@mz zk|dETx@Ya9({XtCg4lYSa-Xx98!2%eZJ5OrzR`N!w_&xX+^N&=4bS3Du_*QIva%*N zyes^{Bb#f>EW&Vq1veo;sLR{2Mq9-a(3gzE`8iraxjvulxlD7V1H&okvJox?i_Zso zXuA9{C)_b7{F9w1{ACm1s&e?b%Vs!78_dDY3g?AGZ3zwZ=1MjC+KCYPW8RO2C=20y z5Dm^MA$KDi&%29{&a#nFDU z9$`mLqF3ZYUm5(;-QslSPLKAm3#1-5J_WD%s_g-KQ+ZByV9CO{)8n@O-{W>qlf5FR zE$5XXT0p(}aNf7?vEKS*ZxXEg9NzrUOdcDiHfhE{M~iM|#!Ay#EJ_(mqZElobDUXA z#-`3mYy{ijH{Z*~Y+hU&>54|7x7Uw%;Qij3Ya+Qq!_fr;)05;TW%SoY78te2V2AMy4VpnKdVp6EULG8dV|V zS-bvvq0ZlmZ^0FRji|d|aGyPd9hmc%c5WN3sl54Q+6ObK$&9Uf-B`2bD48{GxJqZu zzvrRi(%as7?`+Se#h&WDQlL44)KSG*1G2*F)9RRq*K0}^;PFM5NmpYatX96bh%b5g5MjT(-(w($ z&a!k=k})-UQ^TVuxL-t*N~XJK~;9LJV*HCsUjMT zERzl8A)*1QGLxCLv?kvX;F@f%rNGP)%sDwqOBYOcX-RVe`IgLiT)|wE*J+7!bBD6= zF&Hz4G6wTZzMy5!!s}O*Jo%!i3{#QFWMl0$T$w=o&jE39{A7ME|H=QQ1tb9Spu>C&qrdeAi7u|sB1pAt0Biheoj|2j)O96K=Kef zx2rYBA#+YQ29ColEFhAH4MduAyRmZIVk;@iOwO*HT&N295%W6DWy57c16`dE+Y^Zdv0E1tjNeO#mM%V SnSn{;0~3(-(PHvl6GZ@Fk#q|H delta 461 zcmX?;`7e|AGcPX}0}!me|0&aWBkx6ZMwQ9;)vvMyv*j^OHk8+%d|$&9#9;<=>@`DK zg4y#}z?}V>rcA*clRs%{GjdLr)6!(-3g({drKJm|tF)v!fqYBmJg#7#$@8?txp_m` z_!x|tLm7klCLho;XW{oNN}haCR9x^S3()=|5g_rB6~q#qEUCSQD;vl>2gJo?lli&) znQw4#PL|P80n>Im1}OYKo&I1$21%2jx5O-eJ`&Ua`H77|+>H^$EY=4aF`wJjlH(vh zr>h;uK^Zn6d5DwSjhW++HK!W~$6*c@5GlY0B5k?dcsXvdl@w(rXID-xR1w?UtSiRE zm^0ZyS$Xna{aDs~pmFav%Nx99lrI7@i%LL5A&4l36JW8D$=XJC{2)(gvfN@VsVqn> zE-IZ|VPwo&4HRRWyuoOu5lFTOWMUCWtcVvx@PG(TAaRSsCO1E&G$+-rs20d&1ma?^ e&DF+=i~@3uY@eAKm^3~x0a+g%7$>hbQ3L>0Kz5M; diff --git a/algebraic_steps.py b/algebraic_steps.py index 221708d..9e532fa 100644 --- a/algebraic_steps.py +++ b/algebraic_steps.py @@ -410,7 +410,7 @@ def distribute_step(equation): left_expr = parse_expr(left, transformations=transformations, evaluate=False) right_expr = parse_expr(right, transformations=transformations, evaluate=False) - print(f"calling distribute_once with expression: {sstr(left_expr)}") + #print(f"calling distribute_once with expression: {sstr(left_expr)}") new_left_expr, distributed = distribute_once(left_expr) if distributed != None: @@ -423,10 +423,15 @@ def distribute_step(equation): return steps def build_ordered_add(args): - expr = args[0] - for a in args[1:]: - expr = Add(expr, a, evaluate=False) - return expr + flat_args = [] + + for arg in args: + if arg.is_Add: + flat_args.extend(arg.args) + else: + flat_args.append(arg) + + return Add(*flat_args, evaluate=False) def distribute_once(expr): expr = flatten_mul(expr) @@ -437,14 +442,14 @@ def distribute_once(expr): # ------------------------------------------------------------ if expr.is_Mul: - print(f"expr: {sstr(expr)}") + #print(f"expr: {sstr(expr)}") add_part = None other_parts = [] # extract Add factor + everything else for arg in expr.args: - print(f"arg: {sstr(arg)}") + #print(f"arg: {sstr(arg)}") if arg.is_Add and add_part is None: add_part = arg @@ -455,7 +460,7 @@ def distribute_once(expr): # DISTRIBUTION RULE # -------------------------------------------------------- if add_part is not None: - print(f"expr used: {sstr(expr)}, add used: {sstr(add_part)}") + #print(f"expr used: {sstr(expr)}, add used: {sstr(add_part)}") distributed_value = Mul(*other_parts) @@ -472,7 +477,7 @@ def distribute_once(expr): # STEP 2: PRIORITY-BASED RECURSION (IMPORTANT FIX) # ------------------------------------------------------------ if expr.args: - print(f"step2 args:{expr.args}") + #print(f"step2 args:{expr.args}") # PASS 1: ONLY distributable Mul(Add(...)) for i, arg in enumerate(expr.args): if arg.is_Mul and arg.has(Add): diff --git a/problem_generator.py b/problem_generator.py index b65fb91..50fdc25 100644 --- a/problem_generator.py +++ b/problem_generator.py @@ -208,14 +208,10 @@ def generate_binomial (): #a(x + b) + c(x + d) = e ans = random.choice([i for i in range(-15, 16)]) a = random.choice([i for i in range(-5, 6) if i != 0]) - a = 4 b = random.choice([i for i in range(-5, 6)]) - b = 4 c = random.choice([i for i in range(-5, 6) if i != 0 and i != -a]) - c = 1 d = random.choice([i for i in range(-5, 6)]) - d = 5 e = a * (ans + b) + c * (ans + d)