免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 10703 | 回复: 25
打印 上一主题 下一主题

[函数] 关于random()函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-15 10:07 |只看该作者 |倒序浏览
想要取得0--100只见的随机数的话,应该怎样写呢?C语言。

论坛徽章:
0
2 [报告]
发表于 2006-06-15 10:18 |只看该作者
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
/* prints a random number in the range 0 to 99 */
int main(void)
{
   randomize();
   printf("Random number in the 0-99 range: %d\n", random (100));
   return 0;
}

论坛徽章:
0
3 [报告]
发表于 2006-06-15 11:09 |只看该作者
粗粒度的:
printf("%d\n", time(NULL)%100);

论坛徽章:
0
4 [报告]
发表于 2006-06-15 11:56 |只看该作者
原帖由 yulc 于 2006-6-15 11:09 发表
粗粒度的:
printf("%d\n", time(NULL)%100);


有创意, 建议从声卡取数据

论坛徽章:
0
5 [报告]
发表于 2006-06-15 12:30 |只看该作者
哈哈

论坛徽章:
0
6 [报告]
发表于 2006-06-15 14:05 |只看该作者
原帖由 fyimail 于 2006-6-15 10:18 发表
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
/* prints a random number in the range 0 to 99 */
int main(void)
{
   randomize();
   printf("Random number in ...


你编译通过了吗?我就是用的你这个例子,根本通不过。

论坛徽章:
0
7 [报告]
发表于 2006-06-15 14:11 |只看该作者
原帖由 yulc 于 2006-6-15 11:09 发表
粗粒度的:
printf("%d\n", time(NULL)%100);


这个好像有规律啊。逐渐增加,然后再从0开始……
不是随机啊。

论坛徽章:
0
8 [报告]
发表于 2006-06-15 14:19 |只看该作者
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <openssl/md5.h>
  5. #include <uuid.h>

  6. int main(int argc, char *argv[])
  7. {

  8.         unsigned char result[16];
  9.         uuid_t *uuid;
  10.         char *s;
  11.         char sessionstr[50];
  12.         int X = 100000;
  13.         int Y = 999999;
  14.         uuid = (uuid_t *) malloc(sizeof(uuid_t));
  15.         uuidgen(uuid, 1);
  16.         uuid_to_string(uuid, &s, NULL);
  17.         MD5_CTX ctx;
  18.         MD5_Init(&ctx);
  19.         MD5_Update(&ctx, s, strlen(s));
  20.         MD5_Final(result, &ctx);
  21.         srand(result[0] + result[1] + result[2] + result[3] + result[4] + result[5] + result[6] + result[7] + result[8] + result[9] + result[10] + result[11] + result[12] + result[13] + result[14] + result[15]);
  22.         printf("%d", ((rand() % (Y - X + 1)) + X));

  23. }
复制代码

论坛徽章:
0
9 [报告]
发表于 2006-06-15 14:20 |只看该作者
X-Y是范围。

论坛徽章:
0
10 [报告]
发表于 2006-06-15 14:24 |只看该作者
        MD5_CTX ctx;
        MD5_Init(&ctx);
        MD5_Update(&ctx, s, strlen(s));
        MD5_Final(result, &ctx);


请问那个MD5是什么东东?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP