【问题标题】:How to set win occurrence or percentage in JavaScript如何在 JavaScript 中设置获胜次数或百分比
【发布时间】:2020-06-27 20:16:43
【问题描述】:

我有一个数字游戏(乐透),其中有一个 1 - 36 的数组。

  myNum = [1,2,3...36];

玩家要从 1 - 36 中选择 6 个数字(放入一个数组中)。 我也生成随机 6 个数字(进入另一个数组)。 并且玩家根据比赛的数量(与我的比赛)赢得一定的金额。

我的意图和我现在的问题是确定玩家获胜的次数, 如果与我的匹配,则应将其添加到胜利中,如果没有,则不应添加。 这就是我希望设置胜率的方式:

   winPercentage = 80; //80 percent

或任何其他方式。

我用我的一点 JS 知识做了一些尝试,搜索了互联网和 SO,但无法理解/找到方法。有人请帮忙

【问题讨论】:

  • 80% 应该怎么办?
  • 这样的系统不能设置百分比,只能计算。
  • @NinaScholz,这意味着,例如玩家玩游戏 100 次,他应该只赢 80 次。这意味着,玩家至少与我的号码匹配的次数将是 80 次,而不是更多
  • @Jonathan 请问我该怎么做?
  • 您是否尝试找到胜率?还是想限制胜率最高为 80%?哪一个是你的问题。

标签: javascript probability percentage


【解决方案1】:

如果我理解正确,你想计算玩家对你的胜率。

如果我是对的,那么您需要计算总比赛次数玩家获胜的比赛次数

说,

the_total_match_played (TM) = 80;
player_win(PW) = 30;

win_percengage(WP) = (PW * 100) / TM;
WP = (30 * 100) / 80;
   = 37.5%

注意:如果我对您的问题的理解有误,请随时发表评论。

【讨论】:

  • 好的,感谢您的帮助。我想要的是,假设玩家玩这个游戏 100 次,他应该准确地赢 80 次,输掉剩下的 20 场比赛。同时,我可以随机让玩家先赢再输,但最终玩家的总赢应该是 100 次尝试中的 80 次。
  • 获胜条件是什么?
  • 获胜条件是玩家的号码之一与我生成的号码之一匹配。
  • 我认为很难准确地定义 80% 的胜率。假设玩家打了 6 场比赛,那么他必须赢得 4.8 场比赛(不是 4 场也不是 5 场)。不可能赢得 4.8(小数)场比赛。
  • 是的,可能更多,比如 90%,我只是用它来解释。根据我收到的回复,看来我必须操纵我随机生成的数字
【解决方案2】:

基本上要计算的表达式是

第一或第二或第三或第四或第五或第六

P(第一) = P(第二) = P(第三) = P(第四) = P(第五) = P(第六) = 1/36

人们会直觉地认为结果是

1/36 + 1/36 + 1/36 + 1/36 + 1/36 + 1/36 = 6 * 1/36 = 1/6

但我们需要跟踪重复的案例。例如,如果选择了第一个并且选择了第二个,则使用上述公式将计算两次,这是不正确的。所以公式是

1/36 +

35/36 * 1/36 +

(1 - 35/36 * 1/36) * 1/36 +

(1 - (1 - 35/36 * 1/36) * 1/36) * 1/36 +

(1 - (1 - (1 - 35/36 * 1/36) * 1/36) * 1/36) * 1/36 +

(1 - (1 - (1 - (1 - 35/36 * 1/36) * 1/36) * 1/36) * 1/36) * 1/36

这是

0.16289262235174626 ~ 16.28%

抱歉,不是 80%。您可以将此值 0.16289262235174626 分配给像

这样的变量
var winChance = 0.16289262235174626;

只要你想要一个百分比,就计算

100 * winChance

【讨论】:

    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多