当前位置: 首页 > 知识库问答 >
问题:

Math.Random()的概率修饰符

舒枫涟
2023-03-14

我想知道创造概率的最好或最被接受的方法是什么。我做了一些研究,发现了一些关于Math.random()主题的有趣的问题和答案,例如:

例如,我知道math.floor(Math.random()*2)是一种有用的方法,可以在将近50%的时间内生成1:

-math.random()生成介于0(含)和1(不含)之间的随机数

-如果生成的数字<0.5,这个数字乘以2仍然会小于1,所以这个数字。floor()返回一个0

var youHit = Math.floor(Math.random() * 2);
var totalTries = 0;
var hits = 0;

var pointNine = 0.9; // you want 90% of tries to hit
var pointEight = 0.8;// you want 80% of tries to hit 
var pointSeven = 0.7;// you want 70% of tries to hit
  
function probCheck(modifier) {
  var exponent = 1 + (1 - modifier) + (1 - modifier)*10;
  for (var x = 0; x < 100; x++) {
     youHit = Math.floor((Math.pow(modifier, exponent)) + (Math.random() * 2));
     totalTries += 1;
     if (youHit) {
        hits += 1;
     } 
  }
  console.log("final probability check: " + hits / totalTries);
};

 probCheck(pointNine);
 probCheck(pointEight);
 probCheck(pointSeven);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

共有1个答案

昝成弘
2023-03-14

指数在这里没有意义。退一步:[0,1)上的均匀分布数小于同一范围内的一个x,概率为x,因此:

function randomHit(modifier) {
    return Math.random() < modifier;
}

测试:

function randomHit(modifier) {
  return Math.random() < modifier;
}

function probCheck(modifier) {
  var totalTries = 100;
  var hits = 0;

  for (var x = 0; x < totalTries; x++) {
    if (randomHit(modifier)) {
      hits++;
    }
  }

  console.log("final probability check: " + hits / totalTries);
}

probCheck(0.9);
probCheck(0.8);
probCheck(0.7);
 类似资料:
  • 要求是发送一个唯一的id到数据库时,用户单击提交按钮。所以我使用的是Javascript方法。我只想知道使用获得相同数字的机会或可能性是多少,以及使用的位大小是多少。

  • private private修饰符是我们使用的最限制的修饰符。它表示它只能被自己所在的文件可见。所以如果我们给一个类声明为private,我们就不能在定义这个类之外的文件中使用它。 另一方面,如果我们在一个类里面使用了private修饰符,那访问权限就被限制在这个类里面了。甚至是继承这个类的子类也不能使用它。 所以一等公民,类、对象、接口……(也就是包成员)如果被定义为private,那么它们只

  • 和这个问题的提问者一样,我也想知道为什么不比更受欢迎,结果发现这是因为Math.random有很小(但相关的)机会准确返回0。但有多小? 进一步研究告诉我,这个随机数精确到小数点后16位……嗯,算是吧。而这正是我所好奇的“那种”。 我知道浮点数和小数的工作原理不同。但我很纠结细节。如果这个数字是一个严格的十进制数值,我相信几率会是十分之一的台球(或者在美国的系统中是十分之一的)--1:1016。

  • 在概率公理中,我们建立了“概率测度”的概念,并使用“面积”来类比。这是对概率的第一步探索。为了让概率这个工具更加有用,数学家进一步构筑了“条件概率”,来深入探索概率中包含的数学结构。我们可以考虑生活中常见的一个估计: 三个公司开发一块地。A占地20%,B占地30%,C占地50%。三个公司规划的绿地占比不同:A土地中40%规划为绿地,B土地中的30%规划为绿地,C土地中的10%规划为绿地。我想选择绿

  • 概率论早期用于研究赌博中的概率事件。赌徒对于结果的判断基于直觉,但高明的赌徒尝试从理性的角度来理解。然而,赌博中的一些结果似乎有矛盾。比如掷一个骰子,每个数字出现的概率相等,都是1/6。然而,如果有两个骰子,那么出现的2到12这些数字的概率却不相同。概率论这门学科正是为了搞清楚这些矛盾背后的原理。 早期的概率论是一门混合了经验的数学学科,并没有严格的用语。因此,概率论在数学的精密架构下,显得有些异

  • 主要内容:VB.Net修饰符列表修饰符是添加了任何编程元素的关键字,以特别强调编程元素在程序中的行为或将被访问 例如,访问修饰符:, , , , 等指示编程元素的访问级别,如:变量,常量,枚举或类。 VB.Net修饰符列表 下表提供了VB.Net修饰符的完整列表: 编号 修饰符 描述 1 指定Visual Basic应将所有字符串封送到美国国家标准学会(ANSI)值,而不管正在声明的外部过程的名称如何。 2 指定源文件开始处的属