| |
|
|
| 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(): |
| if base == 16: |
| valid_digits = '0123456789ABCDEF' |
| else: |
| valid_digits = ''.join([str(i) for i in range(base)]) |
| return ''.join([random.choice(valid_digits) for _ in range(length)]) |
| |
| def generate_invalid_number(): |
| if base == 16: |
| valid_digits = '0123456789ABCDEF' |
| invalid_digit = random.choice('GHIJKLMNOPQRSTUVWXYZ') |
| else: |
| valid_digits = ''.join([str(i) for i in range(base)]) |
| if base < 10: |
| invalid_digit = str(random.randint(base, 9)) |
| else: |
| invalid_digit = random.choice('GHIJKLMNOPQRSTUVWXYZ') |
| |
| |
| valid_number = list(generate_valid_number()) |
| replace_index = random.randint(0, length - 1) |
| valid_number[replace_index] = invalid_digit |
| return ''.join(valid_number) |
|
|
| 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 allowed for base {base}." |
| 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 |
| } |
|
|