当前位置:   article > 正文

产生(a,b)区间上均匀分布的随机数 C语言实现_c语言uniform

c语言uniform

uniform.h文件

  1. #ifndef UNIFORM_H_
  2. #define UNIFORM_H_
  3. /*
  4. 函数功能: 产生(a,b)区间上均匀分布的随机数组
  5. 输入参数说明:
  6. a 给定区间的下限
  7. b 给定区间的上线
  8. seed 长整型指针变量, *seed 为伪随机数的种子
  9. */
  10. double uniform_data(double a, double b, long int * seed);
  11. #endif

 

子函数程序uniform.c   函数功能:产生(a,b)区间上均匀分布的随机数

  1. #include "uniform.h"
  2. #include <stdint.h>
  3. #include "string.h"
  4. #include "stdio.h"
  5. /*
  6. 函数功能: 产生(a,b)区间上均匀分布的随机数
  7. 输入参数说明:
  8. a 给定区间的下限
  9. b 给定区间的上线
  10. seed 长整型指针变量, *seed 为伪随机数的种子
  11. */
  12. double uniform_data(double a, double b,long int * seed)
  13. {
  14. double t;
  15. *seed = 2045.0 * (*seed) + 1;
  16. *seed = *seed - (*seed / 1048576) * 1048576;
  17. t = (*seed) / 1048576.0;
  18. t = a + (b - a) * t;
  19. return t;
  20. }

主函数代码入下

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "uniform.h"
  4. int main()
  5. {
  6. // 产生500-1之间的随机数
  7. double a, b ,x;
  8. int i, j;
  9. long int s;
  10. a = 0.0;
  11. b = 1.0;
  12. s = 13579;
  13. for (i = 0; i < 10; i++)
  14. {
  15. for (j = 0; j < 5; j++)
  16. {
  17. x = uniform_data(a, b, &s);
  18. printf("%13.7f",x);
  19. }
  20. printf("\n");
  21. }
  22. getchar(); // 此行代码是为了保持输出窗口,按任意按键关闭弹窗
  23. return 0;
  24. }

调试输出结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/83985
推荐阅读
相关标签
  

闽ICP备14008679号