马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Searching a triangular array for a sub-triangle having minimum-sum
In a triangular array of positive and negative integers, we wish to find a sub-triangle such that the sum of the numbers it contains is the smallest possible.
In the example below, it can be easily verified that the marked triangle satisfies this condition having a sum of −42.
We wish to make such a triangular array with one thousand rows, so we generate 500500 pseudo-random numbers sk in the range ±219, using a type of random number generator (known as a Linear Congruential Generator) as follows:
t := 0
for k = 1 up to k = 500500:
t := (615949*t + 797807) modulo 220
sk := t−219
Thus: s1 = 273519, s2 = −153582, s3 = 450905 etc
Our triangular array is then formed using the pseudo-random numbers thus:
s1
s2 s3
s4 s5 s6
s7 s8 s9 s10
...
Sub-triangles can start at any element of the array and extend down as far as we like (taking-in the two elements directly below it from the next row, the three elements directly below from the row after that, and so on).
The "sum of a sub-triangle" is defined as the sum of all the elements it contains.
Find the smallest possible sub-triangle sum.
题目:
在一个由正整数和负整数组成的三角形数组中,我们希望找到一个子三角形,使得该三角形中包含的所有数字之和最小。
在下图的例子中,可以验证红色标记的三角形满足上述条件,其和为 -42。
我们希望构造一个一千行的三角形数组,所以我们用如下一种名为线性同余法的随机数生成法生成 500500 个伪随机数 sk,范围在正负 219 之间:
t := 0
for k = 1 up to k = 500500:
t := (615949*t + 797807) modulo 220
sk := t−219
因此: s1 = 273519, s2 = −153582, s3 = 450905 等等。
因此我们用随机数组成的三角型数组具有如下形式:
s1
s2 s3
s4 s5 s6
s7 s8 s9 s10
...
子三角形可以从数组中的任意元素开始,可以向下任意延伸(从下一行取两个元素,再下一行取三个元素,如此继续)。
定义“子三角形和”为子三角形内包含的所有元素之和。
求最小的子三角形和。
|