1楼:乁
随机产生数组的下标,不直接产生数,我举随机产生0~9的随机数int num = new int[10];
int newnum = new int[10];
int i,r = 9;
int n;
int tmp;
random rand = new random();
for (i = 0; i < 10; i++)//初始化这个数组,0~9
///这个算法只需要循环你的数范围的次数而已for (i = 0; i < 10; i++)for (i = 0; i < 10; i++)", newnum[i]);
}console.read();
2楼:匿名用户
////// 返回随机数组
////// 最小值
/// 最大值
/// 个数
///public int getrandomunrepeatarray(int minvalue, int maxvalue, int count)
array.sort(keys, items);
int result = new int[count];
array.copy(items, result, count);
return result;
}********************====//调用实例
int arr = getrandomunrepeatarray(1, 10, 10);
for (int i=0; i < arr.length; i++)
3楼:匿名用户
for(int i = 0
matlab中怎样生成一个区间内不重复的随机数?
4楼:草是一颗植物
即产生随机排列:
p = randperm(n) returns
a random permutation of the integers 1:n.
所以要产生[16 31]的随机排列,可以执行:
randperm(31-16+1)+15
随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。
真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。
如何让c#产生不重复的随机数
5楼:匿名用户
“随机数 和 不重复 是相悖的两个概念”。因此这个问题理论上无解。
随机数,(一般c#中)指的是随机生成的一个整型或者浮点型数字。
不重复,指的是在一个数组中,每个元素都有唯一性。
(我们比方说,要生成10个不重复的随机数)
如果在一个范围内生成多个随机数, 那么肯定是会有生成“重复”的几率, 如果要做到不重复,1、要么每次生成时,对范围进行重新判定,
2、要么是生成后,比对已生成的数据,如果相同就重新生成。
无论哪一种做法,都可以实现“生成一组看似随机的不重复数据”,但是这个不能叫“随机数”。
1、的做法是指定新范围,从边界规避掉重复的可能性,所以这一组10个数据其实取值范围是不同的,因为不能叫做“同一组随机数”。
2、的做法其实是会生成重复随机数的, 只是我们把它过滤掉了,因此也不是“不重复随机数”。
所以这个问题如果不去钻牛角尖,有这么两种简单做法去实现,如果严谨的去**,其实是个悖论。
6楼:暖兰菲
要不重复的话,就用guid类把
guid g = guid.newguid(); //创建一个guid的对象
console.writeline(g.tostring());//然后tostring() 你用控制台输出看看,这种随机产生的十六进制数字,会重复的几率几乎没有。
7楼:匿名用户
static double buf = 0.5;
private static double ran()while (math.abs(num - buf) < 0.000001);
buf = num;
return (num);
}//0.00001表示接近于0的实数(伊普斯龙)//主程序调用 ran()即可,例如: r=ran();
***************===分割线********************
如果程序较小:可以如下
private static double ran()
8楼:匿名用户
如果你的随机数是整数,那么不可能不重复。随机数的产生次数,超过了整数的范围,必然会出现重复。如果不考虑范围的问题,每次产生随机数后,把它记下来,用于检查下次随机数是否重复。
如果不是整数,你可以用guid来避免重复
求高手,c#,如何生成15个1-15之间的不重复的随机数???
9楼:archer羽的传说
考虑到算法效率~你其实可以用另一种方式来实现~先生成一个1-15按顺序的数组
然后生成随机变量种子~
每次取一个在数组长度内的随机数
然后取出对应的数值并放到另一个数组中
而存的那十五个数值的数组则把该数值去除~这样十五次就能得到了~**如下:
//定义数组~并给出长度
listilist = new list();;
//设置初始值
for (int i = 1; i < 16; i++)random rd = new random();
//要得到15个随机数
int shownum = new int[15];
for (int i = 0; i < 15; i++)
10楼:匿名用户
先定义1-15的集合,然后随机从该集合中拿出一个来放到一个数组中,最后再把这个数组遍历下
listlist=new list();
for(int i=1;i<=15;i++)list.add(i);
int arr=new int[15];
random rand=new random();
for(i=15;i>1;i--)
意思知道下,手写**可能有错。还有错误自己在改下。
11楼:岩石の审判
把已经生成的随机数存入一个数组,然后再次生成随机数时,与数组的元素比较,若相等,重新生成,若不相等,直接存入数组。
12楼:目前登陆帐号
1、用随机数生成函数生成随机数
2、然后用生成的数字除与15,取余
3、循环上面2步骤,一直到生成15个。
13楼:小妻丐
random r=new random();
int num=r.next(1,15);
14楼:施奥陶水蓉
intxl
=new
int();
inttmp=0;
string
output
="the
numbers
are:
";randomrd=
newrandom();
//把1-33放在数组里
for(inti=
0;i<
33;i++)
//循环6次
for(inti=
0;i<
6;i++)
return
output;
.*** 下用c#产生一个永不重复10位随机数
15楼:叙事诗鞍悄
我们在做能自动生成试卷的考试系统时,常常需要随机生成一组不重复的题目,在.***
framework中提供了一个专门用来产生随机数的类system.random。
对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过
一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这
种随机数被称作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并
不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。伪随机数的选择是从随
机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得
非常重要。如果随机种子一样,那么同一个随机数发生器产生的随机数也会一样。一般地,我
们使用同系统时间有关的参数作为随机种子,这也是.*** framework中的随机数发生器默认采
用的方法。
我们可以使用两种方式初始化一个随机数发生器:
第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:
random ro = new random();
第二种方法可以指定一个int型参数作为随机种子:
int iseed=10;
random ro = new random(10);
long tick = datetime.now.ticks;
random ran = new random((int)(tick & 0xffffffffl) | (int) (tick >> 32));
这样可以保证99%不是一样。
之后,我们就可以使用这个random类的对象来产生随机数,这时候要用到random.next()方
法。这个方法使用相当灵活,你甚至可以指定产生的随机数的上下限。
不指定上下限的使用如下:
int iresult;
iresult=ro.next();
下面的**指定返回小于100的随机数:
int iresult;
int iup=100;
iresult=ro.next(iup);
而下面这段**则指定返回值必须在50-100的范围之内:
int iresult;
int iup=100;
int idown=50;
iresult=ro.next(idown,iup);
除了random.next()方法之外,random类还提供了random.nextdouble()方法产生一个范
围在0.0-1.0之间的随机的双精度浮点数:
double dresult;
dresult=ro.nextdouble();
但是用random类生成题号,会出现重复,特别是在数量较小的题目中要生成不重复的的题目
是很难的,参考了网上的一些方法,包括两类,一类是通过随机种子入手,使每一次的随机种
子不同,来保证不重复;第二类是使用一些数据结构和算法。下面主要就第二类介绍几个方
法。方法1:思想是用一个数组来保存索引号,先随机生成一个数组位置,然后把这个位置的索引号
取出来,并把最后一个索引号复制到当前的数组位置,然后使随机数的上限减一,具体如:先
把这100个数放在一个数组内,每次随机取一个位置(第一次是1-100,第二次是1-99,...),
将该位置的数用最后的数代替。
int index = new int[15];
for (int i = 0; i < 15; i++)
index = i;
random r = new random();
//用来保存随机生成的不重复的10个数
int result = new int[10];
int site = 15;//设置下限
int id;
for (int j = 0; j < 10; j++)
方法2:利用hashtable。[nextpage]
hashtable hashtable = new hashtable();
random rm = new random();
int rmnum = 10;
for (int i = 0; hashtable.count < rmnum; i++)
}方法3:递归,用它来检测生成的随机数是否有重复,如果取出来的数字和已取得的数字有重复就重新随机获取。
random ra=new random(unchecked((int)datetime.now.ticks));
int arrnum=new int[10];
int tmp=0;
int minvalue=1;
int maxvalue=10;
for (int i=0;i<10;i++)
.........
.........
public int getnum(int arrnum,int tmp,int minvalue,int maxvalue,random ra)
n++;
}return tmp;}
c如何把数字随机分成多个数字,c# 如何把一个数字随机分成多个数字
1楼 匿名用户 1 在1000以内取9个随机数 2 把9个数从小到大排序 3 用第一个数减去0,第二个数减去第一个数,第三个数减去第二个数。。。一直到用1000减去第9个数 4 第3步中,每次相减得的差就是分得的一份。 2楼 匿名用户 生成随机数就得了。 random r new random a1...
C如何从列表里取随机数,C#如何从一个列表里取一个随机数?
1楼 匿名用户 输入 列表 输出 随机元素 public t getrandomitem ilistlist sh 2楼 匿名用户 random对象就是生成随机数的 在c 中,怎么产生一个随机数? 3楼 匿名用户 frameword中提供了一个专门产生随机数的类system random,此类默认情...
C语言如何删除数组中的重复元素,C语言删除一个整型数组里面重复的元素
1楼 include stdafx h vc 6 0加上这一行 include stdio h void main void ln for ln sizeof a sizeof int k i 1 i k a k a i for i 0 i printf n c语言删除一个整型数组里面重复的元素 2...