- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个简单的问题想解决。这是:
([][][]/[][][]) + ([][]/[][]) = 1
目的是用数字 0-9 使上面的陈述成立,并且每个数字只能使用一次。总和的每一部分也等于一半。例如(1/2)+(1/2)=1
我已经开始了,但似乎没有用.这是我已经开始的代码
from itertools import permutations
target = 1
for a,b,c,d,e,f,g,h,i,j in permutations(range(0,10), 10):
m = ((100*a + 10*b + c)/(100*d + 10*e + f)) #works out first half of sum
n = ((10*g + h)/(10*i + j)) #works out second half of sum
value = m + n #works out the answer
if value == target and (bool(m) == bool(1/2)) and (bool(n) == bool(1/2)): # checks if answer = the target and makes sure both parts of the sum are equal to a half
print("{}{}{}/{}{}{} + {}{}/{}{} = {}".format(a,b,c,d,e,f,g,h,i,j,target)) #prints out the answer
运行时我的结果是一个空白提示,只是等待,然后什么都没有出现,提示关闭。
当通过 python IDLE 运行它时,我也得到了相同的响应。它等待并且控制台未检测到任何错误。
这表明我的函数没有问题,但是 for 循环有问题,我似乎找不到错误
为什么它不起作用,如何修复?
最佳答案
如果使用 Python2,添加
from __future__ import division
使用浮点除法。否则 1/2
等于 0
。这也是影响m
和n
的计算,因为所有的输入都是整数但您希望 m
和 n
为 float 。
如果使用 Python3,
target = input("what number do you want to reach? ")
是一个错误,因为 input
返回一个 str
。你需要 target
成为一个 float (或者,正如 DSM 指出的那样,一个分数):
target = float(input("what number do you want to reach? "))
bool(m)==bool(1/2)
是一个错误。没有浮点除法,bool(1/2)
等于 bool(0)
即错误
。使用 float 除法,则 bool(1/2)
为 True
,但是bool(m)==bool(1/2)
将测试 bool(m) == True
。对于 0 以外的 m
的任何浮点值,这将是 True
。相反,要检查 m
是否等于 target/2
,请使用
abs(m - target/2) < eps
eps
的一些小值。不要使用 m == target/2
因为检查 float 是否相等可能会失败由于实数的浮点表示不精确数。
from __future__ import division
from itertools import permutations
eps = 1e-8
target = float(input("what number do you want to reach? "))
for a,b,c,d,e,f,g,h,i,j in permutations(range(0,10), 10):
m = ((100*a + 10*b + c)/(100*d + 10*e + f)) #works out first half of sum
n = ((10*g + h)/(10*i + j)) #works out second half of sum
value = m + n #works out the answer
if value == target and abs(m - target/2) < eps and abs(n - target/2) < eps: # checks if answer = the target and makes sure both parts of the sum are equal to a half
print("{}{}{}/{}{}{} + {}{}/{}{} = {}".format(a,b,c,d,e,f,g,h,i,j,target)) #prints out the answer
产量
what number do you want to reach? 1
067/134 + 29/58 = 1.0
069/138 + 27/54 = 1.0
073/146 + 29/58 = 1.0
079/158 + 23/46 = 1.0
079/158 + 32/64 = 1.0
093/186 + 27/54 = 1.0
135/270 + 48/96 = 1.0
138/276 + 45/90 = 1.0
145/290 + 38/76 = 1.0
148/296 + 35/70 = 1.0
185/370 + 46/92 = 1.0
186/372 + 45/90 = 1.0
267/534 + 09/18 = 1.0
269/538 + 07/14 = 1.0
273/546 + 09/18 = 1.0
293/586 + 07/14 = 1.0
307/614 + 29/58 = 1.0
309/618 + 27/54 = 1.0
327/654 + 09/18 = 1.0
329/658 + 07/14 = 1.0
351/702 + 48/96 = 1.0
381/762 + 45/90 = 1.0
451/902 + 38/76 = 1.0
481/962 + 35/70 = 1.0
485/970 + 13/26 = 1.0
485/970 + 16/32 = 1.0
485/970 + 31/62 = 1.0
486/972 + 15/30 = 1.0
关于python - 排列不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23638941/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!