math / modules /valid_invalid_numbers.py
Sina Media Lab
Add application file 4
32f2e18
raw
history blame
1.51 kB
import random
title = "Validity of Numbers in Bases"
description = "This module helps you determine whether a given number is valid or invalid in various bases like binary, octal, decimal, and hexadecimal."
def generate_question():
base = random.choice([2, 8, 10, 16])
length = random.randint(3, 5)
def generate_valid_number():
return ''.join([str(random.randint(0, base - 1)) for _ in range(length)])
def generate_invalid_number():
valid_digits = ''.join([str(random.randint(0, base - 1)) for _ in range(length - 1)])
invalid_digit = str(random.randint(base, 9))
return valid_digits + invalid_digit
correct_answer = generate_invalid_number()
options = [correct_answer]
# Generate valid options
while len(options) < 5:
valid_option = generate_valid_number()
if valid_option not in options:
options.append(valid_option)
random.shuffle(options)
question = f"Which of the following is an invalid number in base {base}?"
explanation = (
f"The number {correct_answer} is invalid in base {base} because it contains a digit outside the range 0-{base-1}."
"\n\n**Step-by-step solution:**\n"
"1. Identify the valid digits for the base.\n"
"2. Check each option to see if it contains any invalid digits.\n"
"3. The correct answer will have a digit that is not allowed in the specified base."
)
return question, options, correct_answer, explanation