精华内容
下载资源
问答
  • C语言生成01的伪随机

    千次阅读 2017-04-29 23:59:35
    这个问题是今晚上写代码的时候突然发现的,查了一下资料还真发现没...这里,用强制类型转换将rand()RAND_MAX的值转换为double型(由于RAND_MAX/2为浮点型数据) 然后将整体转换为int,这样当rand()生成大于RAND_MAX/

    这个问题是今晚上写代码的时候突然发现的,查了一下资料还真发现没那么简单,在此留下自己的解决方法以及其他网上的解决方案:

    (int)((double)(rand()/(double)(RAND_MAX/2))
    
    这里,用强制类型转换将rand()和RAND_MAX的值转换为double型(由于RAND_MAX/2为浮点型数据)

    然后将整体转换为int,这样当rand()生成大于RAND_MAX/2的数时就得到1,反之得到0

    其他方法:

    printf("%lf\n",(double)rand()/RAND_MAX);

    float b=rand()/(RAND_MAX+1.0);

    int main(void)
    {
        srand((unsigned)time(0));
        double t = rand()%1000000/1000000.0;
        printf("%lf\n",t);
         
        system("pause");
        return 0;
    }


    展开全文
  • C语言生成随机字符数

    2018-12-21 18:00:20
    random返回一个0~num-1之间的随机数.random(num)是在stdlib.h中的一个宏定义.,num函数返回值都是整型数. int rand(void),返回一个[0,RAND_MAX]间的随机整数. void srand(unsigned seed),参数seed是srand()的...

    首先要了解一下随机函数random,rand,srand:

    random返回一个0~num-1之间的随机数.random(num)是在stdlib.h中的一个宏定义.,num和函数返回值都是整型数.

    int rand(void),返回一个[0,RAND_MAX]间的随机整数.

    void srand(unsigned seed),参数seed是srand()的种子,用来初始化srand()的起始值.

    srand()可以被认为是为rand()的“伪随机数”的结果指定一个固定的序列,若未引用srand()函数,则程序默认srand()括号中的值为1;如果引用的话,srand()括号中不能为空;

    time_t time(time_t * timer):表示从CUT时间1970年1月1日00:00:00到当前时刻的秒数,作为srand的种子

    代码如下:

    #include<time.h>
    #include<stdio.h>
    #include<stdlib.h>
    
    #define length 32
    
    void getrandom(char *test,int len){
    	int i,j;
    	char randch[34]="1234567890qwertyuiopasdfghjklzxcvbnm";
    	srand((unsigned)time(NULL));//time(0)
    	
    	for(i=0;i<length;i++){
    		j=1+(int)(34.0*rand()/(RAND_MAX+1.0));
    		*(test+i)=randch[j-1];
    	}
    	*(test+32)='\0';
    	return ;
    }
    
    int main(){
    	char random[length];
    	memset(random,0,length);
    	getrandom(random,length);
    	printf("%s\n",random);
    	return 0;
    }

    生成多组的我们可以循环生成并追加保存到文本中:

    #! /bin/bash
    a=10
    while [ $a -gt 0 ]
    do	
    	./a.out >> random.txt
    	let a--
    	sleep 1
    done

     

    展开全文
  • c语言随机函数

    2021-01-13 16:13:14
    C语言的标准函数库提供有一个随机数函数,即 rando()函数,它返回[0,MAX均匀分布的伪随机整数。rand()函数不接受参数,默认以1为种子(即起始值),它总是以相同的种子开始,所以形成的伪随机数列也相同,不是真正的随机...

    1.初识随机函数

    在实践中,找到真正的随机数字是困难的。数字计算机只能在一个限定的范围内和有限的精度下去处理数字。在大多数情况下,最好的方法是产生伪随机数,这不是真正意义的随机数,它的意义是:单次产生的数列是无法预测的,但是每次都会生成同样的一组随机数列。
    C语言的标准函数库提供有一个随机数函数,即 rando()函数,它返回[0,MAX均匀分布的伪随机整数。rand()函数不接受参数,默认以1为种子(即起始值),它总是以相同的种子开始,所以形成的伪随机数列也相同,不是真正的随机。这是有意设计的,目的是为了便于程序的调试。
    另一个函数是 srand(),可以使用该函数指定不同的数(无符号整数)为种子。但是如果种子相同,么伪随机数列也相同。有两种方法可以采用:一种是让用户输入种子,但效果不是很理想;另一种比较想的是采用变化的数,常用时间来作为随机数生成器的种子。这样,种子不同,产生的随机数也就不同。
    在这里插入图片描述

    使用随机函数

    rand()函数没有参数,它返回一个从0到最大数之间的随机数。
    要生成一个[a,b]范围内的随机数,可以表示为:

    	int n=a+srand()%(b-a+1);
    

    在这里插入图片描述
    下面我就写个代码

    #include <stdio.h>
    #include <stdlib.h>//包含转换和存储头文件
    #include <time.h>//包含日期和时间处理头文件
    #define max 100
    
    int main() {
    	srand((unsigned)time(NULL));//随机数播种函数
    	for (int i = 0; i < 20; i++)//产生20个随机数
    		printf("%d\n", rand() % max);//设定随机数范围并输出
    }
    

    srand()函数的参数是一个带NUL参数的tmeO函数。NULL参数使tme0函数以秒为单位读取计算机内部时钟的时间,然后 srand()函数使这个时间初始化,rand()函数设定随机函数范围,也就是常说的产生一个以当前时间开始的随机种子。
    MAX为生成随机数范围的上限值,rand%MAX产生的随机数范围是[0,max-1]。
    在这里插入图片描述

    展开全文
  • 本博文旨在实现随机生成验证码,要求:验证码只能是大写英文字母阿拉伯数字,但不能出现容易发生歧义的数字或字母,如:0 o,2Z,1和L等等,利用随机数产生相应的验证码,但是在一次生成的随机码中,不能有...

    大家好,我叫执念。本博文源于安卓的随机验证码生成,执念比较菜,先实现出c代码,然后转成安卓。下面先分析具体操作步骤。

    题目再现

    在这里插入图片描述

    测试效果

    在这里插入图片描述

    源码附上

    先将字典初始化,然后从字典里随机数生成,然后每生成一个随机数与原数组里每一个元素进行比较,如果不重复添加,如果重复重新来。产生歧义的条件考虑到,下面就可以实现了。

    
    //5个找三个
    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    typedef char ElementType;
    
    void PrintArray(ElementType arr[],int n)
    {
    	for(int i=0;i<n;i++)
    		printf("%c",arr[i]);
    }
    
    void InitDic(ElementType arr[])
    {
    	
    	int ncnt = 0;
    	for(char i='A';i<='Z';i++)
    	{
    		
    		arr[ncnt++] = i;
    		//ncnt++;
    	}
    	for(char i='0';i<='9';i++)
    		arr[ncnt++] = i;	
    }
    
    int main()
    {
    	char arr[36];
    	InitDic(arr);
    	int pos;
    	while(1){
    		srand(time(NULL));
    		pos = rand()%(35-0+1)+0;	
    		if(arr[pos]!='2' && arr[pos]!='L' && arr[pos]!='Z'
    		 && arr[pos]!= '1' && arr[pos] !='O' && arr[pos]!='0')
    			break;
    	}
    
    	int cnt = 0;
    	int n = 5;
    	char b[n];
    	b[cnt] = arr[pos];
    	cnt++;
    	while(cnt<n)
    	{
    		int flag =1;
    		pos = rand()%(35-0+1)+0;
    		if(!(arr[pos]!='2' && arr[pos]!='L' && arr[pos]!='Z' && 
    		arr[pos]!= '1' && arr[pos] !='O' && arr[pos]!='0'))
    			flag = 0;
    		for(int j=0;j<cnt;j++)
    		{
    
    				
    			if(arr[pos] == b[j] )
    			{
    				flag = 0;
    				break;
    			}
    
    
    		}
    
    		if(flag==1)
    		{
    			b[cnt]=arr[pos];
    			cnt++;
    		}
    	}
    
    	PrintArray(b,n);
    	return 0;
    }
    
    展开全文
  • C语言推箱子游戏,随机生成地图

    千次阅读 2018-07-31 13:42:14
    思路: 一、地图初始化 - 使用奇数行列相同的二维数组存储地图,初始化全部为墙 - 使用一个1-2的随机数确定挖坑方向,1向左...- 0代表小人,X代表箱子 - 左移右移:判断小人所在位置临近向右(左)的位置是...
  • 填充的随机数必须在0~9之间,输出求和结果之前需要将生成随机数组输出。 解答示范 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; void main() { int a[4]...
  • 1.[文件] 测1.cpp~1KB 下载(74)//产生一个六位的密码(包含大小写字母数字),首位为字母#include#include#includevoid main(){int i,num;char str[6];int seed=1;char ch[4]="abc";srand((unsigned)time(0));//用于...
  • 意思就是说,你用一个只返回0和1这两个随机数的函数来实现一个能返回a,b间任意数的一个随机函数。实现如下: #include #include #include #include //时间相关 int Random(int a, int b) { int i; int ...
  • 利用时间生成随机数字符串 利用时间(按照一定格式)生成一个随机的字符串。 第0位开始, 第01、2、3…是产生的随机数(2位16进制); 第3、5、7、9位后面都是一个 -连接; 第6位,是十六进制4开始的两位数 第8...
  • 该函数会产生一个[0,RAND_MAX]的伪随机数,那什么是伪随机数? 相当于一个序列a1-an,第一次使用会返回a1, 第二次使用会返回a2….第n次返回an,这样每次调用rand()都能产生一个不同的数,只要整个序列的规律不明显...
  • Linux C语言生成随机数

    千次阅读 2018-04-06 13:49:42
    1.rand()函数 是产生随机数的一个随机函数:#include &lt;stdlib.h&gt; int rand(void);return value: 为一个随机数值,范围咋0至RAND_MAX之间(定义在stdlib.h,如下) /* The largest number rand will...
  • 随机生成10个“雷”:可使用随机函数生成10对不重复的行列下标,将其值置为-1,之后使用循环累计每个非-1元素周围-1的个数。 ③ 计算非“雷”位置附近有多少“雷”,即当数组元素不等于-1时,计算它上下左右8个...
  • 功能描述:基于上一篇“数据文件自动生成的实现(多模块进阶)”文章,对工程项目进行包括使用.ini文件存储配置参数、增加.dat文件(二进制文件)的方式记录随机生成数据、利用结构体数组暂存随机生成数据调用程序计时...
  • 在用计算机的一些智能算法(GA,PSO,ANN etc.)仿真时经常需要随机生成初始种群(初始样本),看看中的这两个函数的伪随机数生成吧~~~ 1. 生成[a,b]之间的一个实数一个整数 /* 定义函数 int rand(void); ...
  • C语言比较冒泡排序快速排序时间

    千次阅读 2019-11-11 20:45:23
    随机生成10000个随机数,进行冒泡排序快速排序,并比较时间。 #include<stdlib.h> #include<stdio.h> #include<time.h> void BubbleSort(int *a, int length) //冒泡 { for (int i = 0; i &...
  • 在用计算机的一些智能算法(GA,PSO,ANN etc.)仿真时经常需要随机生成初始种群(初始样本),看看中的这两个函数的伪随机数生成吧~~~ 1. 生成[a,b]之间的一个实数一个整数 [cpp] view plaincopy ...
  • n由输入得到,声明一个整型的二维数组来表示无向图的关系矩阵,随机可使用c语言的srand()rand()函数,对二维数组的值随机生成01,0表示两点间无直接路径,1表示两点间有直接的路径。  判断一个无向图是否为...
  • 假设要生成前n个自然数的一个随机置换,如{4,3,1,5,2}{3,1,4,2,5}就是一个合法置换; 但{5,4,1,2,1}就不是,因为1出现2次而3没有。假设我们有一个随机数生成器RandInt(i,j),它以相同概率生成i到j之间的整数,闭...
  • C语言扫雷

    2019-07-19 15:23:50
    环境VS2013 思路: 1,先搞一个二维数组表示地图。 (a),show_map玩家看到的地图,已翻开(数字)未翻开(*)两种状态。...(b),mine_map初始化随机生成10个地雷 3,打印地图 4,提示用户...
  • C语言-贪吃蛇

    2019-09-24 02:24:49
     2,然后随机生成????食物并显示,同时固定初始方向向右,初始化score为0;  3,通过读取输入更新蛇的移动方向;  4,移动蛇的位置(即将链表尾节移动到首节,用空格刷新尾节显示,同时显示此时首节位置); ...
  • 编写程序,由用户输入一个整数n,然后系统随机生成一个nx n矩阵,输出该矩阵,并分别求出其主对角线元素次对角线元素之。 例如下面为一个3 x 3的矩阵。 2 0 5 3 1 8 6 7 9 其中: 2、1、9为主对角线上的元素,5、1...
  • C语言之飞机大战

    2020-11-30 22:20:38
    随机生成数; 视觉暂留; 碰撞检测; 清屏函数; 设置边界; 技术路线 设置一个边界; 维护一个子弹的列表; 维护一个敌机的列表; 初始化飞机的位置; 每隔一秒钟生成一架敌机,生成位置x坐标随机,坐标为0; ...
  • c语言产生随机数函数

    千次阅读 多人点赞 2020-03-21 15:38:17
    rand()函数返回一个从0~32767之间的随机整数,为了生成区间 [m,n] 之间的整数,可以用公式 rand()%(n-m+1)+m。 例区间:[100,200],随机整数的计算方法为: rand()%(200-100+1)+100 即rand()%101+100; rand()函数是以...
  • 随机生成一个数,猜单双,下注,如果猜对则赢一倍,猜错则下注全输掉.  本金1000,输完为止.请用程序模拟实现过程. int a = 0, b = 0, c = 0, d = 1000,f=0 ; for (a = 1; ; a++) { printf("您拥有本金%d,欢迎您参加...
  • 下载不后悔,带题带答案,为下一届学员造福。 1.简单档1题: 试按以下给出的排序算法为整数链表编写一个排序函数: 该算法是按表元键值的各位值进行排序。...2、 10个数字随机生成 3、 程序可读性好
  • C语言课程实验9

    2020-11-28 17:37:40
    random(): 产生一个[0, 1)的随机浮点数。 uniform(a, b),用于生成一个指定范围内的随机浮点数,两个参数ab:一个是上限,一个是下限。如果a>b,则生成的随机数n满足:b<=n<=a;如果a<b,则a<=n<...
  • 随机函数rand() 会随机生成一个位于0-RAND_MAX之间的整数; #include <stdio.h> #include <stdlib.h> int main() { for (int i = 0; i < 10; i++) printf("%d ", rand()); printf("\n"); ...
  • /* R[0]作为临时单元哨兵 */ do { while (LQ(L->R[0].key, L->R[j].key)&&(j>i)) j-- ; if (j>i) { L->R[i]=L->R[j] ; i++; } while (LQ(L->R[i].key,L->R[0].key)&&(j>i)) i++ ; if (j>i) { L...
  • 1. 随机生成没有重复的4个数。(每个数字在0-9范围内)。 2. 用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有 x个数数值位置都相同!有 y个数数值相同,但位置...
  • C语言实现扫雷小游戏

    2019-04-08 12:17:56
    大家都玩过扫雷吧!这是我们的童年记忆,今天就带大家用C语言实现扫雷程序的设计。...初始化 两个地图 (1)show_map 初始化把每个元素都设为* (2) mine_map 初始化随机生成10个地雷 //3.打印...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

c语言随机生成0和1

c语言 订阅