手机评站网 > 手机教程 >

导航导航

随机数的产生

发布日期:2021-01-04 11:40:00编辑:周老师

手机评站网今天精心准备的是《随机数的产生》,下面是详解!

c语言,如何产生随机数

谁能告诉我随机数产生的原型函数(例如,文本前景色设置函数的原型voidtextcolor(intcolor);其中color为颜色值)。rand,srand,randmize,的原型,最好有个简单的例子。虽然搜到很...

谁能告诉我随机数产生的原型函数(例如,文本前景色设置函数的原型void textcolor(int color);其中color为颜色值)。 rand,srand,randmize,的原型,最好有个简单的例子。虽然搜到很多例子,但是看不懂...嘿嘿 展开

1、第一步,先定义int一个数组和int一个指针变量。

2、接着我们选择让指针指向数组的第一元素的地址。

3、接着使循环的条件为指针的尾地址。

4、并且因为这段代码每次循环后指针+1。

5、最后,让他进行输出。

6、最后编译运行完成后,便可以看到运行结果。

C语言怎样产生一定范围的随机数?

现在需要产生1~3之间的整型随机数,该用什么函数产生?百度上面没找到产生随机数的范围最小值大于0的方法,rand,srand怎么用才能产生任意范围的整型随机数?在线等待中~~~~...

现在需要产生1~3之间的整型随机数,该用什么函数产生?百度上面没找到产生随机数的范围最小值大于0的方法,rand,srand怎么用才能产生任意范围的整型随机数?
在线等待中~~~~

在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,可以称它为种子。

为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。

C语言产生一定范围的随机数的源代码如下:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int i;

for(i=0; i<10; i++) //随机产生10个数。

{

printf("%d\n", rand());

}

return 0;

}

扩展资料

1、如果要随机生成一个在一定范围的数,你可以在宏定义中定义一个random(int number)函数,然后在main()里面直接调用random()函数。

2、在对rand()的前三次调用中,并且此后得到的返回值仍然是在对rand()的第一批调用中所得到的其余的返回值。因此,只有再次给srand()提供一个随机的“种子”值,才能再次得到一个随机数。

在java中产生随机数

要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法,
其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法
如:
产生一个100以内的整数:int x=(int)(Math.random()*100);
又如:
产生一个1-50之间的随机数:int x=1+(int)(Math.random()*50)

如何用c语言产生一定范围内的随机数?

请附带一定的解释……谢谢啦!...

请附带一定的解释……
谢谢啦!

利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。

在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:

1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;

2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)

3) 根据需要多次调用rand(),从而不间断地得到新的随机数;

4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。

下面是0~32767之间的随机数程序:

#include <stdlib.h>

#include <stdio.h>

#include <time.h>           // 使用当前时钟做种子

void main(void)

{int i;

srand((unsigned)time( NULL ) );          // 初始化随机数

for(i = 0; i < 10;i++)                          // 打印出 10 个随机数

printf("%d\n", rand() );

}

根据上面的程序可以很容易得到0~1之间的随机数:

#include <stdlib.h>

#include <stdio.h>

#include <time.h> 

int main( )

{int i;

srand((unsigned)time( NULL ) );  

for(i = 0; i < 10;i++)

printf("%5.2f\n", rand()/32767.0);

}

而产生1~100之间的随机数可以这样写:

#include <stdlib.h>

#include <stdio.h>

#include <time.h> 

int main( )

{int i;

srand((unsigned)time( NULL ) );  

for(i = 0; i < 10;i++)

printf("%d\n", rand()%100+1);

}

扩展资料:

C语言高效编程技巧:

一:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:数学方法解决问题 

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。

三:使用位操作

实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。

在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。

参考资料来源:百度百科-C语言

Excel生成一列随机数

用什么方法可以让Excel生成一列限定了大小的随机数,比如生成0-0.01之间的随机数,要随机数不因其它数据变化发生变化,谢谢!...

用什么方法可以让Excel生成一列限定了大小的随机数,比如生成0-0.01之间的随机数,
要随机数不因其它数据变化发生变化,谢谢!

excel可以使用RANDBETWEEN函数生成一列随机数。

1、点击需要生成随机数的句柄,在顶部点击函数工具图标:

2、在函数中找到RANDBETWEEN函数并选中这个函数,然后点击“确定”按钮:

3、在窗口中输入随机数最小的值和最大的值,注意这里只能填写整数:

4、如果需要生成小数,可以在函数后方乘以小数,例如生成0-1之间小数可以在后面添加“*0.01”:

5、这时单元格就会生成一个小数,向下拖动单元格操作柄可以生成一列随机数:

问excel产生随机数后固定

怎样批量产生随机数后,使得到的随机数固定不再变化?谢谢...

怎样批量产生随机数后,使得到的随机数固定不再变化?谢谢

1、打开excel软件并创建一个新的空白表单。

2、输入要生成概率随机数的原始数据。原始数据的不同之处在于绘制不同奖项的概率。根据指示获胜状态的概率的大小来确定随机数的生成。

3、随机选择一个单元格来定义固定概率随机数函数。

4、输入= LOOKUP(RAND()* 100,{0,1,5,75,85},{“一等奖”,“二等奖”,“参与奖”,“三等奖”,“四等奖”})这是使用查找和rand函数生成固定概率随机数的组合公式。

5、以下是随机生成固定的数字。也就算概率,效果如下。

如何在java中产生随机数?

  1. 在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。

  2. 在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。

  3. 在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内。

具体编程方法摘要:

Random()

创建一个新的随机数生成器。

Random(long seed)

使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next
方法使用它来保存随机数生成器的状态。

protected int next(int bits)

生成下一个伪随机数。

boolean nextBoolean()

返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。

void nextBytes(byte[] bytes)

生成随机字节并将其置于用户提供的字节数组中。

double nextDouble()

返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0之间均匀分布的 double 值。

float nextFloat()

返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0 之间均匀分布的 float 值。

double nextGaussian()

返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。

int nextInt()

返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

int nextInt(int n)

返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。

long nextLong()

返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。

void setSeed(long seed)

使用单个 long 种子设置此随机数生成器的种子。

在c#中,怎么产生一个随机数?

.net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用。我们知道,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。
可以用以下两种方法初始化一个随机数发生器;
函数是这样用,比如100至999的随机数
Random ran=new Random();
int RandKey=ran.Next(100,999);

不过这样会有重复,可以给Random一个系统时间做为参数,以此产生随机数,就不会重复了
第一种方法不指定随机种子,系统自动选取当前时前作随机种子:
Random ra=new Random();

第二种方法是指定一个int型的参数作为随机种子:
int iSeed=6;
Random ra=new Random(iSeed);
下面我们要用到Random.Next()方法产生随机数。
ra.Next();

它返回一个大于或等于零而小于2,147,483,647的数,这并不满足我们的需要,下面我们介绍它的重载函数和其它一些方法。
public virtual int Next(int);

用法:ra.next(20)
返回一个小于所指定最大值(此处为20)的正随机数。
public virtual int Next(int minValue, int maxValue);

用法:ra.next(1,20)
返回一个指定范围内(此处为1-20之间)的随机数,我们在下面的实例中会用到此函数。
类System.Random还有几个方法分别是:
公共方法:
NextBytes用随机数填充指定字节数组的元素。
NextDouble返回一个介于 0.0 和 1.0 之间的随机数。
受保护的方法:
Sample返回一个介于 0.0 和 1.0 之间的随机数,只允许子类对象访问。
以上介绍了随机数的基本用法,下面我们用一个实例来做更进一步的介绍。要在一段数字区间内随机生成若干个互不相同的随机数,比如在从1到20间随机生成6个互不相同的整数。
主要是下面两个函数getRandomNum与getNum:

public int[] getRandomNum(int num,int minValue,int maxValue)
{
Random ra=new Random(unchecked((int)DateTime.Now.Ticks));
int[] arrNum=new int[num];
int tmp=0;
for (int i=0;i<=num-1;i ){
tmp=ra.Next(minValue,maxValue); //随机取数
arrNum[i]=getNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中
}
return arrNum;
}

getRandomNum即是在区间[minValue,maxValue]取出num个互不相同的随机数,返回的数组包含着结果。
其中随机数是这样创建的 Random ra=new Random(unchecked((int)DateTime.Now.Ticks));为什么不用Random ra=new Random();(系统自动选取当前时前作随机种子)

用系统时间做随机种子并不保险,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此构造函数的调用之间进行更改,Random 的不同实例的种子值可能相同。这种情况下,我们就需要另外的算法来保证产生的数字的随机性。所以为了保证产生的随机数足够"随机",我们不得不使用复杂一点的方法来获得随机种子。在上面的这段程序中,我们首先使用系统时间作为随机种子,然后将上一次产生的随机数跟循环变量和一个与系统时间有关的整型参数相乘,以之作为随机种子,从而得到了每次都不同的随机种子,保证了产生足够"随机"的随机数。

函数getNum是一递归,用它来检测生成的随机数是否有重复,如果取出来的数字和已取得的数字有重复就重新随机获取。值得注意的是要用一同一个随机数实例生成,所以ra要作为参数传入getNum中,否则生成的数字会有重复。

public int getNum(int[] arrNum,int tmp,int minValue,int maxValue,Random ra){
int n=0;
while (n<=arrNum.Length-1)
{
if (arrNum[n]==tmp) //利用循环判断是否有重复
{
tmp=ra.Next(minValue,maxValue); //重新随机获取。
getNum(arrNum,tmp,minValue,maxValue,ra);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取。
}
n ;
}
return tmp;
}

最后就是要显示出来,当点击一个button时取出的数字显示在一个label中。

private void button1_Click(object sender, System.EventArgs e)
{
int[] arr=getRandomNum(6,1,20); //从1至20中取出6个互不相同的随机数
int i=0;
string temp="";
while (i<=arr.Length-1){
temp =arr[i].ToString() " ";
i ;
}
label1.Text=temp; //显示在label1中
}

SQL产生随机数

selectXH,XM,XB,BB,ZW,WL,dbo.KSH(0930001,0932150)KSHfromXSB但是最终显示前面的0没有变成930001.要怎么样设置呢...

select XH,XM,XB,BB,ZW,WL,dbo.KSH(0930001,0932150) KSH from XSB
但是最终显示前面的0没有变成930001.要怎么样设置呢

下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手,不妨一看,相信对您学习SQL中的函数会大有帮助。
在SQL Server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要拍砖呀,我的头还不够硬
不过还是希望老鸟们多多指教了,现在切入正题:
随机函数:rand()
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,
像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:
1、
A:
select floor(rand()*N) ---生成的数是这样的:12.0
B:
select cast( floor(rand()*N) as int) ---生成的数是这样的:12
2、
A:select ceiling(rand() * N) ---生成的数是这样的:12.0
B:select cast(ceiling(rand() * N) as int) ---生成的数是这样的:12
其中里面的N是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
对于这个区别,看SQL的联机帮助就知了:
------------------------------------------------------------------------------------
比较 CEILING 和 FLOOR
CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
----------------------------------------------------------------------------------
现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^
另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():
select top N * from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数 。

wps产生随机数1.15-1.2之间 怎么做

用WPS怎么做1.15-1.20.5-1小于等于100。。。。这些数值中间的随机数...

用WPS 怎么做 1.15-1.2 0.5-1 小于等于100 。。。。 这些数值中间的随机数

1、打开WPS表格,首先在表格的单元格中输入公式:=RAN(),此公式为随机数字公式。

2、点击回车,即可在单元格中生成一个随机数据,可以看到此时数据没有在需要的区间内。

3、然后继续在“=RAN()”后输入公式,形成“1.15-1.2 ”区间内的计算公式:=RAND()*(1.2-1.15)+1.15。

4、点击回车,即可生成“1.15-1.2 ”区间内的随机数字,点击任意单元格即可生成一次新的随机数字。

点击展开全文

大家都在看

最新资讯