hydro_random.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include <rtthread.h>
  2. #include <hydrogen.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. void hydrogen_random_u32(int argc, char* argv[])
  6. {
  7. rt_uint32_t range = 100;
  8. rt_uint32_t result = 0;
  9. if(argc == 2) {
  10. range = atoi(argv[1]);
  11. }
  12. int i, num0 = 0, num1 = 0;
  13. const int max_test = 10;
  14. printf("\n");
  15. for (i = 0; i < max_test; i++)
  16. {
  17. result = hydro_random_u32() % range;
  18. printf(" num: %d\n", result);
  19. result%2 ? num1++ : num0++;
  20. }
  21. printf("\n odd: %d, even: %d\n\n",num1, num0);
  22. }
  23. MSH_CMD_EXPORT(hydrogen_random_u32, generate an unpredictable value between 0 and 0xffffffff)
  24. void hydrogen_random_uniform(int argc, char* argv[])
  25. {
  26. rt_uint32_t range = 50;
  27. rt_uint32_t result = 0;
  28. if(argc == 2) {
  29. range = atoi(argv[1]);
  30. }
  31. int i, num0 = 0, num1 = 0;
  32. const int max_test = 10;
  33. printf("\n");
  34. for (i = 0; i < max_test; i++)
  35. {
  36. result = hydro_random_uniform(range);
  37. printf(" num: %d\n", result);
  38. result%2 ? num1++ : num0++;
  39. }
  40. printf("\n odd: %d, even: %d\n\n",num1, num0);
  41. }
  42. MSH_CMD_EXPORT(hydrogen_random_uniform, generate an unpredictable value between 0 and upper_bound (excluded))