最近在复习数据结构,看到书上的一道例题,觉得可以用作其他用:通过重复数字的总数除以所生成的随机数总数,大概估计一下随机的”周期“。当然,我就是随便玩玩,真正要测试随机库函数的性能应该比这复杂得多。
//version1:
#include <stdio.h>
#include <stdlib.h>
#define maxn 100000
int s[maxn];
int delRedundancy(int [],int);
int main()
{
freopen("x1.out","w",stdout);
srand(time(NULL));
int i;
for(i=0;i<maxn;i++)
s[i]=rand()%(5000-100)+100;
delRedundancy(s,maxn);
printf("\n%d\n",delRedundancy(s,maxn));
return 0;
}
int delRedundancy(int a[],int n)
{
int i,j,k=0;
for(i=1;i<n;i++)
{
for(j=0;j<=k;j++)
if(a[i]==a[k])
break;
if(j>k&&++k!=j)
a[k]=a[i];
}
for(i=0;i<=k;i++)
{
printf("%6d ",a[i]);
if((i+1)%8==0)
printf("\n");
}
return k+1;
}
//version2:
#include <stdio.h>
#include <stdlib.h>
//#define maxn 100000
//int s[maxn];
int delRedundancy(int [],int);
int main()
{
freopen("x1.in","r",stdin);
freopen("x1.out","w",stdout);
srand(time(NULL));
int i,maxn;
int *s;
scanf("%d",&maxn);
s=(int *)malloc(sizeof(int)*maxn);
for(i=0;i<maxn;i++)
s[i]=rand()%(5000-100)+100;
delRedundancy(s,maxn);
printf("\n%d\n",delRedundancy(s,maxn));
free(s);
return 0;
}
int delRedundancy(int a[],int n)
{
int i,j,k=0;
for(i=1;i<n;i++)
{
for(j=0;j<=k;j++)
if(a[i]==a[k])
break;
if(j>k&&++k!=j)
a[k]=a[i];
}
for(i=0;i<=k;i++)
{
printf("%6d ",a[i]);
if((i+1)%8==0)
printf("\n");
}
return k+1;
}
以下为某两次测试的输出数据:
NO1:
4533 2304 1700 3578 3884 4232 4158 2651
1001 2924 575 3184 4520 4611 3089 3223
1601 862 3134 656 2835 4554 1912 3901
4020 4804 408 2866 347 1088 1420 1550
960 2539 1524 1554 2739 1068 615 2650
1415 2750 513 4318 3152 3911 4380 895
1399 1888 3403 4158 4337 2527 1714 1161
3007 3229 1075 3035 340 1510 3333 2232
3131 4497 263 3702 2247 1453 2063 4465
196 1220 2456 718 3259 1745 3632 4998
1785 3373 3890 381 2529 3805 3523 4713
1904 2523 4084 1255 1996 630 2987 4301
2303 643 2685 237 4533 2304 1700 3578 3884 4232 4158 2651
1001 2924 575 3184 4520 4611 3089 3223
1601 862 3134 656 2835 4554 1912 3901
4020 4804 408 2866 347 1088 1420 1550
960 2539 1524 1554 2739 1068 615 2650
1415 2750 513 4318 3152 3911 4380 895
1399 1888 3403 4158 4337 2527 1714 1161
3007 3229 1075 3035 340 1510 3333 2232
3131 4497 263 3702 2247 1453 2063 4465
196 1220 2456 718 3259 1745 3632 4998
1785 3373 3890 381 2529 3805 3523 4713
1904 2523 4084 1255 1996 630 2987 4301
2303 643 2685 237
100
NO2:
4859 700 577 4678 1465 3689 2423 1468
592 909 484 4221 3351 2776 3881 328
1324 3476 2766 3627 2405 2752 967 2532
4458 4838 1343 2234 3435 3079 3234 3372
4639 477 160 185 1905 2733 4664 1017
2086 1883 883 3823 212 2830 2422 2119
4453 2800 2788 274 1251 2638 2400 892
2923 2552 2629 4108 3487 2127 2979 870
4924 2215 883 3057 2408 3723 3258 1880
1884 4898 931 2151 3585 695 1433 1198
2476 213 4810 901 4456 2413 193 3104
1523 2439 681 4897 871 3363 4723 3436
1838 2156 2302 2610 1876 981 1989 2733
2957 4332 888 2022 4947 4711 1231 2048
3300 3149 4516 3681 891 2921 3983 1623
163 3485 3066 2952 3216 4654 4682 3049
1906 2393 1128 2807 2119 4633 4708 2971
305 2243 4300 996 3881 2578 2200 1910
126 393 873 1529 4376 2434 2342 1254
270 4393 4406 1170 2365 4967 2507 677
1843 4739 727 4813 2329 1402 4308 3014
2089 3477 229 2404 3483 3001 1424 3947
1452 1582 1642 1098 703 1856 3509 1400
504 4510 2907 1786 1334 2840 1287 149
194 316 1313 1471 4904 3307 182 3080
2064 2189 929 2183 3929 2310 4626 4384
2604 2294 1331 3784 2449 128 1398 4319
4417 4438 1899 3009 3588 972 1114 4481
2229 4166 3322 4262 4426 2338 1891 3798
714 2055 2334 4180 2172 1306 4736 3532
4102 2731 1404 2054 2429 1884 3155 1355
4526 824 1560 855 3238 4695 616 4848
3718 4711 980 4709 2050 1382 4370 699
351 2495 2437 3316 3575 1890 1180 1196
3392 672 176 2721 2175 3062 3133 1717
3138 1064 758 2315 2200 2373 3388 3251
2256 2657 3430 1641 4281 2287 2922 133
216 1117 2513 2118 782 1856 3559 4636
3120 3112 1085 1832 1528 2228 652 4001
2858 4006 115 554 3142 3070 2068 2409
3700 1491 131 1798 1230 341 4250 4272
2908 2605 2528 2455 2814 3470 1940 2535
2553 233 2885 1512 2307 584 1836 4458
3217 1178 2001 1243 305 2250 2222 3003
2869 748 668 2687 4589 4492 731 1917
3360 4931 4196 635 4134 3359 1465 2670
4928 4294 4553 1692 3108 428 1545 365
4043 4656 1046 4495 4912 1073 295 3672
1007 2750 3209 4829 162 3656 2877 4024
2927 1811 4554 3941 4554 782 2441 4040
1836 939 1917 1645 2976 3326 4810 125
3624 4800 4960 3329 1996 1799 2295 409
4859 2496 4610 4715 3298 4082 3504 4504
197 4749 858 929 662 2837 3711 3302
3233 2792 4193 3351 2630 2141 196 4595
545 1186 2076 1438 1231 1357 1433 334
3092 4202 3478 1546 4988 1480 1928 1661
1714 2925 3752 3996 2359 4247 4492 3035
2835 761 2748 4761 2934 637 2975 1259
1649 4139 2381 626 2943 2369 2931 3322
4270 168 2011 3661 4636 931 4572 4625
3291 4839 2664 682 4989 4204 2536 412
2923 3238 3871 103 1832 1841 2151 2820
909 429 2613 1732 864 3660 3503 2006
4085 3242 787 2509 259 348 4761 577
3795 340 409 2063 2506 2696 562 4960
2400 4559 902 2547 2313 1615 3636 3710
859 2581 3398 3404 3872 255 2074 3209
1894 4252 2443 210 3184 3337 787 4064
858 1354 1556 1093 3712 1115 3196 2732
771 2148 2405 1630 1076 1818 1773 919
4029 2632 381 2099 4457 2672 1004 1612
3476 2015 4631 3427 1915 212 2950 948
2209 4831 1093 1099 3154 3181 2264 404
595 2341 3692 4607 4766 2043 1079 3788
3443 300 2594 349 455 4769 2721 4554
2043 2421 626 1628 1637 3211 182 2921
867 1929 964 1679 121 2382 4363 4143
132 1091 2131 1532 3938 4512 4606 3088
3751 2991 4589 1557 4544 1197 1756 2332
2132 1283 1690 158 2777 1176 4754 1264
3316 1294 1193 3609 2615 1270 229 3074
4066 2032 209 2933 3992 1218 2610 3776
1635 987 4201 200 150 875 979 4029
2142 3326 3069 3701 2843 3646 1140 2981
2865 4249 2631 3639 2250 129 4862 2044
1146 1482 331 4283 2508 2713 115 2039
3870 222 1324 198 1773 2189 260 458
770 3192 3296 4948 4084 3193 3582 4767
1689 2037 844 1222 2418 3712 4538 2026
3079 3439 2361 3762 275 3189 2517 1515
2525 1447 968 1442 1695 4622 1376 1219
1602 4439 1123 2364 2763 4821 361 4343
1652 1248 186 1589 1754 1333 1832 115
3801 3053 875 1953 1896 3763 579 436
1599 2690 3162 100 1842 2022 2803 703
3624 237 726 489 188 1465 4324 3516
319 4821 3397 1341 2406 4541 4289 2700
2445 3154 2608 2149 2015 3889 3202 1124
1716 167 2026 4545 2749 4037 1856 759
1215 4612 1296 3202 2711 3395 4193 523
144 412 3639 4693 1766 1485 2061 2189
4870 788 1046 2385 3993 1985 1590 2324
2265 2374 2927 4725 3565 3347 2353 2726
3448 1299 2246 555 2129 2378 1922 2588
514 2657 2559 3559 739 2543 3132 585
696 2518 1527 4634 4597 933 2019 1974
2928 2523 123 3095 516 2000 3580 701
3458 1318 3209 313 3549 1083 1372 3258
4474 4476 188 2667 371 1129 2689 3980
2807 4220 1344 711 2575 1351 2564 3934
1548 1206 3092 1452 1309 4372 4894 2972
1109 1936 2503 4376 2728 4504 3103 2005
366 4637 1679 4250 2161 4618 1194 2956
4480 3021 2909 4437 1720 1586 1675 3288
4830 3635 4695 931 3989 3075 1123 782
1158 1675 200 2651 1692 4342 3147 4226
1325 1324 2908 4980 2542 3722 4073 2586
2654 3431 2422 3244 4435 4454 930 4410
4776 966 4748 2009 2154 1318 1862 4467
691 4598 3026 4291 1388 4425 972 3477
2715 1938 2731 2704 1768 3116 3959 401
694 4473 898 1667 1936 1930 1054 1067
3177 3675 1754 1438 2407 343 2381 2420
3223 4689 1691 1252 1369 1718 1317 3833
4859 700 577 4678 1465 3689 2423 1468
592 909 484 4221 3351 2776 3881 328
1324 3476 2766 3627 2405 2752 967 2532
4458 4838 1343 2234 3435 3079 3234 3372
4639 477 160 185 1905 2733 4664 1017
2086 1883 883 3823 212 2830 2422 2119
4453 2800 2788 274 1251 2638 2400 892
2923 2552 2629 4108 3487 2127 2979 870
4924 2215 883 3057 2408 3723 3258 1880
1884 4898 931 2151 3585 695 1433 1198
2476 213 4810 901 4456 2413 193 3104
1523 2439 681 4897 871 3363 4723 3436
1838 2156 2302 2610 1876 981 1989 2733
2957 4332 888 2022 4947 4711 1231 2048
3300 3149 4516 3681 891 2921 3983 1623
163 3485 3066 2952 3216 4654 4682 3049
1906 2393 1128 2807 2119 4633 4708 2971
305 2243 4300 996 3881 2578 2200 1910
126 393 873 1529 4376 2434 2342 1254
270 4393 4406 1170 2365 4967 2507 677
1843 4739 727 4813 2329 1402 4308 3014
2089 3477 229 2404 3483 3001 1424 3947
1452 1582 1642 1098 703 1856 3509 1400
504 4510 2907 1786 1334 2840 1287 149
194 316 1313 1471 4904 3307 182 3080
2064 2189 929 2183 3929 2310 4626 4384
2604 2294 1331 3784 2449 128 1398 4319
4417 4438 1899 3009 3588 972 1114 4481
2229 4166 3322 4262 4426 2338 1891 3798
714 2055 2334 4180 2172 1306 4736 3532
4102 2731 1404 2054 2429 1884 3155 1355
4526 824 1560 855 3238 4695 616 4848
3718 4711 980 4709 2050 1382 4370 699
351 2495 2437 3316 3575 1890 1180 1196
3392 672 176 2721 2175 3062 3133 1717
3138 1064 758 2315 2200 2373 3388 3251
2256 2657 3430 1641 4281 2287 2922 133
216 1117 2513 2118 782 1856 3559 4636
3120 3112 1085 1832 1528 2228 652 4001
2858 4006 115 554 3142 3070 2068 2409
3700 1491 131 1798 1230 341 4250 4272
2908 2605 2528 2455 2814 3470 1940 2535
2553 233 2885 1512 2307 584 1836 4458
3217 1178 2001 1243 305 2250 2222 3003
2869 748 668 2687 4589 4492 731 1917
3360 4931 4196 635 4134 3359 1465 2670
4928 4294 4553 1692 3108 428 1545 365
4043 4656 1046 4495 4912 1073 295 3672
1007 2750 3209 4829 162 3656 2877 4024
2927 1811 4554 3941 4554 782 2441 4040
1836 939 1917 1645 2976 3326 4810 125
3624 4800 4960 3329 1996 1799 2295 409
4859 2496 4610 4715 3298 4082 3504 4504
197 4749 858 929 662 2837 3711 3302
3233 2792 4193 3351 2630 2141 196 4595
545 1186 2076 1438 1231 1357 1433 334
3092 4202 3478 1546 4988 1480 1928 1661
1714 2925 3752 3996 2359 4247 4492 3035
2835 761 2748 4761 2934 637 2975 1259
1649 4139 2381 626 2943 2369 2931 3322
4270 168 2011 3661 4636 931 4572 4625
3291 4839 2664 682 4989 4204 2536 412
2923 3238 3871 103 1832 1841 2151 2820
909 429 2613 1732 864 3660 3503 2006
4085 3242 787 2509 259 348 4761 577
3795 340 409 2063 2506 2696 562 4960
2400 4559 902 2547 2313 1615 3636 3710
859 2581 3398 3404 3872 255 2074 3209
1894 4252 2443 210 3184 3337 787 4064
858 1354 1556 1093 3712 1115 3196 2732
771 2148 2405 1630 1076 1818 1773 919
4029 2632 381 2099 4457 2672 1004 1612
3476 2015 4631 3427 1915 212 2950 948
2209 4831 1093 1099 3154 3181 2264 404
595 2341 3692 4607 4766 2043 1079 3788
3443 300 2594 349 455 4769 2721 4554
2043 2421 626 1628 1637 3211 182 2921
867 1929 964 1679 121 2382 4363 4143
132 1091 2131 1532 3938 4512 4606 3088
3751 2991 4589 1557 4544 1197 1756 2332
2132 1283 1690 158 2777 1176 4754 1264
3316 1294 1193 3609 2615 1270 229 3074
4066 2032 209 2933 3992 1218 2610 3776
1635 987 4201 200 150 875 979 4029
2142 3326 3069 3701 2843 3646 1140 2981
2865 4249 2631 3639 2250 129 4862 2044
1146 1482 331 4283 2508 2713 115 2039
3870 222 1324 198 1773 2189 260 458
770 3192 3296 4948 4084 3193 3582 4767
1689 2037 844 1222 2418 3712 4538 2026
3079 3439 2361 3762 275 3189 2517 1515
2525 1447 968 1442 1695 4622 1376 1219
1602 4439 1123 2364 2763 4821 361 4343
1652 1248 186 1589 1754 1333 1832 115
3801 3053 875 1953 1896 3763 579 436
1599 2690 3162 100 1842 2022 2803 703
3624 237 726 489 188 1465 4324 3516
319 4821 3397 1341 2406 4541 4289 2700
2445 3154 2608 2149 2015 3889 3202 1124
1716 167 2026 4545 2749 4037 1856 759
1215 4612 1296 3202 2711 3395 4193 523
144 412 3639 4693 1766 1485 2061 2189
4870 788 1046 2385 3993 1985 1590 2324
2265 2374 2927 4725 3565 3347 2353 2726
3448 1299 2246 555 2129 2378 1922 2588
514 2657 2559 3559 739 2543 3132 585
696 2518 1527 4634 4597 933 2019 1974
2928 2523 123 3095 516 2000 3580 701
3458 1318 3209 313 3549 1083 1372 3258
4474 4476 188 2667 371 1129 2689 3980
2807 4220 1344 711 2575 1351 2564 3934
1548 1206 3092 1452 1309 4372 4894 2972
1109 1936 2503 4376 2728 4504 3103 2005
366 4637 1679 4250 2161 4618 1194 2956
4480 3021 2909 4437 1720 1586 1675 3288
4830 3635 4695 931 3989 3075 1123 782
1158 1675 200 2651 1692 4342 3147 4226
1325 1324 2908 4980 2542 3722 4073 2586
2654 3431 2422 3244 4435 4454 930 4410
4776 966 4748 2009 2154 1318 1862 4467
691 4598 3026 4291 1388 4425 972 3477
2715 1938 2731 2704 1768 3116 3959 401
694 4473 898 1667 1936 1930 1054 1067
3177 3675 1754 1438 2407 343 2381 2420
3223 4689 1691 1252 1369 1718 1317 3833
1000