math / modules /addition_bases.py
Sina Media Lab
Add application file 4
32f2e18
raw
history blame
1.19 kB
import random
title = "Addition in Different Bases"
description = "This module helps you practice adding numbers in different bases such as binary, octal, and hexadecimal."
def generate_question():
base = random.choice([2, 8, 16])
num1 = random.randint(1, 15)
num2 = random.randint(1, 15)
if base == 2:
correct_answer = bin(num1 + num2)[2:]
elif base == 8:
correct_answer = oct(num1 + num2)[2:]
else:
correct_answer = hex(num1 + num2)[2:]
question = f"Add {num1} and {num2} in base {base}."
options = [correct_answer]
# Generate incorrect options
while len(options) < 5:
fake_option = bin(random.randint(1, 30))[2:]
if fake_option not in options:
options.append(fake_option)
random.shuffle(options)
explanation = (
f"The sum of {num1} and {num2} in base {base} is {correct_answer}."
"\n\n**Step-by-step solution:**\n"
"1. Convert the numbers to decimal if necessary.\n"
"2. Perform the addition in decimal.\n"
"3. Convert the result back to the base if needed."
)
return question, options, correct_answer, explanation