如何随机c 生成随机整数1到5的1000个整数,且每个数出现的几率不同?

14:00:26【 转载互联网】 作者: &&|&责编:李强
&&& &为了解决用户可能碰到关于"php生成随机数,1-15之间,2出现的概率是80% 然后其它数字出现的概率是10%"相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"php生成随机数,1-15之间,2出现的概率是80% 然后其它数字出现的概率是10%"相关的详细问题如下:RT,我想知道:php生成随机数,1-15之间,2出现的概率是80% 然后其它数字出现的概率是10%===========突袭网收集的解决方案如下===========
解决方案1: 试试这样的呢?&?php$i=0;$c_t=0;$c_o=0;while($i&1000){ $p = mt_rand(1,100); if($p&=10){ //概率为10% $num=mt_rand(1,15); while($num==2){ //如果随机的数为2,重新生成 $num=mt_rand(1,15); } $c_o++; }elseif($p&20){ //概率为80% $num=2; $c_t++; } $i++;}$p_t = round($c_t/$i*100);$p_o = 100-$p_t;echo &&br&2:&.$c_t.&个,占&.$p_t.&%||其他:&.$c_o.&个,占&.$p_o.&%&;?&这样输出不一定有1000个,但每次输出是2的概率是80%,不输出的概率是10%,其他10%
================可能对您有帮助================
答:按照你给的信息,我分析了下,也就是说2的出现概率是其他数值的8倍,不知道我分析错了没有,如果是错的,下面代码就不用看了 ===========================================答:按照你给的信息,我分析了下,也就是说2的出现概率是其他数值的8倍,不知道我分析错了没有,如果是错的,下面代码就不用看了 ===========================================问:php中如何自动生成1-15之间的随机数? 能实现吗?哪位能帮我写这段程序...答:按照你给的信息,我分析了下,也就是说2的出现概率是其他数值的8倍,不知道我分析错了没有,如果是错的,下面代码就不用看了 ===========================================问:php中如何生成1-15之间的随机数? 能实现吗?哪位能帮我写这段程序啊?...答:rand(1,15);===========================================问:麻烦帮我设计一个简单的php程序:让这个php程序产生20个随机数,并且范围...答:mt_rand — 生成更好的随机数 它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。 所以建议楼主用这个函数 比rand要快 int mt_rand ([ int $min ], int $max ) $min为做小值 $max为最大值 ===========================================问:1为70%,2为10%,3为20%答:以下代码,直接运行即可 以下代码,直接运行即可===========================================问:php 怎么同时产生两个不同得随机数答:以下代码,直接运行即可 以下代码,直接运行即可===========================================问:求js和php怎样生成随机数,0到1之间的,保留两位小数点。答:js 随机数 var num=Math.random(); var newNum =num.toFixed(2); alert(newNum); php随机数 ===========================================问:echo“以下生成1~100之间的多个随机数&br/&"; for($i=0;$i&100;++$i) { $...答:i从0开始 每次循环一次加1 就是1,2,3,4,5,6。。一直到99 一共循环100次 所以用i代表生成的个数 %这个符号在php代表取余数,+1在php里可以当成 i=i+1===========================================rand(min,max)
可选参数min和max可以使rand() 返回0到RAND_MAX之间的伪随机整数。例如,想要5到15(包括 5 和 15)之间的随机数,用 rand(5, 15)。===========================================RANDI ( 1 2nd ( 15 )
RANDI (1,15) ENTER(=)
? 在显示结果为RANDI(1,n)时,每按一次 = 键就产生1到n之间任意一个整数,这样的数就叫随机数。===========================================绝对有效代码
Random rd = new Random();
int a = rd.Next(100);
float f =( float )(a * 0.01);
textBox1.Text = f.ToString();===========================================如果要整数,就这样写(区间是[-20,-15]和[15,20])var i:int = (Math.round(Math.random()) * 5 + 15)*(Math.round(Math.random())*2-1)如果是要小数的话,就这样写(区间是(-20,-15)和(1...===========================================PHP 的随机数函数是 rand() 至于用法你可以去看手册说的肯定比我详细.第2个问题: 数组中是随机取得一个元素的函数 是array_rand()楼主 要多去看手册 要不然 你连PHP有什...===========================================可选。规定随机数产生的范围。
说明 如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 5 到 15(包括 5 和 15)之间的随机数,用 ra...===========================================int rand ( [int min, int max] )
如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 rand(5, 15)。===========================================一部分
设置随机种子,同样的随机种子按照同样的顺序取到的随机数必然相同,在... 之前调用 srand() 播下随机数种子(以时间为srand的参数)。自 PHP 4.2.0 不再需要这样...===========================================随机整数
int rand ( [int min, int max] )
如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 ran...===========================================然后再将e_4文件夹重命名为"8位随机数.TMP"(8位随机数由系统随机生成).... 之前,要确保你有Administrator权限.
这样就可解决有些.EXE程序执行时出现"Fai...===========================================
12345678910当前位置: >
> 1~1000范围的有限的随机数产生的问题在1~1000产生N个随机数(N为用户指定,N大于0,不大
1~1000范围的有限的随机数产生的问题在1~1000产生N个随机数(N为用户指定,N大于0,不大
monkeyjun & at
1~1000范围的有限的随机数产生的问题在1~1000产生N个随机数(N为用户指定, & N大于0,不大于1000),产生出来的数,不能重复,如N=3时,结果可以是1,202,454;但不能为34,43,43。
我现在的实现是,如果N=1000时,顺序产生全部的1~1000。
如果N &1000,则随机产生数,同时进行重复数过滤。
现在问题是当900 &N &1000,特别是995 &N &1000时,程序总是不停的产生数并判断该数已经产生过,然后继续重复上述步骤。
想请教如何改变算法,让产生过程更快。
为什么只有那个区间有这个问题,难道[1,5]等没有马?
如果当区间很小的时候[min,max]可以在[1,max-min+1]的区间上产生几个数
再加上min就应该可以乐吧?
我知道我说的对不对?
monkeyotta & &
& & (0)(0)以下示例假设N=1000
用一个列表,把1到1000的数存起来,随机从所有数中取出一个,后面的数前移,列表的元素数量减1,如此重复。
monkeytear & &
& & (0)(0)给你写了个,速度还可以,一秒钟不到,就出来了。
#include &time.h&
#include &stdio.h&
#include &stdlib.h&
int find(int *a,int num,int data);
void main()
int a[1000]={0},temp,n;
int i,j,k;
printf( &please input zhe number of data: &);
scanf( &%d &,&n);
for(i=0;i &n;i++)
srand(time(NULL));
temp=rand()%(1000-i)+1;
for(j=0,k=0;j &)
{if(a[k++]==0)
for(i=1;i &=1000;i++)
if(a[i-1]==1)
printf( &%4d &,i);
程序的思想是这样的:
用一个标志数组a[1000],加入产生的数为123,则将a[122]置为1,产生n个数后,把下一个随机数(假设为next)的范围定为1000-n,由于此时数组a还有1000-n元素没有置为1,此时可以把next对应的空位置为1,这样一直循环,直到产生所需数为止。
最后扫描整个数组a,把值为1的元素位置输出即可。
monkeyqiu & &
& & (0)(0)用洗牌算法
定义一个数组,里面是顺序排好的自然数
把随机一个数组元素和第一个元素交换
把随机一个数组元素和第二个元素交换
把随机一个数组元素和第三个元素交换
把随机一个数组元素和第N个元素交换
这里N为需要生成的不重复随机数个数
wanshanguang & &
& & (0)(0)随机洗牌算法。
&E&&ú&I&&A&AE&E&·¨
±à³&I&·¾³: VC6.0
&iostream&
Random_Shuffle( int n )
list[1000];
for( i=0; i &1000; ++i )
list[i]=i+1;
srand(time(NULL));
for( i=0; i &1000; ++i ){
j=rand()%1000;
swap( list[i], list[j] );
for( i=0; i &n; ++i )
cout & &list[i] & & &
cout & & &&C&&E&&E&N (N &1000) :
Random_Shuffle( n );
}wanrui & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-Java编程生成100个1~6之间的随机数,统计1~6每个数出现的概率;_百度知道
Java编程生成100个1~6之间的随机数,统计1~6每个数出现的概率;
现了上述功能之后,之后修改程序使之生成之间的随机数并统计概率,并得出结论~,比较不同的结果
+b[1]&#47.0.println(&quot,0,0;i++)
a[i]=t.println(&quot,0;1000);
System.out.out.0;/i++)
for(int i=0;for(int i=0;1000);+b[3]&#47.0}.nextInt(7);
Random t=new Random().println(&
double[] b=new double[]{0;+b[5]/;+b[2]/
System.0.out.println(&10;+b[4]&#47.println(&
else if(a[i]==5)
b[4]++;2出现的概率是&
if(a[i]==1)
b[0]++;1出现的概率是&
else if(a[i]==2)
else if(a[i]==3)
else if(a[i]==4)
b[3]++;6出现的概率是&+b[0]&#47.out.0;
S4出现的概率是&1000);i&lt.println(&3出现的概率是&quot.0;1000);
System.*import java.println(a[i]);public class TT { public static void main(String[] args) {
int[] a=new int[1000];i&lt.out,0.
b[5]++;5出现的概率是&1000)
其他类似问题
按默认排序
其他3条回答
的出现频率是;} public static void add(int no){
if(h.get(c);7.containsKey(no))
h.public class test { private static Random r=new Random().util.put(c++)
System.parseInt(h;1000;c&lt.get(no).toString())+1)));
add(getNos());i&lt.R }
public static void main(String[] args) {
for(int i=0;+I
for(int c=1.nextInt(6)+1.00+&quot:& private static HashMap h=new HashMap().toString())/10.HashMapimport java.put(no, 1);import java.parseInt(h,(Object)((Integer.println(c+& public static int getNos(){return r.)
import java.util.*;class MyRandom{
public void randomTest(){
Random rand=new Random();
ArrayList a=new ArrayList();
ArrayList b=new ArrayList();
ArrayList c=new ArrayList();
ArrayList d=new ArrayList();
ArrayList e=new ArrayList();
ArrayList f=new ArrayList();
ArrayList g=new ArrayList();
for(int i=0;i&1000;i++){
int MyInt=rand.nextInt(6)+1;
if(MyInt==0){
if(MyInt==1){
if(MyInt==2){
if(MyInt==3){
if(MyInt==4){
if(MyInt==5){
if(MyInt==6){
System.out.println(&1的概率是:&+b.size()*0.1);
System.out.println(&2的概率是:&+c.size()*0.1);
System.out.println(&3的概率是:&+d.size()*0.1);
System.out.println(&4的概率是:&+e.size()*0.1);
System.out.println(&5的概率是:&+f.size()*0.1);
System.out.println(&6的概率是:&+g.size()*0.1);
} }public class Test{ public static void main(String args[ ]) {
MyRandom ran=new MyRandom();
ran.randomTest();
上面的高手程序还是不错的,不过有个较大的错误:a[i]=t.nextInt(7) ;应该改为a[i]=t.nextInt(5)+1;这样产生的随机数才在1-6之间.
java编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁编写一个程序,随机生成100个之间的整数,将它们写到一个文件out.dat中。然后从out.dat中读出100_百度知道
编写一个程序,随机生成100个之间的整数,将它们写到一个文件out.dat中。然后从out.dat中读出100
我有更好的答案
打印出 前十个。
&#47.io. 10java实现
你问题没有写明白.dat&然后读进来
File dataFile = new File(&quot.nextInt(1000) + 1001.FileInputS
catch (IOException e)
e.R public static void main(String[] args) throws Exception {
Random r = new Random(),对比一下 发现一样的
for(int j = 0 ,我就随便写了个 反正能用
生成 的 然后输出到文件;g;
&#47.打印出前十个
if(i &=randomNum& 1000&lt.&#47:&#47.F= 2000;i &lt.out,
对比发现一样.IOException.
DataInputStream ios =import java.import java.BufferedWriter.DataOutputStream.writeInt(randomNum).readInt());).DataInputS
for(int i = 0;
int randomNum = r.out.FileW j &lt.io.io.
ios = new DataInputStream(new FileInputStream(dataFile)).println( 10)
System.println(randomNum).FileOutputS
dos = new DataOutputStream(new FileOutputStream(dataFile));public class Helptest{
private static final int count = 100;/
DataOutputStream dos = i++)
&#47,然后读进前十个;&#47.printStackTrace()
其他类似问题
dat的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前位置: >
> 随机生成1000个在1到1000之间的数(0<x<=1000)存入数组,设计函数Ave,输出数组元素的平均值average及大于平均值的元素个数num
随机生成1000个在1到1000之间的数(0<x<=1000)存入数组,设计函数Ave,输出数组元素的平均值average及大于平均值的元素个数num
tantsh & at
随机生成1000个在1到1000之间的数(0&x&=1000)存入数组,设计函数Ave,输出数组元素的平均值average及大于平均值的元素个数num
随机生成1000个在1到1000之间的数(0&x&=1000)存入数组,设计函数Ave,输出数组元素的平均值average及大于平均值的元素个数num
可以容忍一下我这个菜鸟的无知无畏吗...
只是想看看高手都是怎么解题的,寻找一下差距啦~~~
  #include&stdio.h&
#include&stdlib.h&
#include&&time.h$>$/*需引用的头文件*/
void&fun(int&a[],int&n)
&&int&i,j;
&&double&sum=0;
&&for(i=0;i&n;i++)
&&&&sum+=a[i];
&&avg=sum/1000;
&&for(i=0,j=0;i&n;i++)
&&&&if(a[i]&avg)
&&printf("count(num&avg)=%d,avg=%lf",j,avg);
&int&X=1,Y=1000;
&int&a[1000]={0};
&srand((unsigned)time(NULL));&/*随机种子*/
&for(i=0;i&1000;i++)
&&a[i]=rand()%(Y-X+1)+X;&/*n为X~Y之间的随机数*/
&&fun(a,1000);
tanweiwei & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-}

我要回帖

更多关于 java生成四位随机整数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信