python - 求三角形的代码,其中两条边的平方根等于第三条边的平方根
问题描述
我写了一个 python 文件来查找存在一个三角形,使得两条边的平方根之和等于另一边的平方根,这在绿野仙踪等中被“稻草人”引用。
但它没有按预期工作。这可能是因为它效率不高。请为此提出解决方案。
如果需要,请编辑标题和正文
import random
num = 1000
a = random.randint(1, num)
b = random.randint(1, num)
c = random.randint(1, num)
x = a + b
y = b + c
z = a + c
k = 0.5
ak = a ** k
bk = b ** k
ck = c ** k
w = 1
while w==1:
if x>c and y>a and z>b :
print ("found and verfying")
if ak+bk == ck:
print(a,b,c)
w = 2
else:
a = random.randint(1, num)
b = random.randint(1, num)
c = random.randint(1, num)
print(a,b,c," is not a match" )
解决方案
我想你想做这个。我更改了if语句,删除 k 并写入 0.5 以对其进行平方根,如果总和之一小于它停止的三角形边,则添加else 。
import random
num = 1000
a = random.randint(1, num)
b = random.randint(1, num)
c = random.randint(1, num)
x = a + b
y = b + c
z = a + c
ak = a ** 0.5
bk = b ** 0.5
ck = c ** 0.5
w = 1
while w == 1:
if x > c and y > a and z > b:
print("found and verfying")
if ak + bk == ck or ak + ck == bk or bk + ck == ak:
print(a, b, c, "is verified")
w = 2
else:
a = random.randint(1, num)
b = random.randint(1, num)
c = random.randint(1, num)
print(a, b, c, "is not a match")
else:
print("I can't find it")
w = 2
如果你想继续如果其中一个总和小于边,你可以使用这个:
else:
print("I can't find it. I am trying new one")
a = random.randint(1, num)
b = random.randint(1, num)
c = random.randint(1, num)
推荐阅读
- tensorflow - 谷歌云 TPU:NotImplementedError:TPU 计算中不支持非资源变量
- angular - 当字符在文本框中时隐藏内容
- django - 类型错误:__init__() 接受 1 个位置参数,但给出了 2 个。我已经看到了许多针对此错误的解决方案,但没有一个与我的情况相符
- pdf - 检测文件夹中的 PDF 文件并检查它是否打开
- arduino - IP 数据包处理 - ARDUINO
- sql - 在 BigQuery 上运行过去 30 天的 Sum
- ios - 将可平移的 UIView 保持在边界内
- vbscript - QTP/UFT - 在一个数组中存储多个数组
- android - 如何在 Kotlin 中使用 gson 反序列化到 ArrayList
- python - 如何设置模板变量
in Django?</h1> <div id="body"><p>I am very new to Django, trying to setup my first personal CMS website. Please apologize if it is obvious. I am transitioning from <code>PHP</code>, so it is little confusing