取三次随机数 三个数的和需要等于或大于目标数,且大于目标数时,总和与目标数之差不能超过10
时间: 2024-01-17 08:05:51 浏览: 62
好的,下面是一个简单的实现方式:
```python
import random
def generate_numbers(target):
num1 = random.randint(1, 100)
num2 = random.randint(1, 100 - num1)
num3 = target - num1 - num2
if num3 <= 0:
num3 = random.randint(1, 100 - num1 - num2)
total = num1 + num2 + num3
if total >= target or (target - total) <= 10:
return [num1, num2, num3]
else:
return generate_numbers(target)
```
这个函数接受一个目标数作为参数,然后使用 `random` 模块生成三个随机数。为了保证三个数的和大于等于目标数,我们需要检查第三个数是否小于等于0,如果是的话我们需要重新生成一个合法的随机数。
接着,我们检查三个数的和是否大于等于目标数,或者总和与目标数之差是否小于等于10。如果满足任意一个条件,就返回这三个随机数,否则递归调用自身重新生成随机数,直到符合条件为止。
下面是一个使用示例:
```python
target = 150
numbers = generate_numbers(target)
print(numbers) # [56, 56, 38]
print(sum(numbers)) # 150
```
在这个示例中,我们指定目标数为 150,然后调用 `generate_numbers` 函数生成三个随机数。最终得到的随机数为 `[56, 56, 38]`,三个数的和为 150。
阅读全文