控制随机抽中几率 的算法[ C# | Random ]

本文介绍了如何在C#中实现两种随机抽取算法:普通随机抽取和受控随机抽取。受控随机抽取允许根据权重来调整每个元素被抽中的概率。文章通过代码示例展示了如何使用Random类结合权重列表进行概率抽样。
摘要由CSDN通过智能技术生成

---恢复内容开始---

最新有几个学生询问了我关于随机概率抽奖的算法,当天给他们讲解了下,第二天他们还是没写出一个完整的算法出来,要么是无法实现,要么是实现了简单的逻辑,却与自己原定的概率相差甚远,比如设定概率为10%的事件,出现的几率却远远大于概率设定为50%的事件!这让我注意到,对于大多新手来说,随机概率的问题还是比较头疼的问题;
这里写个算法,此算法可用于题库随机抽题、赌博机控制出彩率,甚至俄罗斯方块等游戏,希望对需要的朋友有帮助;
直接上代码:
测试说明:按权重比重大小,控制随机抽取物品道具
RandomController.cs
 
using System;
using System.Collections.Generic;
 
public class RandomController
{
 #region Properties
 
    private int _Count;
    /// <summary>
    /// 随机抽取个数
    /// </summary>
    public int Count
    {
        get
        {
            return _Count;
        }
        set
        {
            _Count = value;
        }
    }
 
    #endregion
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值