生成总和固定 可变范围的随机数

private void TestTest()
        {
            int maxValue = 10000;
            Random rd = new Random(Guid.NewGuid().GetHashCode());

            int avg = Convert.ToInt32(this.txtAvg.Text); // 300;//平均数100
            int range = Convert.ToInt32(this.txtFiled.Text); //300;//上下波动值10
            int totalRandomValue = 0;
            List<double> list = new List<double>();
            do
            {
                int tmp = rd.Next(range) - 10 + avg;
                //int tmp = rd.Next(range) + avg;
                list.Add((double)tmp / 100);
                totalRandomValue += tmp;
                tmp = maxValue - totalRandomValue;
                if (tmp <= avg + range)
                {
                    list.Add((double)tmp / 100);        //TODO:过大或者过小修正不写了,太麻烦
                    break;
                }
            }
            while (true);
            list.ForEach((d) =>
            {
                this.listBox1.Items.Add(d.ToString());
            });
            this.button1.Text = list.Sum().ToString() + "- 总记录数:" + list.Count.ToString();
        }
时间: 2024-11-09 00:46:19

生成总和固定 可变范围的随机数的相关文章

生成指定范围的一组随机数并求平均值

Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码. 随机数生成20~90之间的数值,并求平均数: public class Random01 { public static void main(String[] args) { int len = 5; int sum = 0; int[] arr = new int[len]; for (int i = 0; i < len; i++) { arr[i] = (int

js生成某个范围内的随机数

根据random方法,Math.random()方法返回的是0到1的随机数(不包含0和1): ? 1 2 3 4 5 6 7 8 //生成k个m到n的随机数,返回数组     function Temp(m,n,k) {         var all = new Array();         for (var i = 0; i < k; i++) {             all[i] = Math.floor(Math.random()*(n-m) + m); //Math.floor

bash的RANDOM变量生成的是真正的随机数吗

static void seedrand () { struct timeval tv; gettimeofday (&tv, NULL); sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid ()); } 上述是bash中生成随机数的代码,处理是非常的简单,秒 (tv.tv_sec) 和微秒 (tv.tv_usec) 和进程 ID 的位进行异或操作来生成随机数. 由此生成的RANDOM变量是伪随机数,而且和伪随机数生成器相比,是采用非常简单的算法生成的. 译至:ht

shell生成100个6位随机数

shell生成100个6位随机数的方法很多:下面写一个,脚本如下: 执行的结果

生成N个不同的随机数(C++,范围0~N-1)

做项目的过程往往具有随机选取等过程.此笔记主要给出了随机生成N个不同的随机数的两种方法,然后简单的介绍了C++中随机数主要用到的函数srand,rand和time.最后给出了一个简单的例子,即从一个含有N张图片的文件夹中随机选取K张图片存入另外一个文件夹. 一:产生N个不同随机数的方法 #include <stdio.h> #include <stdlib.h> #include<time.h> #define N 20 #define K 10 void swap(i

ByteBuffer: 当由一个byte[]来生成一个固定不变的ByteBuffer时,使用ByteBuffer.wrap(byte[]);

StringBuilder sb = new StringBuilder(1024); //向sb中写入900个左右的随机字符内容 for(int j=1; j< 50;j++) { sb.append(Math.random()); } //System.out.println("sb:" + sb.length()); long startTime = System.currentTimeMillis(); for(int i=0;i<10000;i++) { /* b

php生成16位只有数字随机数

php生成16位只有数字随机数 分享一个php生成16位随机数的代码,php生成随机数的二种方法.方法1, <?php $a = mt_rand(10000000,99999999); $b = mt_rand(10000000,99999999); echo $a.$b; 方法2: <?php $a = range(0,9); for($i=0;$i<16;$i++){ $b[] = array_rand($a); } // www.yuju100.com var_dump(join(

js中Math.random()生成指定范围数值的随机数

http://www.111cn.net/wy/js-ajax/57062.htm Math.random() 这个方法相信大家都知道,是用来生成随机数的.不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数.这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数.w3school的random()教程定义和用法 random() 方法可返回介于 0 ~ 1 之间的一个随机数.语法 Math.random() 返回值 0.0 ~ 1.0 之间的一

生成300个不同的随机数

--生成300个8位不重复纯数字随机数DECLARE @i INT=0;DECLARE @j INT;DECLARE @qnum INT=300; --生成随机数的数量SET NOCOUNT ONCREATE TABLE #temp_Table(num INT)WHILE(@i<@qnum)BEGIN    SELECT @j = cast( floor(rand()*(99999999-10000000)+10000000) as int)     IF(NOT EXISTS(SELECT n