阅读 57

c# 自动生成N个随机数和为1

       double arraysum = 0.0;
            //定义一个生成随机数的数组
            double[] array = new double[number];
            //生成随机数方法
            Random rdnumber = new Random();
            // 生成N-1的随机数值
            for (int i = 0; i < number - 1; i++)
            {
                array[i] = Math.Round(rdnumber.NextDouble() / number, 2);
            }
            //生成最后一位随机数;值为 1-上面随机数的和
            for (int a = 0; a < array.Length; a++)
            {
                arraysum += array[a];
                if (a == array.Length - 1)
                {
                    array[a] = 1 - Math.Round(arraysum, 2);
                }
            }
            //随机数排序
            Array.Sort(array);
--------------------------另一种方法,有规律的随机数
            int n =5;
            
            double a =0;
           // var c ="";
            double[] value = new double[n];
            double[] array = new double[n];
            for (int i = 0; i < n ; i++)
            {
                value[i] = i + 1;
                a += value[i];
            }
            for (int b = 0; b < n; b++)
            {
                array[b] = value[b] / a;
               // c += array[b] +",";
            }
            Array.Sort(array);

 

原文:https://www.cnblogs.com/lvqianqian/p/15188517.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐