社区
Java SE
帖子详情
怎样求随机数(在固定的几个数中选取)
bzw2002
2003-10-16 11:06:14
如果我想在2 4 5 9 19这5个数中随机取一个,不能取到别的数,该怎么办呢
...全文
260
8
打赏
收藏
怎样求随机数(在固定的几个数中选取)
如果我想在2 4 5 9 19这5个数中随机取一个,不能取到别的数,该怎么办呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qlampskyface
2004-01-09
打赏
举报
回复
楼上的,假如Math.random()=[0,1)
那么(int)(Math.random()*s.length=0
the_number_you_want =s[0]=2
Math.random()=1那么(int)(Math.random()*s.length=5
the_number_you_want =s[5]=19
请问,这叫随机吗?
Danger2000
2004-01-09
打赏
举报
回复
这样也可以:
int[] s={2,4,5,9,19};
int the_number_you_want =s[(int)(Math.random()*s.length)]
qlampskyface
2004-01-09
打赏
举报
回复
把随便几个数变为从0到*的一个数,helpall的方法好,好好好好!
qlampskyface
2004-01-09
打赏
举报
回复
如果产生一个新的int为200,200×5=1000,你说a[1000]存在吗?
guowuqindage
2004-01-09
打赏
举报
回复
int[] a={1,2,3,4,5};
random r=new random();
int b=a[r.nextInt(sa.length];
这样OK了吗?
qlampskyface
2004-01-09
打赏
举报
回复
如s[5]则outOfBound
collision
2003-10-17
打赏
举报
回复
就是楼上的作法!
helpall
2003-10-16
打赏
举报
回复
int[] s={2,4,5,9,19};
java.util.Random rand = new java.util.Random(System.currentTimeMillis());
int the_number_you_want = s[Math.abs(rand.nextInt()) % s.length];
delphi生成
随机数
delphi产生
随机数
2009-07-27 18:58//用delphi产生不重复的
随机数
****************************************************************************************** var aa : array[1..36] of string[2]; //aa数组为需要随机排列的数组,{先把1..36按顺序给aa数组赋值} procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin for i:=1 to 36 do begin aa[i]:=inttostr(i); bb[i]:=inttostr(i); end; end; {随机进行排列} procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; swapa:string[2]; begin randomize; //
随机数
初始化*一定要有,不然下次运行时候产生的
随机数
仍然和这次相同* for i:=1 to 36 do begin j:=1+random(36); swapa:=aa[i]; aa[i]:=aa[j]; aa[j]:=swapa; end; //由此得到不重复的随机排列数字 ***************************************************************************************** 如何产生34-456之间的
随机数
Randomize; 34+Random(456-34+1); ×××××××××××××××××××//下面是扫雷游戏的一个编法 procedure TForm1.Button1Click(Sender:TObject); begin Randomize; Memo1.Lines.Add(IntToStr(Random(20))); end; ×××××××××××× *****************************************************************************************
随机数
相关的
几个
函数: 1、RandSeed;//随时机数发生的“种子”。如果不赋值那么每次执行产生的
随机数
列是一样的。 所以该值必须每次调用均应是不同值。 2、Randomize;//用当前机器时间作为“种子”初始化
随机数
发生器。 3、Random() ;//由“种子”初始化的
随机数
出发,开始产生
随机数
序列 但是Delphi中的Random()产生的是伪
随机数
,也就是说,程序的两次运行,Random()产生的
随机数
是一样的。 先运行一下Randomize,再Random就是真正的
随机数
了 即: Randomize //初始化
随机数
发生器 Random() ********************************************************************************************* delphi 如何产生不重复
随机数
pascal里的
随机数
随机数
是指理论上没有规律可循、在指定范围内每个数的出现几率相等、无法根据之前的数来预测下一个数的数列。一般
随机数
生成器的基本原理是:首先初始化一个随机种子,其初始值可以是任意的整数;在每次获取
随机数
时,以随机种子为基础进行某种特殊的运算,获得一个
随机数
并返回之,然后再对随机种子进行某种运算,改变随机种子的值。这样,就可以生成许多比较随机的数,但同一个初始值的随机种子将会生成完全相同的
随机数
列。 Pascal的System单元提供了两个与
随机数
有关的子程序:Randomize和Random。 Randomize过程用于初始化随机种子,其初始值取决于当前的系统时钟。 Random函数用于获取
随机数
它有两种调用形式: Random,返回一个0到1之间(不包括1)的随机实数; Random(N),返回0至N之间(不包括N)的随机整数,N为Word类型整数。 另外,System单元中随机种子变量的标识符为RandSeed,你也可以手动修改它。
随机数
在信息学奥林匹克中可用于随机化搜索、穷举等算法,以优化其性能,也可用于在快速排序中选择关键数,以使其快速排序算法的最坏情况没有
固定
的相应数列。如果你希望使用了
随机数
的程序对同一个输入数据能有恒定的输出结果,可以设置RandSeed为一个定值。 ************************************************************************************************* 一个变态小算法 ******************************* 比较耗费机时,如果产生的数目少,就不要用这个算法了。 计算的是在一个范围内(如1-1000),随机抽取n个不相等的
随机数
。我的思想就是先定义一个用来存放的数组(这当然是必须的啦,废话),然后定义了一个二维数组(感觉很浪费空间),这个二维数组是用来存放已经生成
随机数
的范围,当然不是随意存放了,要按照自然顺序,但这还不必要定义二维的。二维主要是存放一个范围,即某一列的第一行存放的是范围的小值,而第二行存放的是范围的大值。这样新生成的
随机数
肯定是在范围之外的,因为范围是已生成
随机数
的范围啊。这样,每次取
随机数
时,先随机抽取在某两个范围数组值之间,再在这两个范围数组值之间取
随机数
。基本上就是这样了。 public class random { int count=500; //个数 int min=1; //最小值 int max=1000; //最大值 int[] r=new int[count]; //
随机数
存储数组 int[][] k=new int[2][count+2]; //存储范围数组,用于判断范围值 //一维数组用来存放范围的小值,二维用来存放大值 int l=0; //存储空间大小 public random() //初始化范围 {k[0][0]=min-1; k[1][0]=min-1; k[0][2]=max+1; k[1][2]=max+1; l=3; } public int ran(){ //来一个可以制造随机整数的东西 return (int)(Math.random()*1000000000); } public void p(int x,int c) //用来比较存储数组 { for(int i=0;i
随机数与当前值的偏差为1,与当前值合并 if(k[0][i]-x==1){ k[0][i]=x; if (k[0][i]-k[1][i-1]==1) //如果与前一个范围值的最大值的值差为1与前一个值合并 {k[1][i-1]=k[1][i]; move(l-1,i); l--;} break;} //如果与但前范围值差大于1 else{ for(int j=l;j>i;j--){ //后移数组为插入值留个位置 k[0][j]=k[0][j-1]; k[1][j]=k[1][j-1]; } k[0][i]=x; //插入值 k[1][i]=x; l++; if (k[0][i]-k[1][i-1]==1) //如果插入值与前一个范围值相差1,则与前一个值合并 {k[1][i-1]=k[1][i]; move(l-1,i); l--;} break; }} } } public void move(int m,int n) //与前一个范围值合并的函数 { for(int j=n;j
随机数的主函数 r[0]=ran()%max+min; //插入第一个值 if(r0==1) k[1][0]=r[0]; else{ k[0][1]=r[0]; k[1][1]=r[0];} for(int i=1;i
2) z=ran()%(l-2); //判断有多少个空隙,就是有多少个范围,然后随机
选取
一个 else z=0; r[i]=ran2(k[0][z+1],k[1][z]); //在
选取
的范围中制造
随机数
p(r[i],i); } } public int ran2(int x,int y){ //在
固定
范围内制造
随机数
int m=x-y; m=ran()%(m-1); return m+y+1; } /*public static void main(String[] args) { random rr=new random(); rr.r(); for(int i=0;i
概率回溯-八皇后问题.cpp
在回溯的基础上作修改,将其中
几个
固定
的变为
随机数
选取
,此代码中所用方法如果随机
选取
过多会导致运行时间过长。
CRC与ADC与DMA与
随机数
发生器-第5季第5部分
《朱有鹏老师单片机完全学习系列课程》针对有志于物联网技术开发行业的零基础学员设计,共分6季,总200余小时的课程。本课程属于第5季。本季课程主要讲解STM32的全新开发方式:使用STM32CubeMX工具做图形化配置,自动生成初始化代码;添加各种中间件;使用HAL库和LL库来操作外设。结合朱老师物联网大讲堂专为nbiot物联网开发而设计的NB476开发板,本季课程能够让大家彻底掌握物联网时代以nbiot和低功耗STM32L4单片机为代表的典型开发模式,实战意义非常重要。课程特色*完全零基础,降低学习门槛。*深入浅出,通俗易懂。不怕学不会,就怕你不学习。*思路清晰、语言风趣,对着视频看也不会想睡觉······*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。
PyTorch
固定
随机数
种子
在神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果。当得到比较好的结果时我们通常希望这个结果是可以复现的,在PyTorch中,通过设置全局
随机数
种子可以实现这个目的。本文总结了PyTorch中
固定
随机种子的方法。
python如何一次性取出多个
随机数
4种方案
python如何一次性取出多个
随机数
4种方案 (1)random.choice从序列bai中获取一个随机元du素。其函zhi数原型为:random.choice(sequence)。参数daosequence表示一个有序内类型。 (2)在
固定
列容表中随机去多个数,random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。 (3)随机取多个数,random.randint()的函数原型为:random.randint(a
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章