|
|
|
|
|
title = "Validity of Numbers in Bases" |
|
description = "This module helps determine the validity of numbers in different bases like binary, octal, decimal, and hexadecimal." |
|
|
|
def generate_question(): |
|
import random |
|
|
|
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)]) |
|
if base < 10: |
|
invalid_digit = str(random.randint(base, 9)) |
|
else: |
|
invalid_digit = random.choice('ABCDEF') |
|
return valid_digits + invalid_digit |
|
|
|
correct_answer = generate_invalid_number() |
|
options = [correct_answer] |
|
|
|
|
|
while len(options) < 4: |
|
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}." |
|
step_by_step_solution = [ |
|
"Step 1: Identify the valid digits for the base.", |
|
"Step 2: Check each option to see if it contains any invalid digits.", |
|
"Step 3: The correct answer will have a digit that is not allowed in the specified base." |
|
] |
|
|
|
return { |
|
"question": question, |
|
"options": options, |
|
"correct_answer": correct_answer, |
|
"explanation": explanation, |
|
"step_by_step_solution": step_by_step_solution |
|
} |
|
|