knrt.net
当前位置:首页 >> C#有没有函数能生成不重复的随机数,比如1 >>

C#有没有函数能生成不重复的随机数,比如1

用Random类生成随机数,然后还前面生成的随机数比较,如果相同就删除.然后继续用Random生成随机数只到生成的随机数一个都不重复下面的代码可以参考一下,主要是用了RAND类的NEXT方法 int[] randomArray = new int[20]; Random random=new Random(); randomArray[0] = random.Next(1, 10); for (int i = 1; i 评论0 4 0

C#有随机器Random,可以生成数字.代码一般这样:Random rand = new Random(); //这个是当前时间作为随机种子,生成的数字有可能重复,机率小.rand.Next(1, 10000);生成1与10000之间的int如果想重复的机率小一些,就给Random()一个种子long tick = DateTime.Now.Ticks; Random ran = new Random((int)(tick & 0xffffffffL) | (int) (tick >> 32));但也不是绝对的,机率非常小,几乎可以不计.如果非要绝对不复重,你只有生成数字后去和以前生成的数字进行比较(写个递归,但性能不好).

illisecond其实都是一样的所以随机数也一样楼上的也不对,那是没区别你可以用下面办法试试看System.Random a= new Random(System.DateTime.Now.Millisecond+i);+个i,让种子每次都不一样

1、用随机数生成函数生成随机数2、然后用生成的数字除与15,取余3、循环上面2步骤,一直到生成15个.

这个问题在CSDN、StackOverFLow上都有相关内容,最后的结论是同样的,即:“随机数 和 不重复 是相悖的两个概念”.因此这个问题理论上无解.随机数,(一般C#中)指的是随机生成的一个整型或者浮点型数字.不重复,指的是在一个

使用random来生成随机数.Random rand = new Random(); int i = rand.Next(1, 34);但是这样的话也有可能产生重复的,你可以把已经生成的数存到一个数组中,每新产生一个就和数组里已有的数比较,如果有重复就重新生成,直到所有的数字都全部生成.

static void Main(string[] args){ int[] longNum = new int[100]; int rand = 0; Random rd = new Random(); for (int i = 0; i 评论0 4 0

1-33放在一个集合里面,随机数=1到集合长度.随机一个,就取出集合对应位置的数字,并且删除这行.继续随机数=1到集合长度,再取. 循环6次就完了.

private const int num = 3; //数目 private const int maxvalue = 5; //最大数 private const int minvalue = 1; //最小数public int[] sort(int[] num) { int i,j ,temp; int n = num.length; for (i = 0; i num[j]) { temp = num[i]; num[i] = num[j]; num[j] = temp; } } } return

随机产生数组的下标,不直接产生数,我举随机产生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 评论0 0 0

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com