当前位置:首页 > 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);
}

概率补丁验证

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

js实现概率

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实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…