c 语言, 随机数,一个不像随机数的随机数
2023-12-27 09:14:30
c 语言, 随机数,一个不像随机数的随机数
使用两种方式获取随机数,总感觉使用比例的那个不太像随机数。
- 方法一:
rand()
获取一个随机数,计算这个随机数跟最大可能值RAND_MAX
(定义在sedlib.h
中)的比例数值,再用需要的范围 100 跟这个相乘,得到一个随机数; - 方法二:直接用
rand() % 100
取余。
下面是两种方法获取到的 100 个数值:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int get_random_within(double max){
float ratio = rand()/(double)RAND_MAX;
return (int)(max * ratio);
}
int main(){
time_t t;
srand(time(&t));
printf("time is %lu", t);
printf("\n\nuse random ratio to RAND_MAX to get random values: \n");
for (int i=0;i<100; i++){
if (i> 0 && i % 10 == 0){
printf("\n");
}
int temp = get_random_within(100);
if (temp < 10){
printf(" %d ", temp);
} else {
printf("%d ", temp);
}
}
printf("\n\nuse %% to get random values: \n");
for (int i=0;i<100; i++){
if (i > 0 && i % 10 == 0){
printf("\n");
}
int temp = rand() % 100;
if (temp < 10){
printf(" %d ", temp);
} else {
printf("%d ", temp);
}
}
printf("\n");
return(0);
}
结果
文章来源:https://blog.csdn.net/KimBing/article/details/135234043
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!