我在我的基于Web的应用程序中制作彩票系统,所以它在JavaScript中,但我的问题更加数学化,所以随意用其他语言编写片段。彩票系统锅部
我要分发的彩票锅内赢家自然的感觉方式,例如:
var pot = 1000;
var tickets = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
tickets = shuffleArray(tickets); //shuffle tickets for winners
//first half wins something (2 should be changeable)
var winners_count = Math.ceil(tickets.length/2);
在这种情况下,我需要一种方法来划分在10名获奖者,其中第一位获得最多的整锅和(10)最少。
for(var i=0; i<winners_count; i++){
var ticket = tickets[i];
//formula to determine percentage of pot to gain needed.
}
例子的结果:(只是向你展示它需要的地方去,而不是实际的比赛)
1 - 22%
2 - 18%
3 - 14%
4 - 12%
5 - 10%
6 - 8%
7 - 7%
8 - 5%
9 - 3%
10 - 1%
我相当糟糕,在数学和一些指针和/或代码段将帮助我解决这个问题很多。
编辑
从法比安斯基Roualdes解决方法:http://jsfiddle.net/LB8YU/1/
你从哪里拿出22,18,14等...?这只是一个例子,你从头顶上做出的? – JayGee
@JayGee我只是移动数字,直到我得到了100%的总数,所以是从我的头顶上 – MakuraYami