当前位置:首页 > JavaScript

js实现概率

2026-03-02 07:47:43JavaScript

生成随机数

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

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

基础概率判断

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

js实现概率

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%概率事件');
}

权重概率系统

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

js实现概率

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实现报表

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

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

前端vue实现概率

前端vue实现概率

前端Vue实现概率功能 在Vue中实现概率功能通常涉及随机数生成、权重分配或概率算法。以下是几种常见场景的实现方法: 随机事件触发 使用Math.random()生成随机数,结合阈值判断是否触发事件…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…