Ⅰ 关于java里产生1-6随机数的方法
我认为2种方法产生的1~6的几率是相等的,都为1/6.
第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.
另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.
Ⅱ C语言产生1~6的一个随机数!!急!
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x,num;
srand(time( NULL ));
x =1 + (rand()%6);
printf("%d",x);
return 0;
}
源代码截图:
Ⅲ c语言怎么产生随机数(1~6)
系统的函数是产生0~32767的随机数,将这个数对六取余得到0~5的随机数,再+1就是1~6的随机数了
假如随机数的函数是a()
就这样写:a()%6+1
Ⅳ C++,请问如何产生一个1-6的随机数
#include<time.h>
#include<math.h>
srand(time(NULL));
int a=rand()%6+1;
不明白的问我。
Ⅳ 怎样产生1到6之间的六个随机数
为了保证每次产生的随机数不同,需要用time作为随机数种子,来产生随机数:
srand((unsigned)time(NULL));
这是函数产生的随机数:
int R;
R=rand();
此时R在1到327687(即两个字节16位所能表示的最大值)之间均匀分布。
想要得到的随机数为myrand即:
int myrand=R%6+1;
Ⅵ 怎样随机生成不重复的1到6之间的随机数123456或546321
做一个函数,一个参数为序号,一个参数为总数。
这个函数列出所有的不重复的1到6之间的数。
通过序号可以得到一个对应的数。
然后用rand生成的随机序号,调用该函数
Ⅶ 伪随机数的生成方法
一般地,伪随机数的生成方法主要有以下3种:
(1) 直接法(Direct Method),根据分布函数的物理意义生成。缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。
(2) 逆转法(Inversion Method),假设U服从[0,1]区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。该方法原理简单、编程方便、适用性广。
(3)接受拒绝法(Acceptance-Rejection Method):假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)≤cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。
因此,伪随机数生成器(PRNG)一般采用逆转法,其基础是均匀分布,均匀分布PRNG的优劣决定了整个随机数体系的优劣[7]。下文研究均匀分布的PRNG。
Ⅷ 请教C语言高手,如何编写一个1-6的随机数
include<stdlib.h>
include <time.h>
a=1;b=6;
代入即可
1.int a=rand()%(b-a+1)+a;rand()产生的是0--32767之间的随机数,rand()%6则结果为0-5的任意数,rand()%6+1则为1-6的任意数
2.int a=(int)random(b);random(n)是产生从1到n 的一个随机数
3.randomize();
int a=rand()%(b-a+1)+a;同1
Ⅸ 一到六的随机数是什么
一到六的随机数是每次产生的随机数不同,需要用time作为随机数种子,来产生随机数。这是函数产生的随机数。int R,R=rand();此时R在1到327687即两个字节16位所能表示的最大值之间均匀分布。
随机数的原理
随机变量的抽样序列称为随机数列。若随机变量是均匀分布的,则的抽样序列称为均匀随机数列;如果是正态分布的随机变量,则称其抽样序列为正态随机数列。
用数学方法产生随机数,就是利用计算机能直接进行算术运算或逻辑运算的特点,产生具有均匀总体、简单子样统计性质的随机数。计算机利用数学方法产生随机数速度快,占用内存少,对模拟的问题可以进行复算检查,通常还具有较好的统计性质。
另外,计算机上用数学方法产生随机数,是根据确定的算法推算出来的,因此严格说来,用数学方法在计算机上产生的随机数不能说是真正的随机数,故一般称之为伪随机数。
Ⅹ 关于Java里产生1-6随机数的方法
用java.util.Random 类比较好用Random r=new Random();int i=r.nextInt(6)+1;生成1到6的数字应该机率比较相等;(int)(Math.random()*10)%6+1产生0到9内的整数再 得到1,2,3,4的概率大些因为(int)(Math.random()*10)%得到的数是从0到9;0%6+1=1.。。。。。。5%6+1=6……6%6+1=1.。。。。9%6+1=4;所以不相等另一种 (int)(Math.random()*6)+1从0.1到0.9 *6得到数是int型是0,1,1,2,3,3,4,4,5,+