问题描述
500至69859415间,6000个不重复随机数。要求效率高一些。好了马上给分,在线等,20点前结贴。
解决方案
解决方案二:
对了,我是用asp.net(C#)的,所以,要求是C#的。谢谢。
解决方案三:
随机生成后检测是否存在后,不存在就放入数组,存在就重来,
解决方案四:
好象只有楼上的办法现成的我就有java的没c#的没办法
解决方案五:
学习。
解决方案六:
mark
解决方案七:
Randomrand=newRandom();stringstrInt="";while(true){inti=rand.Next(69859416);if(strInt.Contains(i.ToString())){continue;}else{if(i>500){strInt+=i.ToString()+",";}}if(strInt.Split(',').Length==6001){break;}}string[]strResponse=strInt.Split(',');for(inti=0;i<strResponse.Length-1;i++){Response.Write(strResponse.GetValue(i)+"<br>");}Response.Write("总数量:"+strResponse.Length);strInt.Split(',').Length==60016001的原因是因为最后一个为空因为a,他看做2个数所以6001其实是6000个数
解决方案八:
System.DateTimedt0=DateTime.Now;Randomrm=newRandom(DateTime.Now.Millisecond);intiValue=0;System.Collections.Hashtableht=newHashtable();for(inti=0;i<6000;i++){iValue=rm.Next(500,69859416);if(!ht.ContainsKey(iValue)){ht.Add(iValue,null);}else{i--;}}doubleiUseedTime=((TimeSpan)(DateTime.Now-dt0)).TotalMilliseconds;Response.Write("HasthTable用时"+iUseedTime.ToString()+"毫秒<BR>");Response.Flush();foreach(objectkeyinht.Keys){Response.Write(key.ToString()+"<BR>");}
解决方案九:
cpp2017(慕白兄),真是强!!!
解决方案十:
用Random来生成,用HashTable(例如Collection)来保存哪个已经生成过。
解决方案十一:
哈哈,给你一个,以后买福彩就用它了,哈哈.packageutils;importjava.util.ArrayList;importjava.util.Arrays;publicclassFuCai{/***@paramargs*/publicstaticvoidmain(String[]args){System.out.println(getFuCaiNumber());}publicstaticint[]getFuCaiRedNumber(){ArrayList<String>redNumList=newArrayList<String>();while(true){StringredRandomNumber=String.valueOf((int)(Math.random()*33+1));for(inti=0;i<6;i++){if(redNumList.contains(redRandomNumber)){break;}else{redNumList.add(redRandomNumber);}}if(redNumList.size()==6){break;}}int[]redNumStr=ListArrayConvertor.toIntArray(redNumList);Arrays.sort(redNumStr);returnredNumStr;}publicstaticintgetFuCaiBuleNumber(){return(int)(Math.random()*16+1);}publicstaticStringgetFuCaiNumber(){StringnumberStr="";int[]redNumArray=getFuCaiRedNumber();for(inti=0;i<6;i++){numberStr=numberStr+redNumArray[i]+"";}return"xinyunfucaihongseqiuhaoma:"+numberStr+"lanseqiu:"+getFuCaiBuleNumber();}}packageutils;importjava.util.List;publicclassListArrayConvertor{publicstaticString[]toStringArray(Listlist){String[]str=newString[list.size()];for(inti=0;i<list.size();i++){str[i]=(String)list.get(i);}returnstr;}publicstaticint[]toIntArray(Listlist){int[]intArray=newint[list.size()];for(inti=0;i<list.size();i++){intArray[i]=Integer.valueOf((String)list.get(i)).intValue();}returnintArray;}publicstaticStringtoString(String[]str){StringresultStr="";for(inti=0;i<str.length;i++){resultStr+=str[i];}returnresultStr;}}
解决方案十二:
哈哈,学习一下了
解决方案十三:
mark.
解决方案十四:
咔咔,几百年的帖子,学习
解决方案十五:
这么老的帖谁又给翻出来了。。。。。
解决方案:
mark
解决方案:
用Random来生成,用HashTable(例如Collection)来保存哪个已经生成过。=================================用泛型,效率会不会更加好?
解决方案:
publicint[]getRandomNum(intnum,intminvalue,intmaxvalue){int[]intArr=newint[num];ArrayListmyList=newArrayList();Randomrnd=newRandom();while(myList.Count{inttemp=rnd.Next(minvalue,maxvalue);if(!myList.Contains(temp))myList.Add(temp);}for(inti=0;iintArr[i]=(int)myList[i];returnintArr;}
解决方案:
呵呵学习
解决方案:
cpp2017(慕白兄)也会出错呵呵!.....“<BR>”
解决方案:
cpp2017(慕白兄),真是强!!!
解决方案:
cpp2017(慕白兄)你可是高手哦
解决方案:
学习下