You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码提升1-10随机数中数值10的生成概率?

调整随机数生成概率的解决方案

要让10的生成概率变为原来的3倍,核心思路是调整权重分配:原本1-10每个数字的权重都是1,总权重10;现在把10的权重改为3,其他数字保持1,总权重变为12。这样10的概率是3/12=25%,其他每个数字是1/12≈8.33%,正好是3倍的概率差(25% ÷ 8.33% ≈ 3)。

以下是几种常见实现方式:

Python 示例

import random

def weighted_random():
    numbers = list(range(1, 11))
    weights = [1]*9 + [3]  # 前9个数字权重1,10的权重设为3
    return random.choices(numbers, weights=weights, k=1)[0]

# 测试调用
print(weighted_random())

原生逻辑实现(不依赖权重库)

如果不想用内置的权重随机函数,可以手动映射范围:

import random

def weighted_random():
    # 生成0-11的随机整数(共12个可能值)
    rand_num = random.randint(0, 11)
    if rand_num < 9:
        return rand_num + 1  # 0-8对应1-9
    else:
        return 10  # 9-11对应10

原理说明

  • 原逻辑:每个数字的概率为1/10(10%)
  • 调整后:10的概率为3/12=25%,其余数字为1/12≈8.33%,25%恰好是8.33%的3倍,完全符合需求

内容的提问来源于stack exchange,提问作者nichady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:10:25