游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3749|回复: 0

自有随机函数提供,较标准rand函数快5.x-7.x倍

[复制链接]

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-4-24 14:09:00 | 显示全部楼层 |阅读模式
测试程序代码

  1. #include<hgl/hgl.h>
  2. #include<hgl/Other.H>
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5.        
  6. using namespace hgl;
  7. void GameMain(int,wchar_t **)
  8. {
  9.     int n=10;
  10.     uint32 start,end;
  11.     uint32 rand_time,fast_time;
  12.        
  13.     wprintf(L"%8s  %8s  %s\n",L"rand",L"FastRand",L".75-1.25");
  14.     wprintf(L"--------||--------||--------\n");
  15.        
  16.     while(n--)
  17.             wprintf(L"%8X  %8X  %.3f\n",rand(),FastRand(),FastRand(0.75f,1.25f,0.001f));
  18.        
  19.     wprintf(L"--------||--------||--------\n");
  20.        
  21.         const int TEST_TIME=10000000;
  22.        
  23.     {
  24.             n=TEST_TIME;
  25.        
  26.             start=GetTime();
  27.             while(n--)
  28.                     rand();
  29.             end=GetTime();
  30.        
  31.         wprintf(L"rand() time= %d\n",rand_time=end-start);
  32.     }
  33.        
  34.     {
  35.             n=TEST_TIME;
  36.        
  37.             start=GetTime();
  38.             while(n--)
  39.                     FastRand();
  40.             end=GetTime();
  41.        
  42.         wprintf(L"FastRand() time= %d\n",fast_time=end-start);
  43.     }
  44.        
  45.     wprintf(L"pos=%f\n",float(rand_time)/float(fast_time));
  46. }
  47.        
  48. 测试结果
  49.        
  50.     rand  FastRand  .75-1.25
  51. --------||--------||--------
  52.     425D   F262A43  1.041
  53.     4B44  88AE98A9  0.877
  54.     7E01  E04B2B74  0.848
  55.     35A6  893E5AE2  1.091
  56.     2621  7C31B9AF  1.106
  57.     4F29  B861C5D4  1.059
  58.     55CC  CDED8B91  0.813
  59.     2DF1  AAC0E987  0.902
  60.     5450  69B51CCA  1.196
  61.     5A26  B941797B  0.842
  62. --------||--------||--------
  63. rand() time= 1828
  64. FastRand() time= 236
  65. pos=7.745763
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-12-4 16:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表