C# 趣味小程序(3)——以一定概率取数组中的数

本文介绍了一个C#趣味小程序,该程序通过排序后的数组,利用Random类生成随机数,以一定的概率选取数组中的元素。在循环取100次的过程中,可以观察到各个数字出现的频率,展示了一种概率分布的实现方式。
摘要由CSDN通过智能技术生成
 static void Main()
{   //为排序方便我使用了链表
    List<int> numbers =
        new List<int>(new int[]{ 34, 23, 353, 324, 32, 113, 44, 22 });
    numbers.Sort();//排序
    System.Random rd = new Random();
    for (int i = 0; i < 100; i++ )//循环取一百次,可以看出各个数字出现的频率
    {
        Console.Write("{0,5}"
            ,numbers[/*下标*/area(rd.Next(0, (numbers.Count - 1) * 2), numbers.Count)]);
    }
    Console.WriteLine();
    Console.ReadLine();
}
//获得链表的下标,0下标站整个随机数区域的一半,1站剩下的一半,2站1剩下的一半,以此类推。
public static int area(int rd, int length)//rd是随机数length是链表的大小
{
    if (rd > length) return 0;
    else
        for (int i = length / 2, index = 1; i >= 1; i /= 2, index++)
        {
            if (rd > i) return index;
        }
    return length - 1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值