- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近才发现一种通过 this video 生成毕达哥拉斯三元组的方法解释它,涉及使用高斯(复杂)整数。到目前为止,我已经设法编写了一个函数,该函数返回由每个高斯整数生成的勾股三元组列表,其中虚部小于实部。
def pyt(max_real):
t = []
real = 2
imag = 1
while real <= max_real:
z = complex(real, imag)**2
t.append((z.real, z.imag, abs(z)))
if imag + 1 == real:
real += 1
imag = 1
else:
imag += 1
return t
这个问题是一些三元组(例如 {9, 12, 15})不是通过函数所基于的视频中的初始步骤生成的,我'我不确定如何生成这些。
>>> for i in pyt(4):
print(i)
(3.0, 4.0, 5.0)
(8.0, 6.0, 10.0)
(5.0, 12.0, 13.0)
(15.0, 8.0, 17.0)
(12.0, 16.0, 20.0)
(7.0, 24.0, 25.0)
>>> # missing: (9, 12, 15), possibly others
我将如何着手生成每个 可能的三元组,以某种方式使用我已有的或其他方式?
最佳答案
编辑:我意识到这实际上可能会遗漏一些三元组,请参阅最后一行的通知。
此答案基于您提供的链接。我们将使用以下信息:
我们可以用高斯整数的方法找到所有的三重生成器
任何三元组都是上述生成器之一的倍数
要找到三元组,我们永远不需要将生成器缩放小于 1/2
,为我们需要的最大生成器提供上限。
下面是我们如何继续的一些伪代码。有关可能实现的一些细节将在后面。
def pyt(max_real):
max_generator = 2 * max_real
generators = set()
# Find every generator inside our upper bound
for x in [Gaussian integers if abs(x) < max_generator and x.imag < x.real]:
y = x**2
triple = (y.real, y.imag, abs(y))
generators.add(triple)
# Scale up
scaled_up_generators = set()
for a, b, c in generators:
for i in range(max_real / c):
scaled_up_generators.add((i * a, i * b, i * c))
# Scale down
triples = set()
for a, b, c in generators:
common_factors = find_common_factors(a, b, c)
for factor in common_factors:
triples.add((a / factor, b / factor, c / factor))
triples = set()
# Before returning we filter out the triples that are too big.
return filter(lambda triple: triple[2] <= max_real, triples)
上面的代码恢复了所有三重生成器,最多为提供的界限的两倍。然后通过放大和缩小它们,我们恢复边界内的所有三元组。
您可能想看看一种有效的方法来找到实现 find_common_factors
的共同因素,here is a start .
同样,此实现仅基于您链接中提供的信息。此外,它会捕获更多的三元组,但可能无法捕获需要按更精分割数缩放的三元组。可能有更有效的方法进行,但为此我建议转向 MathExchange .
关于python - 使用高斯(复数)整数生成毕达哥拉斯三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49113289/
我想知道javascript中if的简码是什么? 就像在 PHP 中一样: $res = ($x > $y)? $x: $y; 它在 JavaScript 中的转换是什么? 最佳答案 在 javasc
请问为什么下面的代码会报错? 错误: numberOne > numberTwo ? return "true" : return "false"; ^
在我的代码中,我检查系统函数是否等于零,如果是我返回另一个值,如果不是,我返回测试值。 (class.verylongfunc(arg, arg) == 0) ? othervar : cla
在 PHP 中,有没有一种方法可以使用三元条件连接两个字符串? 当我尝试这样做时,我得到的只是 else 而不是所需的 something else。 最佳答案 像这样把整个三元运算符放在方括号中:
似乎在三元运算符中存在某种类型混淆。我知道这已在其他 SO 线程中得到解决,但它始终与可空值有关。另外,就我而言,我真的只是在寻找更好的方法。 我希望能够使用 proc.Parameters[PARA
有没有办法在不进行赋值或伪造赋值的情况下进行 java 三元运算? 我喜欢在执行一堆 if/then/else 时的简洁三元代码。 我希望能够基于 boolean 代数语句调用两个 void 函数之一
我正在使用 XSLT 和 XML 来生成输出文档。 我在数据中拥有的(以我无法控制的 XML 形式)如下: 4 我需要在计算中使用这些。我看到为这些提供默认值需要对文档执行转换以提供一个有点冗长的
这个问题已经有答案了: Ternary operators in JavaScript without an "else" (13 个回答) 已关闭 4 年前。 我一直使用这样的三元表达式,但我不喜欢
我在 VB.NET 中发现了一个可以轻松重现的简单错误: Dim pDate As Date? Dim pString As String = "" ' works fine as expected
所以,我有这段代码,它实际上有效: (散列将是这样的对象:{"bob"=> "12, "Roger"=> "15", etc},并且 isGood(key) 是调用函数 isGood ,如果玩家好或坏
是否有以下 JavaScript bool 三元表达式的简写语法: var foo = (expression) ? true : false 最佳答案 当然,您只想将表达式转换为 bool 值: v
在 Java 中,如果我在常规 if 中使用三元 if 运算符,例如: if ((x > y - z) ? true : callLongWaitedMethod(many, parameteres)
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
var test = "Hello World!"; 在 Java 10+ 中,上面的代码片段可以编译,test 在编译时被推断为 String。 但是,我们可以使用条件(三元)运算符来返回不同的类型
嗨,我尝试在渲染内部使用三元条件,但遇到一些错误,这是我的代码: render() { return ( (this.emai
这里我有以下 JavaScript 代码,带有两个值。 var w = $("#id1").val(); var h = $("#id2").val(); (w == h) ? (w=350 , h
我一直想知道如何用 C++ 兼容语言编写 "A ? B : C" 语法。 我认为它的工作方式类似于:(伪代码) If A > B C = A Else C = B 有没有经验丰富的 C++
考虑两个 vector ,A 和 B,大小为 n,7 <= n <= 23 . A 和B 都只包含-1、0 和1。 我需要一个计算A 和B 内积的快速算法。 到目前为止,我一直在考虑使用以下编码将
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
如果您一开始就讨厌三元条件运算符,则无需回复 ;) 我经常看到它与赋值表达式一起使用,例如: var foo = (some_condition) ? then_code : else_code; 但
我是一名优秀的程序员,十分优秀!