# modules/valid_invalid_numbers.py 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)) # For bases < 10, pick an invalid digit from [base, 9] else: invalid_digit = random.choice('ABCDEF') # For bases >= 10, pick a hex digit to make it invalid return valid_digits + invalid_digit correct_answer = generate_invalid_number() options = [correct_answer] # Generate valid options 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 }