问题:在1~100中随机性和确定性搜索39
一、确定性过程搜索可以用顺序和二分两种方法直接在1到100中搜索39
1.顺序(直接用for循环搜索)
for num in range(1,101):
if num==39:
print('There is 39')
break
print(num)
运行结果
2.二分方法
def dsearch(alist,data):
n=len(alist)
first=0
last=n-1
while first<=last:
mid=(first+last)//2
if alist[mid] > data:
print(list[mid])
last=mid-1
elif alist[mid] < data:
print(list[mid])
first=mid+1
else:
return True
return False
lis=list(range(1,101))
if dsearch(lis,39):
print("This is 39")
运行结果
二、随机性过程搜索需要调用随机数函数
1.chioce()函数从序列的元素中随机挑选一个元素
import random
while True:
num=random.choice(range(1,100))
print(num)
if num==39:
print('This is 39')
break
运行结果
2.randint()函数随机生成一个整数int类型。random.randint(a,b),用于生成一个指定范围内 的整数。a为下限,b为上限,生成的x为a<=x<=b
import random
while True:
num=random.randint(1,100)
print(num)
if num==39:
print('This is 39')
break
运行结果
此外还有其他的随机数函数但不适用本题目
函数 | 描述 |
---|---|
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
浅薄观点,欢迎指正。