如何根据用户的投注金额显示用户机会“%”?
How to display users chances " % " depending on their bet amounts?
我正在开发 Jackpot Roulette 游戏。有一个主锅。用户加入每一轮。每次下注都会进入主锅。获胜者将得到奖杯。
我正在寻找一种方法来向每个用户显示他们在每个时刻获胜的机会。 (我可以每 1 秒更新一次机会,让他保持更新)。
我有一个用户数组,每个用户都下了注。
例如:
[ username: user1, betAmount: 600],
[ username: user2, betAmount: 400]
等等..
我如何计算他们获胜的机会?
例如,在这个数组中,我想向用户 1 展示他的机会是 60%,而用户 2 是 40%。
我不知道怎么计算,他们的机会,展示给他们。
我正在寻找一个可以计算他们机会的函数,这取决于他们与其他用户相比的投注金额。最大几率为100%,届时由用户瓜分。
好吧,这取决于....人们在玩什么游戏?根据他们玩的是什么游戏,这将决定下注金额是否是他们获胜机会的一个因素。
不要使用投注金额,而是尝试使用他们投注的任何值,然后将该值与可能的值进行比较。
例如,如果游戏规则是从1-100中选择一个数字,您的投注金额越多,您可以选择的数字就越多,那么您可以计算出他们获胜的机会为number of values they chose / 100
。所以如果我下注 200 并选择数字 10 和 3,而你下注 100 并选择数字 61,我有 2% 的机会获胜,你有 1% 的机会获胜。
但是,如果您想使用投注金额作为一个因素,那么请执行以下操作:
var bettotal = bet1 + bet2 + bet3 + bet4;
var user1chance = bet1 / bettotal * 100;
//etc etc...
然后如果你想将它显示到一个元素:
document.findElementById('myID').value = user1chance;
听起来给定用户的获胜机会是投注金额除以总投注金额(×100%)。因此,如果用户 1 投注 100,用户 2 300,则用户 1 有 25% 的机会获胜 (100 / 400)
如何根据 betAmount/total(betAmounts)*100
计算赔率的示例
var bets = [
{ username: 'user1', betAmount: 100 },
{ username: 'user2', betAmount: 300 }
];
// get the total bets
var totalbets = bets.map(({betAmount}) => betAmount).reduce((a, b) => a + b);
// output (to console)
bets.forEach(({username, betAmount}) => {
console.log(`user ${username} odds ${betAmount/totalbets*100}`);
});
如何在网页上显示它取决于页面,您没有提供 HTML 来处理。
代码的一点解释:
Array#map 使用为原始数组中的每个元素调用提供的函数的结果创建一个新数组。在这种情况下,.map 的结果是一个数字数组 [100, 300]
.
Array#reduce 对 "accumulator" 应用给定函数,最终结果是单个值。在这种情况下,函数被调用一次 a = 100
和 b = 300
,结果是返回值 a + b = 400
.
如果数组中有三个值,比如 [3,2,1]
:
- 先调用a=3,b=2,returnsa+b=5
- 第二次调用a=5(上一次迭代的返回值),b=1 - 结果是a+b=6
阅读每个链接的文档以获得更好的解释,例如 reduce 也可以为累加器提供初始值,这意味着对于 3 个值的数组,回调函数被调用 3 次,而不是 2 次.
我正在开发 Jackpot Roulette 游戏。有一个主锅。用户加入每一轮。每次下注都会进入主锅。获胜者将得到奖杯。
我正在寻找一种方法来向每个用户显示他们在每个时刻获胜的机会。 (我可以每 1 秒更新一次机会,让他保持更新)。
我有一个用户数组,每个用户都下了注。
例如:
[ username: user1, betAmount: 600],
[ username: user2, betAmount: 400]
等等..
我如何计算他们获胜的机会?
例如,在这个数组中,我想向用户 1 展示他的机会是 60%,而用户 2 是 40%。
我不知道怎么计算,他们的机会,展示给他们。
我正在寻找一个可以计算他们机会的函数,这取决于他们与其他用户相比的投注金额。最大几率为100%,届时由用户瓜分。
好吧,这取决于....人们在玩什么游戏?根据他们玩的是什么游戏,这将决定下注金额是否是他们获胜机会的一个因素。
不要使用投注金额,而是尝试使用他们投注的任何值,然后将该值与可能的值进行比较。
例如,如果游戏规则是从1-100中选择一个数字,您的投注金额越多,您可以选择的数字就越多,那么您可以计算出他们获胜的机会为number of values they chose / 100
。所以如果我下注 200 并选择数字 10 和 3,而你下注 100 并选择数字 61,我有 2% 的机会获胜,你有 1% 的机会获胜。
但是,如果您想使用投注金额作为一个因素,那么请执行以下操作:
var bettotal = bet1 + bet2 + bet3 + bet4;
var user1chance = bet1 / bettotal * 100;
//etc etc...
然后如果你想将它显示到一个元素:
document.findElementById('myID').value = user1chance;
听起来给定用户的获胜机会是投注金额除以总投注金额(×100%)。因此,如果用户 1 投注 100,用户 2 300,则用户 1 有 25% 的机会获胜 (100 / 400)
如何根据 betAmount/total(betAmounts)*100
var bets = [
{ username: 'user1', betAmount: 100 },
{ username: 'user2', betAmount: 300 }
];
// get the total bets
var totalbets = bets.map(({betAmount}) => betAmount).reduce((a, b) => a + b);
// output (to console)
bets.forEach(({username, betAmount}) => {
console.log(`user ${username} odds ${betAmount/totalbets*100}`);
});
如何在网页上显示它取决于页面,您没有提供 HTML 来处理。
代码的一点解释:
Array#map 使用为原始数组中的每个元素调用提供的函数的结果创建一个新数组。在这种情况下,.map 的结果是一个数字数组 [100, 300]
.
Array#reduce 对 "accumulator" 应用给定函数,最终结果是单个值。在这种情况下,函数被调用一次 a = 100
和 b = 300
,结果是返回值 a + b = 400
.
如果数组中有三个值,比如 [3,2,1]
:
- 先调用a=3,b=2,returnsa+b=5
- 第二次调用a=5(上一次迭代的返回值),b=1 - 结果是a+b=6
阅读每个链接的文档以获得更好的解释,例如 reduce 也可以为累加器提供初始值,这意味着对于 3 个值的数组,回调函数被调用 3 次,而不是 2 次.