Sina Media Lab commited on
Commit
4c02307
·
1 Parent(s): bc85220
Files changed (1) hide show
  1. modules/conversion_bases.py +7 -11
modules/conversion_bases.py CHANGED
@@ -15,17 +15,13 @@ def generate_question():
15
  number = ''.join(random.choice(digits) for _ in range(4))
16
 
17
  def convert_number(number, from_base, to_base):
18
- # Convert from `from_base` to base 10 using SymPy
19
- base_10 = sp.Integer(number, from_base)
20
- # Convert from base 10 to `to_base`
21
  if to_base == 10:
22
  return str(base_10)
23
- elif to_base == 16:
24
- return sp.base_repr(base_10, base=16).upper()
25
- elif to_base == 8:
26
- return sp.base_repr(base_10, base=8)
27
- elif to_base == 2:
28
- return sp.base_repr(base_10, base=2)
29
 
30
  correct_answer = convert_number(number, from_base, to_base)
31
  options = [correct_answer]
@@ -45,9 +41,9 @@ def generate_question():
45
  # Step-by-step solution using SymPy
46
  step_by_step_solution = [
47
  f"Step 1: Convert the number {number} from base {from_base} to base 10:",
48
- f" {number} (base {from_base}) = {sp.Integer(number, from_base)} (base 10).",
49
  f"Step 2: Convert the base 10 number to base {to_base}:",
50
- f" {sp.Integer(number, from_base)} (base 10) = {correct_answer} (base {to_base}).",
51
  f"Step 3: The correct answer is {correct_answer}."
52
  ]
53
 
 
15
  number = ''.join(random.choice(digits) for _ in range(4))
16
 
17
  def convert_number(number, from_base, to_base):
18
+ # Convert from `from_base` to base 10 using Python's built-in `int`
19
+ base_10 = int(number, from_base)
20
+ # Convert from base 10 to `to_base` using SymPy's `base_repr`
21
  if to_base == 10:
22
  return str(base_10)
23
+ else:
24
+ return sp.base_repr(base_10, base=to_base).upper()
 
 
 
 
25
 
26
  correct_answer = convert_number(number, from_base, to_base)
27
  options = [correct_answer]
 
41
  # Step-by-step solution using SymPy
42
  step_by_step_solution = [
43
  f"Step 1: Convert the number {number} from base {from_base} to base 10:",
44
+ f" {number} (base {from_base}) = {base_10} (base 10).",
45
  f"Step 2: Convert the base 10 number to base {to_base}:",
46
+ f" {base_10} (base 10) = {correct_answer} (base {to_base}).",
47
  f"Step 3: The correct answer is {correct_answer}."
48
  ]
49