source: branches/v2.9/test/zufall.c@ 222

Last change on this file since 222 was 2, checked in by stevenhl, 8 years ago

Import sources from cwmm-full.zip dated 2005-03-21

File size: 1.5 KB
Line 
1#include <os2.h>
2#include <stdlib.h>
3
4int zahlen[25]={0};
5#define RANGE 20
6int err=0;
7
8int getRand()
9{
10 int zufall;
11 DATETIME DT;
12 INT seed, start, iCheck=0;
13 BOOL bFound=FALSE;
14
15
16 /** Get a random number in the appropriate range */
17 DosGetDateTime((PDATETIME)&DT); /* Get the time */
18 seed = DT.hours*60 + DT.minutes; /* convert to hundreths */
19 seed = seed*60 + DT.seconds;
20 seed = seed*100 + DT.hundredths;
21 srand((INT)seed); /* Set random number seed */
22 start=zufall;
23
24 while(!bFound) {
25 zufall=rand()%RANGE; /* Range is 0...iNumToPlay-1 */
26 iCheck++;
27
28 /* Get a random number in the appropriate range */
29 if(zahlen[zufall]==0) {
30 zahlen[zufall]=1;
31 return zufall+1;
32 }
33
34 /* Already played number. Find another */
35 if(iCheck>1000) {
36 err++;
37 break; /* Emergency exit... */
38 }
39 };
40
41 return -1;
42}
43
44int main()
45{
46 int zufall;
47 int a;
48
49
50
51 for(a=0;a<20;a++) {
52 if(getRand()==-1)
53 break;
54 // zufall=rand()%20;
55 /* printf("%d\n", zufall);*/
56 // zahlen[zufall]+=1;
57 }
58 for(a=0;a<25;a++) {
59 printf("%d: %d\n", a, zahlen[a]);
60 }
61 printf("\nErr: %d\n", err);
62
63#if 0
64 for(a=0;a<1000000;a++) {
65 zufall=rand()%20;
66 /* printf("%d\n", zufall);*/
67 zahlen[zufall]+=1;
68 }
69 for(a=0;a<25;a++) {
70 printf("%d: %d\n", a, zahlen[a]);
71 }
72#endif
73
74 return 0;
75
76}
Note: See TracBrowser for help on using the repository browser.