zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

我需要了解在红宝石

2023-04-18 12:59:21 时间

的问题的解决方案,以一个行总和奇数方法:我需要了解在红宝石

从行索引计算该三角形的行总和。

row_sum_odd_numbers(1); # 1 
row_sum_odd_numbers(2); # 3 + 5 = 8 
row_sum_odd_numbers(3); # 7 + 9 + 11 = 27 

...

Test.assert_equals(row_sum_odd_numbers(1), 1) 

Test.assert_equals(row_sum_odd_numbers(2), 8) 

Test.assert_equals(row_sum_odd_numbers(13), 2197) 

Test.assert_equals(row_sum_odd_numbers(19), 6859) 

Test.assert_equals(row_sum_odd_numbers(41), 68921) 

的解决问题的办法如下:

def row_sum_odd_numbers(n) 
    return n**3 
end 

我明白,这代码返回答案。我不明白它是如何返回答案的。为什么n的第3个指数返回奇数的行和?

Jack Kelly

这只是一个数学技巧。它不能解释,但你可以得到的模式! –

这可能有助于显示三角形和/或问题定义。三角形的特质使它解决了这个简单的问题。也许这个问题可以适用于maths.stackexchange,如果从三角形的设计中得到n ** 3似乎是模糊的。 –

我投票结束这个问题作为题外话题,因为它是关于数学,而不是编程。 –

回答

这只是数学计算:)

可以找出哪些是第一个被加数: 第一加数之前,我们有1 + 2 + 3 + ... + n-1奇数,其金额为((n-1)*n)/2。所以,在他们之后的第一个加载是
((n-1)*n)/2 * 2 + 1 = (n-1)*n + 1

现在我们应该只计算我们的总和:
row_sum_odd_numbers(n)= (n-1)*n + 1 + (n-1)*n + 3 + (n-1)*n + 5 +...+ (n-1)*n + 2*n - 1 =
(n-1)*n*n + 1 + 3 + 5 + ... + 2*n -1 = n^3 - n^2 + n^2 = n^3

请格式化以提高可读性。它将帮助OP和那些正在寻找类似解决方案的人。 –

首先,需要计算第k行开头的数字。如果你画的三角形,就不难认识到,这是

我需要了解在红宝石