【发布时间】:2013-05-30 18:46:18
【问题描述】:
我有一个赠品,完成后,有一张玩家和他们的得分表。 另一方面,我有一个虚拟的钱罐,我想分配给这些获胜者。我正在寻找一个 SQL 查询或一段 C# 代码来执行此操作。
降序排列的表格如下所示:
UserId | Name | Score | Position | % of winnings | abs. winnings $
00579 | John | 754 | 1 | ? | 500 $
98983 | Sam | 733 | 2 | ? | ?
29837 | Rick | 654 | 3 | ? | ? <- there are 2 3rd places
21123 | Hank | 654 | 3 | ? | ? <- there are 2 3rd places
99821 | Buck | 521 | 5 | ? | ? <- there is no 4th, because of the 2 3rd places
92831 | Joe | 439 | 6 | ? | ? <- there are 2 6rd places
99281 | Jack | 439 | 6 | ? | ? <- there are 2 6rd places
12345 | Hal | 412 | 8 | ? | ?
98112 | Mick | 381 | 9 | ? | ?
and so on, until position 50
98484 | Sue | 142 | 50 | ? | 5 $
注意双第 3 和第 6 名。
现在我想在前 50 个职位中分配(虚拟)资金总额(10,000 美元)。 (如果分配的位置(现在是 50)可以是一个变量,那就太好了)。
最大和最小数量(对于 nr 1 和 nr 50)固定为 500 和 5。
是否有人对 SQL 查询或一段 C# 代码有一个好主意来正确地用 % of bonuss 和 absolutewinnings$ 填充列?
我更喜欢这样一个看起来有点对数的分布:(这使得较高的位置相对于较低的位置获得更多)。
.
|.
| .
| .
| .
| .
| .
| .
| .
| .
【问题讨论】:
-
假设平局玩家赚到同样多的钱,这是不可能的。问题是过度约束。例如,如果第一名有 49 人并列,则您必须支付 24505 美元。您可能永远不会有 49 路平局,但您应该明确说明您关心哪些可能性以及您不关心哪些可能性。
标签: c# sql math polynomial-math logarithm