利用Python请编程实现: 1、定义-一个函数mfind(low,high,mid), 实现在一个有序的列表里面查找用户输入的数x,如果x存在那么函数的返回值为x的索引,如果不存在,则函数的返回值为x不存在。 2、主程序中生成列表Ist,有20个元素,且元素均为1-1000范围内的随机整数。 3、x从键盘输入,并进行测试
时间: 2024-03-13 20:46:37 浏览: 80
mfind:在矩阵中查找匹配的行或列-matlab开发
以下是利用Python编程实现您所需的功能:
```python
import random
def mfind(low, high, mid):
if low > high:
return "x不存在"
else:
if mid == lst[mid]:
return mid
elif mid < lst[mid]:
return mfind(low, mid-1, (low+mid-1)//2)
else:
return mfind(mid+1, high, (mid+1+high)//2)
lst = [random.randint(1, 1000) for _ in range(20)]
lst.sort()
print(lst)
x = int(input("请输入要查找的数x:"))
result = mfind(0, len(lst)-1, len(lst)//2)
print("x的索引为:", result)
```
这段代码中,首先我们定义了一个函数 `mfind`,它接受三个参数:列表的最小索引 `low`、列表的最大索引 `high` 和中间值 `mid`,其中 `mid` 的初始值为列表长度的一半。函数的作用是在给定的列表中查找用户输入的数 `x`,如果找到了,返回它在列表中的索引;如果没有找到,返回字符串 "x不存在"。
接着,在主程序中,我们生成了一个包含20个随机整数的列表 `lst`,并将它排序输出。我们从键盘输入要查找的数 `x`,然后调用 `mfind` 函数进行查找,最后输出结果。
阅读全文