当前位置:首页 > JavaScript

js实现概率

2026-03-02 07:47:43JavaScript

生成随机数

JavaScript中可以通过Math.random()生成一个0到1之间的伪随机数,包含0但不包含1。这是实现概率计算的基础。

const randomValue = Math.random(); // 0 <= x < 1

基础概率判断

假设需要实现30%概率触发某个事件,可以直接比较随机数与阈值:

if (Math.random() < 0.3) {
    console.log('30%概率触发');
}

多概率分支

当需要处理多个不同概率的事件时,可以采用累加概率区间的方式:

const random = Math.random();
if (random < 0.2) {
    console.log('20%概率事件');
} else if (random < 0.5) { // 0.2-0.5 => 30%
    console.log('30%概率事件');
} else {                   // 剩余50%
    console.log('50%概率事件');
}

权重概率系统

对于需要按权重分配概率的场景,可以先将权重归一化:

const items = [
    { name: 'A', weight: 2 },
    { name: 'B', weight: 3 },
    { name: 'C', weight: 5 }
];

const totalWeight = items.reduce((sum, item) => sum + item.weight, 0);
let random = Math.random() * totalWeight;

for (const item of items) {
    if (random < item.weight) {
        console.log(`选中: ${item.name}`);
        break;
    }
    random -= item.weight;
}

概率分布函数

如果需要特定概率分布(如正态分布),可以使用转换方法:

// Box-Muller变换生成正态分布随机数
function normalRandom(mean = 0, std = 1) {
    let u = 0, v = 0;
    while(u === 0) u = Math.random();
    while(v === 0) v = Math.random();
    return mean + std * Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v);
}

概率补丁验证

为确保概率准确性,可以通过大量测试验证:

let count = 0;
const trials = 1000000;
for (let i = 0; i < trials; i++) {
    if (Math.random() < 0.3) count++;
}
console.log(`实际概率: ${(count / trials * 100).toFixed(2)}%`);

js实现概率

标签: 概率js
分享给朋友:

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: fu…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…