mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
Typhoons01 main (#415)
* Create simplify_square_roots_generator * Adopt simplify_square_root to standards * lint fixes * lint fix * standardize line_equation_from_2_points * Fix some lint issues * Fix formatting/lint errors * update docs Co-authored-by: Hardik Gupta <96004638+typhoons01@users.noreply.github.com>
This commit is contained in:
@@ -201,7 +201,8 @@
|
||||
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="p">(</span><span class="s2">"is_composite"</span><span class="p">,</span> <span class="s2">"basic_math"</span><span class="p">),</span>
|
||||
</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="p">(</span><span class="s2">"complementary_and_supplementary_angle"</span><span class="p">,</span> <span class="s2">"geometry"</span><span class="p">),</span>
|
||||
</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="p">(</span><span class="s2">"simplify_square_root"</span><span class="p">,</span> <span class="s2">"basic_math"</span><span class="p">),</span>
|
||||
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="p">]</span>
|
||||
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="p">(</span><span class="s2">"line_equation_from_2_points"</span><span class="p">,</span> <span class="s2">"algebra"</span><span class="p">),</span>
|
||||
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="p">]</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -552,11 +552,11 @@
|
||||
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="n">f</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="n">a</span> <span class="o">=</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">factors</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
|
||||
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">if</span> <span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">&</span><span class="mi">1</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">(</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">if</span> <span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&</span> <span class="mi">1</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">(</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">((</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">b</span> <span class="o">*=</span> <span class="n">i</span>
|
||||
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">((</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">b</span> <span class="o">*=</span> <span class="n">i</span>
|
||||
</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="k">if</span> <span class="n">a</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">b</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="k">return</span> <span class="n">simplify_square_root</span><span class="p">(</span><span class="n">max_variable</span><span class="p">)</span>
|
||||
</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
@@ -1642,11 +1642,11 @@
|
||||
</span><span id="simplify_square_root-412"><a href="#simplify_square_root-412"><span class="linenos">412</span></a> <span class="n">f</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
</span><span id="simplify_square_root-413"><a href="#simplify_square_root-413"><span class="linenos">413</span></a> <span class="n">a</span> <span class="o">=</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
</span><span id="simplify_square_root-414"><a href="#simplify_square_root-414"><span class="linenos">414</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">factors</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
|
||||
</span><span id="simplify_square_root-415"><a href="#simplify_square_root-415"><span class="linenos">415</span></a> <span class="k">if</span> <span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">&</span><span class="mi">1</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
</span><span id="simplify_square_root-416"><a href="#simplify_square_root-416"><span class="linenos">416</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">(</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="simplify_square_root-415"><a href="#simplify_square_root-415"><span class="linenos">415</span></a> <span class="k">if</span> <span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&</span> <span class="mi">1</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
</span><span id="simplify_square_root-416"><a href="#simplify_square_root-416"><span class="linenos">416</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">(</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="simplify_square_root-417"><a href="#simplify_square_root-417"><span class="linenos">417</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="simplify_square_root-418"><a href="#simplify_square_root-418"><span class="linenos">418</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">((</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="simplify_square_root-419"><a href="#simplify_square_root-419"><span class="linenos">419</span></a> <span class="n">b</span> <span class="o">*=</span> <span class="n">i</span>
|
||||
</span><span id="simplify_square_root-418"><a href="#simplify_square_root-418"><span class="linenos">418</span></a> <span class="n">a</span> <span class="o">*=</span> <span class="n">i</span> <span class="o">**</span> <span class="p">((</span><span class="n">factors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="simplify_square_root-419"><a href="#simplify_square_root-419"><span class="linenos">419</span></a> <span class="n">b</span> <span class="o">*=</span> <span class="n">i</span>
|
||||
</span><span id="simplify_square_root-420"><a href="#simplify_square_root-420"><span class="linenos">420</span></a> <span class="k">if</span> <span class="n">a</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">b</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
</span><span id="simplify_square_root-421"><a href="#simplify_square_root-421"><span class="linenos">421</span></a> <span class="k">return</span> <span class="n">simplify_square_root</span><span class="p">(</span><span class="n">max_variable</span><span class="p">)</span>
|
||||
</span><span id="simplify_square_root-422"><a href="#simplify_square_root-422"><span class="linenos">422</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -126,4 +126,5 @@ gen_list = [
|
||||
("is_composite", "basic_math"),
|
||||
("complementary_and_supplementary_angle", "geometry"),
|
||||
("simplify_square_root", "basic_math"),
|
||||
("line_equation_from_2_points", "algebra"),
|
||||
]
|
||||
|
||||
@@ -487,6 +487,48 @@ def linear_equations(n=2, var_range=20, coeff_range=20):
|
||||
return f'Given the equations ${problem}$, solve for $x$ and $y$', f'${solution}$'
|
||||
|
||||
|
||||
def line_equation_from_2_points(max_val=20):
|
||||
r"""Equation of Line from Two Points
|
||||
|
||||
| Ex. Problem | Ex. Solution |
|
||||
| --- | --- |
|
||||
| Find the equation of the line passing through the points $(-19,-8)$ and $(-2,0)$. | $y=\frac{8}{17}x+\frac{16}{17}$ |
|
||||
"""
|
||||
x1 = random.randint(-max_val, max_val)
|
||||
x2 = random.randint(-max_val, max_val)
|
||||
if x1 == x2:
|
||||
return line_equation_from_2_points(max_val=max_val)
|
||||
y1 = random.randint(-max_val, max_val)
|
||||
y2 = random.randint(-max_val, max_val)
|
||||
m1 = (y2 - y1) // math.gcd(y2 - y1, x2 - x1)
|
||||
m2 = (x2 - x1) // math.gcd(y2 - y1, x2 - x1)
|
||||
c1 = (y1 * (x2 - x1) - (y2 - y1) * x1) // math.gcd(y1 * (x2 - x1) - (y2 - y1) * x1, (x2 - x1))
|
||||
c2 = (x2 - x1) // math.gcd(y1 * (x2 - x1) - (y2 - y1) * x1, (x2 - x1))
|
||||
c = rf"{'+' if c1 >= 0 else '-'}\frac{{{abs(c1)}}}{{{c2}}}" if c1 != 0 else ""
|
||||
if c2 < 0:
|
||||
c2 = -c2
|
||||
c1 = -c1
|
||||
c = rf"{'+' if c1 >= 0 else '-'}\frac{{{abs(c1)}}}{{{c2}}}"
|
||||
if c2 == 1:
|
||||
c = f"{c1:+}"
|
||||
|
||||
problem = f'Find the equation of the line passing through the points $({x1},{y1})$ and $({x2},{y2})$.'
|
||||
|
||||
if m1 == 0:
|
||||
return problem, f"$y={c}$"
|
||||
if m2 < 0:
|
||||
m1 = -m1
|
||||
m2 = -m2
|
||||
if m2 == 1:
|
||||
if m1 == 1:
|
||||
return problem, f"$y=x{c}$"
|
||||
if m1 == -1:
|
||||
return problem, f"$y=-x{c}$"
|
||||
return problem, f"y={m1}x{c}"
|
||||
|
||||
return problem, rf"$y=\frac{{{m1}}}{{{m2}}}x{c}$"
|
||||
|
||||
|
||||
def log(max_base=3, max_val=8):
|
||||
r"""Logarithm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user