| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2410 人关注过本帖
标题:[讨论]随机问题
只看楼主 加入收藏
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 

randomize()因该是一样的吧,关键是怎样在一秒内使多次运行的srand(time(NULL))的值不一样.3q

2004-09-29 22:29
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
不一样啊!

2004-09-29 22:33
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

看看这个,我自己写的一个随机出题小程序:

#include<stdio.h> #include<stdlib.h> int jia() {int a,b; randomize(); a=random(100); randomize(); b=random(100); printf("%d+%d=",a,b); return a+b; } int jian() {int a,b; while(2) {randomize(); a=random(100); randomize(); b=random(100); if(a>=b) break; } printf("%d-%d=",a,b); return a-b; } int chen() {int a,b; randomize(); a=random(9)+1; randomize(); b=random(9)+1; printf("%d*%d=",a,b); return a*b; } int chu() {int a,b,c; while(3) {randomize(); a=random(82); randomize(); b=random(9)+1; if(a>=b) break; } c=a%b;a=a-c; printf("%d/%d=",a,b); return a/b; } void main() {int a,b,n,i;float s=0,k; printf("How many practise do you want to do?\n"); scanf("%d",&n);k=100.0/n; printf("OK,every practise %.2f'\n\n",k); for(i=1;i<=n;i++) {printf("practise %2d: ",i); randomize(); a=random(4); switch(a) {case 0:b=jia();break; case 1:b=jian();break; case 2:b=chen();break; default:b=chu(); } scanf("%d",&a); if(a==b) {printf("OK,very good!\t +%.2f'\n\n",k); s=s+k;} else printf("Sorry,it's wrong!\n\n"); } printf("\n\nThe totall=%.2f'",s); getch(); }


2004-09-29 22:34
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
算了,那么多,没人会在这里认真看,randomize()和srand()有什么区别?
2004-09-29 22:42
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

我没用过srand(),只用过randomize(),反正每次使用random(),之前用一个randomize()

就能改变随机值,我上面的那个程序你运行一下试试,差不多出的题和给出的表达式都不同


2004-09-29 22:49
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
我了解你说的意思,但要搞清楚的是,不管是用你那个randomize()来改变什么,还是用srand()来设定随即种子都只是改变了random()的随即序列而已啊,比如说我前面那个程序段,在一次srand(time(NULL))之前,random(9)产生的随即序列是2,1,5,8,6.......在下一次循环时,由于速度太快srand(time(NULL))的值与上次是同样的,所以random(9)的随即序列也是2,1,5,8,6.....我的问题是如何改进?
2004-09-29 22:56
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
请注意,随即值和随即序列的关系。
2004-09-29 22:57
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
今天太晚了,我明天再来看回贴,希望大家讨论。
2004-09-29 22:58
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

可以用一个延时函数

delay(500);

延时500毫秒。


2004-09-29 22:59
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
那就失去程序的意义了啊,就是要快撒
2004-09-29 23:01
快速回复:[讨论]随机问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018609 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved