我是一名编程初学者,我想知道如何生成满足条件的三个整数.

例子:

我们得到n = 30,我们被要求生成三个整数a,b和c,所以7*a + 5*b + 3*c = n.

我正在使用Python 3.

我的try :

x = int(input())
c = []
k = []
w = []
for i in range(x):
    for j in range(x):
        for h in range(x):
           if 7*i + 5*j + 3*h = x:
              c.append(i)
              k.append(j)
              w.append(h)
if len(c) == len(k) == len(w) 
    print(-1)
else: 
    print(str(k[0]) + ' ' + str(c[0]) + ' ' + str(w[0]))

推荐答案

import numpy as np


def generate_answer(n: int, low_limit:int, high_limit: int):
    while True:
        a = np.random.randint(low_limit, high_limit + 1, 1)[0]
        b = np.random.randint(low_limit, high_limit + 1, 1)[0]
        c = (n - 7 * a - 5 * b) / 3.0
        if int(c) == c and low_limit <= c <= high_limit:
            break

    return a, b, int(c)


if __name__ == "__main__":
    n = 30
    ans = generate_answer(low_limit=-5, high_limit=50, n=n)
    assert ans[0] * 7 + ans[1] * 5 + ans[2] * 3 == n
    print(ans)

如果你 Select a,b,c中的两个,你就知道第三个了.在这种情况下,我将a和b的整数随机化,然后发现c乘以c = (n - 7 * a - 5 * b) / 3.0.

确保c是一个整数,并且在允许的范围内,我们就完成了.

如果不是,请再次随机化.


如果你想创造所有的可能性,

def generate_all_answers(n: int, low_limit:int, high_limit: int):
    results = []
    for a in range(low_limit, high_limit + 1):
        for b in range(low_limit, high_limit + 1):
            c = (n - 7 * a - 5 * b) / 3.0
            if int(c) == c and low_limit <= c <= high_limit:
                results.append((a, b, int(c)))

    return results

Python-3.x相关问答推荐

IPython似乎已安装但无法运行

小部件padx和包方法ipadx有什么不同?

Django内置注销视图`不允许的方法(GET):/USERS/LOGOUT/`

requests.exceptions.InvalidSchema:未找到连接适配器.我试图遍历一个列表

如何立即从asyncio.Task获取异常?

删除列表中的第二个出现

单击图形时 plotly graph_objects 持久性数据

txt 文件与不同的分隔符到整数列表

过滤阈值大小数据以使用 Pyspark 或 Python 读取

如何在pyspark的列中按连续1分组并保持具有特定大小的组

Einsum 对于张量乘法很慢

当我判断另一个 checkButton 时,如何判断两个 python tkinter checkButtons?

spaCy 中的匹配模式返回空结果

合并两个numpy数组

错误:预期语句,发现 py:Dedent

在带有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装较早版本的 Python(3.8 之前)失败

当 None 被传递时,如何将默认值应用于 python 数据类字段?

TypeError:多个基地有实例布局冲突

如何创建一个永远在其上运行滚动协程的事件循环?

Django 教程 unicode 不起作用