方法1: ランダムな数での推測 この方法では、プログラムがランダムに生成した数を当てるゲームです。プレイヤーは予測を行い、プログラムが生成した数と比較します。
import random
def guess_number_random():
target_number = random.randint(1, 1000)
attempts = 0
while True:
guess = int(input("1から1000までの数を予想してください: "))
attempts += 1
if guess < target_number:
print("もっと大きい数を予想してください。")
elif guess > target_number:
print("もっと小さい数を予想してください。")
else:
print("正解です!")
break
print(f"正解までに{attempts}回の予想が必要でした。")
guess_number_random()
方法2: 二分探索法による推測 この方法では、プログラムが生成した数を二分探索法を用いて当てるゲームです。プレイヤーは予測を行い、プログラムが生成した数と比較します。
def guess_number_binary_search():
lower_bound = 1
upper_bound = 1000
target_number = random.randint(lower_bound, upper_bound)
attempts = 0
while True:
guess = (lower_bound + upper_bound) // 2
attempts += 1
if guess < target_number:
print("もっと大きい数を予想してください。")
lower_bound = guess + 1
elif guess > target_number:
print("もっと小さい数を予想してください。")
upper_bound = guess - 1
else:
print("正解です!")
break
print(f"正解までに{attempts}回の予想が必要でした。")
guess_number_binary_search()