【发布时间】:2020-02-04 06:21:07
【问题描述】:
假设我有这两个具有 5 个单元的 排序 数组:
数组中的数字介于 2 和 14 之间(包括 2 和 14,它们是整数)
现在,当最低的数组是:
[2,2,2,2,2] 最高为 [14,14,14,14,14]
现在问题是:索引很重要,例如,如果我们看一下这些数组:
1) [2,2,2,2,10]
2) [8,8,8,8,9]
所以第一个比第二个好,会得到更高的分数。
如果索引中存在平局(从右到左),例如:
1) [3,4,5,10,13]
2) [3,4,7,10,13]
所以索引号:3 和 4 是相同的,但由于 7 高于 5。所以在这种情况下,第二个数组的分数会更高。
我在数学上苦苦挣扎,我的意思是我想高效地做,现在我可以做这样的事情:
2^array[i] 但效率不高,所以我设法做的主要事情是
double rank = 0;
for (int i = 0; i < 5; i++)
{
rank += (double)array[i] / 14 + i;
}
因为如果 array[i] 可以在 2 和 14 之间,所以 1/7
我会很高兴在这里得到一些帮助。
【问题讨论】:
-
如果你的代码在 c# 中,为什么这个标签是 python?
-
不清楚您想要实现什么,并且您使用
[14,14,14,14,2]的示例不正确 - 数组未排序 -
@ingvar 对不起,我修正了这个例子。 DanielMesejo,抱歉,这是一个错误,已经修复。
标签: c# arrays algorithm integer