1. 二分法猜数游戏
import randomx = random.randint(1, 1024)
- 随机产生一个给定范围内整数,[1,1024]
- 循环10次猜数
- 输入猜的整数
- 如果猜中
- 输出猜 中了
- 终止循环
- 否则如果猜的数大于产生的数
- 输出猜的数大了
- 否则
- 输出猜的数小了
- 其10次没猜中,输出你没猜中 ```python import random
x = random.randint(1, 1024) # 随机产生一个0-1024之间的整数 for i in range(10): # 允许猜10次 guess = int(input()) # 输入猜的整数 if guess == x: print(‘猜中了’) # 猜中则终止循环 break elif guess > x: print(‘猜的数大了’) else: print(‘猜的数小了’) else: print(‘你没猜中哦’)
<a name="KMczH"></a># 2. 二分法求平方根<br />设计一个用二分法计算一个大于或等于 1 的实数 n 的平方根的函数sqrt_binary(n),计算精度控制在计算结果的平方与输入的误差不大于1e-6。<br />注:初始区间取[0,n]```pythonimport mathdef sqrt_binary(num):low, high= 0,numwhile True:x = (high + low)/2if abs(x**2 - num)<=1e-6:return xelif x**2 - num<0:low = xelse:high = xnum = float(input())if num >=1:print(sqrt_binary(num))print(math.sqrt(num))
3.二分法求函数的零点
描述
现有方程:f(x) = x5-15x4+85x3-225x2+274x-121, 已知f(x)在[1.5,2.4]区间有且只有一个根,用二分法求解该根。
输入格式
输入一个正整数n,当f(x)值小于10-n时认为函数值为0
输出格式
输出方程在[1.5,2.4]区间的根,精确到小数点后第6位
def f(x):return x ** 5 - 15 * x ** 4 + 85 * x ** 3 - 225 * x ** 2 + 274 * x - 121def bisection_method(low, high):while True:mid = (low + high) / 2if abs(f(mid)) < 1 * 10 ** -n:return '{:.6f}'.format(mid)elif f(mid) < 0:high = midelse:low = midif __name__ == '__main__':n = int(input())Low, High = 1.5, 2.4print(bisection_method(Low, High))
