import random def generate_question(): binary_number = bin(random.randint(1, 15))[2:].zfill(4) def twos_complement(binary_str): n = len(binary_str) ones_complement = ''.join('1' if bit == '0' else '0' for bit in binary_str) twos_complement_result = bin(int(ones_complement, 2) + 1)[2:].zfill(n) return twos_complement_result[-n:] correct_answer = twos_complement(binary_number) steps = [ f"Start with the binary number: {binary_number}.", f"Find the 1's complement by flipping each bit: {''.join('1' if bit == '0' else '0' for bit in binary_number)}.", f"Add 1 to the 1's complement to get the 2's complement: {correct_answer}.", ] question_data = { "question": f"What is the 2's complement of the binary number {binary_number}?", "options": [correct_answer] + [bin(random.randint(1, 15))[2:].zfill(4) for _ in range(3)], "correct_answer": correct_answer, "explanation": f"The 2's complement of the binary number {binary_number} is {correct_answer}.", "step_by_step_solution": steps } return question_data