c语言产生一个随机数随机数,要解析,谢谢!

共有 1387 人关注过本帖
标题:求帮助,随机产生和为 100 的 10 个 0-30 的随机数,和为 100 不会怎么实现 ...
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:7&&&
求帮助,随机产生和为 100 的 10 个 0-30 的随机数,和为 100 不会怎么实现,
求帮助,随机产生和为100的10个0-30的随机数,和为100不会怎么实现,
等 级:职业侠客
帖 子:70
专家分:332
随机数会写吗? 你生成的随机数在定义一个数组&&&然后把数组求和&&random()
等 级:新手上路
回复 2 楼 playyang123
#include &stdio.h&
#include &stdlib.h&
#include &time.h&
int main()
{int a[10];
srand((unsigned)time(0));
for(i=0;i&10;i++)
&&{a[i]=rand()%30;
&&printf(&%d\n&,a[i]);
&&& system(&pause&);
&&& return 0;
这是随机产生10个0-30的数,可是不太明白你说的怎么实现,可以给我举个例子写一下程序吗?谢谢了~
来 自:湖~
等 级:黑侠
帖 子:145
专家分:644
回复 楼主 我是水压哈
程序代码:#include &stdio.h&
#include &stdlib.h&
#include &time.h&
&&& int a[<font color=#] ;
&&& int i,
&&& int sum = <font color=# ;&&&&&&&&//和初始化为100
&&& srand ( (unsigned)time(<font color=#) );
&&& **因为和固定为100,所以只需要随机生成9个数,100减9个数之和就是第十个数
&&& for ( i = <font color=#; i & <font color=#; i++) {
&&&&&&&&temp = rand() % <font color=# ;
&&&&&&&&/*
&&&&&&&&**每生成一个数temp,就用sum-temp检查生成的数字之和是否超过了100
&&&&&&&&*/
&&&&&&&&if ( sum - temp &= <font color=# ) {
&&&&&&&&&&&&a[i] =
&&&&&&&&&&&&sum -=
&&&&&&&&else {
&&&&&&&&&&&&i-- ;
&&& a[<font color=#] =
&&& for ( i = <font color=#; i & <font color=#; i++ ) {
&&&&&&&&printf(&<font color=#d&&&,a[i]);
&&& printf ( &\n& ) ;
&&& system(&pause&);
&&& return <font color=#;
等 级:论坛游民
帖 子:87
专家分:74
看来我理解错了
[ 本帖最后由 想念遇见 于
19:54 编辑 ]
等 级:小飞侠
帖 子:732
专家分:2468
程序代码:
#include &stdio.h&
#include &stdlib.h&
#include &time.h&
int a[<font color=#];
int i, j, k, sum = <font color=#;
void print(int *b);
int main(void)
&&& srand((unsigned int)time(NULL));
&&L:for (i = <font color=#; i & <font color=#; i++)
&&&&&&&&a[i] = <font color=# + (int)(<font color=#.0 * rand() / (RAND_MAX + <font color=#.0));
&&&&&&&&do
&&&&&&&&&&&&i++;
&&&&&&&&&&&&a[i] = <font color=# + (int)(<font color=#.0 * rand() / (RAND_MAX + <font color=#.0));
&&&&&&&&&&&&for (j = <font color=#; j &)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& if (a[i] != a[j])
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&j++;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&a[i] = <font color=# + (int)(<font color=#.0 * rand() / (RAND_MAX + <font color=#.0));
&&&&&&&&&&&&&&&&&&&&i--;
&&&&&&&&&&&&&&&&&&&&continue;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&}
&&&&&&&&&&&&//printf(&%d %d\n&, a[i-1], a[i]);
&&&&&&&&} while (i & <font color=#);
&&&&&&&&for (k = <font color=#; k & <font color=#; k++)
&&&&&&&&&&&&sum += a[k];
&&&&&&&&if (sum != <font color=#)
&&&&&&&&&&&&sum = <font color=#;
&&&&&&&&&&&&goto L;
&&& print(a);
&&& printf(&\n&);
&&& return <font color=#;
void print(int *b)
&&& int t, x,
&&& for (x = <font color=#; x & <font color=#; x++)
&&&&&&&&for (y = <font color=#; y & (<font color=# - x); y++)
&&&&&&&&&&&&if (b[y] & b[y + <font color=#])
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& t = b[y];
&&&&&&&&&&&&&&& b[y] = b[y + <font color=#];
&&&&&&&&&&&&&&& b[y + <font color=#] =
&&&&&&&&&&&&}
&&& for (x = <font color=#; x & <font color=#; x++)
&&&&&&&&printf(&<font color=#d&&&, b[x]);
Only the Code Tells the Truth&&&&&&&&&&&& K.I.S.S
等 级:新手上路
为了效率保证每次都能生成一组数是100的。
1、先随机生成3个数(这三个数加起来肯定到不了100),3个数相加起来,得到n,M=100-n
&&& 判断M是否大于30,如果大于,则在随机出一个数,现在得到4个数(这4个数显然小于100),这4个数相加起来,得到n,M=100-n
&&& 如果M小于30,比如,25,则第四个数就,0到25随机出来一个
&&& 如次继续。。。。
&&& 当然最后一个数就是100减掉之前的了。
2、这样的好处就是每次随机生成的数你都可以用上了。而且,会在可预料的循环次数里,生成这十个数。如果仅仅是先随机,在判断,结果就是运气不好的话,程序要跑好久,才能出现结果。
等 级:新手上路
回复 7 楼 luort
但是不管是楼上的方案或者是我的方案,都没有做到真正的随机。仅仅是每次看起来不一样而已。因为每次出一个数据,都对后面的数据存在影响。限制了后面的随机。
要做到更好的随机,可以用一次撒种子的手段:
手上拿着100个豆子,
有十个坑,每个坑最多只能装30个豆子,豆子只能进坑里。
吧唧,将100个豆子撒出去,随意进坑。一个动作,谁也不管谁,互不干扰,全凭天意!!!
关于随机,我只知道真正的随机是薛定谔的猫,这是上帝的旨意。
版权所有,并保留所有权利。
Powered by , Processed in 0.029235 second(s), 9 queries.
Copyright&, BCCN.NET, All Rights Reservedc语言怎么生成随机数?_百度知道
c语言怎么生成随机数?
#include &stdio.h&#include &stdlib.h&#include &time.h& &#47;&#47;用到了time函数 int main(){
srand((unsigned) time(NULL)); &#47;&#47;用时间做种,每次产生随机数不一样
for (i=0; i&50; i++)
number = rand() % 101;
&#47;&#47;产生0-100的随机数
printf(&%d &, number);
return 0;}
其他类似问题
为您推荐:
提问者采纳
你好!完整的代码,红圈处就是从上面100个数字中抽取到的数字:#include&&stdio.h&#include&stdlib.h&&&&&&&&&&&&&&&&&&&//生成随机数用&#include&time.h&&&&&&&&&&&&&&&&&&&&&//利用时间生成种子&#include&math.h&&&&&&&&&&&&&&&&&&&&&int&main(){&&&&&&int&i; &&int&a[100];&&&&&&srand(&time(NULL)&);&&&&&&&&&//生成种子&&&&&&&for(i=0;i&100;i++)&&&&&&{&&&&&&&a[i]=rand()%;&&&&&&//生成一个小于1000的随机数 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//然后加1000,变成&1000&-&2000之间的数&&&&&&&&printf(&%d&&&,a[i]);&&&&&&&//打印&&&&&&&}&&&&&&&i=rand()%100;&&&&&&&&&&&&&&//随机抽取其中的一个数&&&&&&&&printf(&\n抽取到的是:%d\n&,a[i]);//打印&&&&&&&&&&&&&return&0;&}
i=rand()%100;不是生成1个小于100的随机数吗?怎么成了抽取其中的一个数
因为上面的代码,已经将的数字放在了a【100】的数组内;要取出其中一个数字的时候,只需要生成 0 - 99 就能得到想要的数字了!
怎么是从a[100]中取的呢?没有可能重新生成新的吗
你的要求不是:在这个数组中怎么随机选取一个作为i?这样提的吗你的意思是将这个取得的值,赋给 i &??#include&&stdio.h&#include&stdlib.h&&&&&&&&&&&&&&&&&&&//生成随机数用&#include&time.h&&&&&&&&&&&&&&&&&&&&&//利用时间生成种子&#include&math.h&&&&&&&&&&&&&&&&&&&&&int&main(){&&&&&&int&i; &&int&a[100];&&&&&&srand(&time(NULL)&);&&&&&&&&&//生成种子&&&&&&&for(i=0;i&100;i++)&&&&&&{&&&&&&&a[i]=rand()%;&&&&&&//生成一个小于1000的随机数 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//然后加1000,变成&1000&-&2000之间的数&&&&&&&&printf(&%d&&&,a[i]);&&&&&&&//打印&&&&&&&}&&&&&&&i=rand()%100;&&&&&&&&&&&&&&//随机抽取其中的一个数&&&& &&&i=&a[i];&&&&&&&&&&&&&&&&&&&//&这里把抽取的值赋给了&i&&&&&&&&& &&&printf(&\n抽取到的是:%d\n&,&i&);//打印&i&&&&&&return&0;&}
提问者评价
其他2条回答
&#include&&stdlib.h&&&#include&&stdio.h&&#include&&time.h&&&&&void&main()&&&&{&&srand((unsigned)time(&NULL&)&);&//时间种子有这个可以让每次运行程序产生的随机数不同&&&&&for(int&i=1;i&=100;i++)&&&&&&{&&&&&&printf(&%d\t&,rand()%);&//rand()函数产生的随机数的范围是- &if(i%8==0)
&printf(&\n&);&&&&&}&&&&&}&如果对答案满意的话就麻烦把我的答案选为满意答案
怎么数加入到数组呢?在这个数组中怎么随机选取一个作为i?
&#include&&stdlib.h&&&#include&&stdio.h&&#include&&time.h&&&&&void&main()&&&&{& &&&int&a[100],t; &&&srand((unsigned)time(&NULL&)&);&&&&&&for(int&i=1;i&=100;i++)&&&&&&{&&&&&&a[i-1]=rand()%;//这样就可以了 &printf(&%d\t&,a[i-1]); &if(i%6==0)
&printf(&\n&);&&&&&}& &printf(&\n&); &printf(&将随机抽取一个数\n&); &t=rand()%100; &printf(&抽取的是第%d个数\n&,t+1); &printf(&%d\n&,a[t]);//不知道是不是这个意思&&&&}那个取一个作为i我不知道是什么意思!你能上传所有题目信息吗?
srand函数 与rand函数配合使用,或者也可以用time函数,去看看srand和rand函数的用法
随机数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁纯菜鸟 求教 关于 随机数的产生 在线等_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:341,093贴子:
纯菜鸟 求教 关于 随机数的产生 在线等收藏
C语言到底怎么调用函数 产生随机数?本人曾来没有尝试过 ,,所以 不懂 ,求教,,,,,请高人一步一步教 ~~~~本人在线等~~~~~~~谢谢~~~~~~~~~~~~~~~~~~谢谢~~~
#include &stdio.h&#include &stdlib.h&#include &time.h&int main(void){&&&&&&&& srand(time(NULL));&&&& for(i=0;i&10;i++)&&&& {&&&&&&&& printf("%d\n",rand());&&&& }&&&& return 0;}
谢谢 楼上的 能不能麻烦 你具体 跟我解释下 那些头文件 ?谢谢啊啊啊、谢谢~~~~~~~~~~~~~~~~~~~
自己去查 手册 或百度 调用 哪个函数 要 包含 哪个头文件
本人QQ 在线求教啊 ~~~~谢谢~~~~~~~~~~~~~~~~~~谢谢~~~~~~~~~~~~啊啊啊啊啊菜鸟难当~~~~~~~~~~~~·
srand(time(NULL));//先设置 随机种子,for(i=0;i&10;i++){&&&& printf("%d\n",rand());//然后 在循环中 用rand得到 伪随机数}srand的参数 一般用 time函数得到 ,time函数的参数 随意,一般设置NULL
我一直没弄懂什么叫参数??额 菜鸟 不懂 能不能解释下啊?谢谢谢谢~~~~~~~~~~
前几楼的大哥能不能加我QQ 教我小菜鸟
求教啊啊啊啊啊 啊谢谢谢谢谢谢~~~~~~~~~在线等额
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 c语言产生01随机数 的文章

 

随机推荐