C语言
文章平均质量分 69
Reacubeth
imperfect but true
展开
-
元胞自动机生命游戏C语言并行实现
简介细胞自动机(又称元胞自动机),名字虽然很深奥,但是它的行为却是非常美妙的。所有这些怎样实现的呢?我们可以把计算机中的宇宙想象成是一堆方格子构成的封闭空间,尺寸为N的空间就有NN个格子。而每一个格子都可以看成是一个生命体,每个生命都有生和死两种状态,如果该格子生就显示蓝色,死则显示白色。每一个格子旁边都有邻居格子存在,如果我们把33的9个格子构成的正方形看成一个基本单位的话,那么这个正方形中心的格子的邻居就是它旁边的8个格子。每个格子的生死遵循下面的原则:1. 如果一个细胞周围有3个细胞为生(一个原创 2022-01-26 11:39:27 · 1105 阅读 · 1 评论 -
C语言赌博机掷骰子
一个C语言写的小游戏——赌博机,适合学习C语言的人学习借鉴。 (A C language to write a small game- gambling machines, suitable for learning C language people learn.) http://www.pudn.com/Download/item/id/2568776.html 下面介绍赌博规则 庄家...转载 2018-02-08 18:19:43 · 3100 阅读 · 1 评论 -
C语言银行家算法
算法简介 银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。算法目的 为了了解系统的资源分配情况,假定系统的任何一种资源在任意时刻只能被一个进程使用,任何进程已经占用的资源只能由进程自己释放,而不能由其他进...原创 2018-05-27 09:17:30 · 64567 阅读 · 21 评论 -
操作系统动态优先级调度算法C语言实现
动态优先级算法 动态优先数是指在进程创建时先确定一个初始优先数, 以后在进程运行中随着进程特性的改变不断修改优先数,这样,由于开始优先数很低而得不到CPU的进程,就能因为等待时间的增长而优先数变为最高而得到CPU运行。例如:在进程获得一次CPU后就将其优先数减少1,或者进程等待的时间超过某一时限时增加其优先数的值。在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和...原创 2018-05-27 10:48:53 · 40885 阅读 · 9 评论 -
生产者与消费者问题C语言实现
实验目的 ①实现生产者—消费者问题的模拟,以便更好的理解此经典进程同步问题。生产者-消费者问题是典型的PV操作问题,假设系统中有一个比较大的缓冲池,生产者的任务是只要缓冲池未满就可以将生产出的产品放入其中,而消费者的任务是只要缓冲池未空就可以从缓冲池中拿走产品。缓冲池被占用时,任何进程都不能访问。②每一个生产者都要把自己生产的产品放入缓冲池,每个消费者从缓冲池中取走产品消费。在这种情况下,生...原创 2018-05-27 10:51:24 · 116041 阅读 · 86 评论 -
递归下降实现LL(1)文法分析C语言与Python实现
对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的产生式A—>α|β 满足下列条件:(1)如果α、β均不能推导出ε,则 FIRST(α) ∩ FIRST(β) = ∅。(2)α 和 β 至多有一个能推导出 ε。(3)如果 β *═> ε,则 FIRST(α) ∩ FOLLOW(A) = ∅。将满足上述条件的文法称为LL(1)文法。例子:E-...原创 2019-01-14 19:50:29 · 4786 阅读 · 1 评论 -
二叉树遍历的转换C++实现
二叉树的遍历分为以下三种:先序遍历:遍历顺序规则为【根左右】中序遍历:遍历顺序规则为【左根右】后序遍历:遍历顺序规则为【左右根】什么是【根左右】就是先遍历根,再遍历左节点,最后遍历右节点。举例来说:先序遍历:ABCDEFGHK中序遍历:BDCAEHGKF后序遍历:DCBHKGFEA在转换过程中要注意:先序遍历根节点在首项中序遍历根节点在中间后序遍历根节点在最后因...原创 2019-02-01 15:53:42 · 1426 阅读 · 0 评论 -
动态规划——最大整除子集C++
来自LeetCode 368描述给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。如果有多个目标子集,返回其中任何一个均可。此题类似于求最长递增子序列http://www.omegaxyz.com/2017/05/12/longest_ascending_sequence/class...原创 2019-04-06 12:24:47 · 778 阅读 · 0 评论 -
三路快排C++实现与应用
本文共467个字,预计阅读时间需要2分钟。三路快排是快速排序算法的升级版,用来处理有大量重复数据的数组。主要思想是选取一个key,小于key的丢到左边,大于key的丢到右边,递归实现即可。具体操作过程参考:https://blog.csdn.net/k_koris/article/details/80585979C++代码:#include<iostream> usin...原创 2019-04-06 12:29:57 · 1301 阅读 · 0 评论 -
FatMouse’ Trade
简介贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。FatMouse’ TradeFatMouse’ TradeTime Limit:...原创 2019-04-18 10:09:43 · 462 阅读 · 0 评论 -
回溯法——素数环C++实现
本文共928个字,预计阅读时间需要3分钟。回溯法简介回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐层向其祖先节点回溯;否则,进入该子树,继续按深度优先策略搜索。回溯法的基本行为是搜索,搜索过程使用剪枝函数来为了避免无效的搜索。剪枝函数包...原创 2019-06-02 08:53:55 · 4095 阅读 · 0 评论 -
Prime Path素数筛与BFS动态规划
本文共2053个字,预计阅读时间需要6分钟。BFSBFS,其英文全称是Breadth First Search。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般的实验里,其邻居节点尚未被检验过的节点会被放置在一个被称为 open 的容器中(例如队列或是链表),而被检验过的节点则被放置在被称为 closed 的容器中。(open-cl...原创 2019-06-02 08:56:45 · 294 阅读 · 0 评论 -
并查集应用——PAT甲级2019春季
并查集适用问题举例1、已知,有n个人和m对好友关系2、如果两个人是直接的或者间接的好友(好友的好友的好友。。。),那么他们属于一个集合,就是一个朋友圈中3、写出程序,求这n个人中一共有多少个朋友圈更详细请查看http://www.omegaxyz.com/2019/02/25/union-find/PAT-2019年春季考试-甲级-3Telefraud(电信诈骗) remains a...原创 2019-07-24 10:07:07 · 407 阅读 · 0 评论 -
装饰模式C++实现
简介动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。动机有时我们希望给某个对象而不是整个类添加一些功能。使用继承机制是添加功能的一种有效途径,但不够灵活,用户不能控制对组件添加功能的方式和时机。一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加功能,我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。适...原创 2019-08-02 17:17:16 · 1346 阅读 · 0 评论 -
动态规划-最大的正方形面积
题目表述Given a 2D binary matrix filled with 0’s and 1’s, find the largest square containing only 1’s and return its area.For example, given the following matrix:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0...原创 2019-09-14 14:27:13 · 593 阅读 · 0 评论 -
NSGA-Ⅱ算法C++实现(测试函数为ZDT1)
在看C++实现之前,请先看一下NSGA-II算法概述http://www.omegaxyz.com/2017/04/14/nsga-iiintro/NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面: ①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了转载 2017-06-15 23:38:13 · 12895 阅读 · 33 评论 -
C++对类或结构体进行指定规则排序
STL中就自带了排序函数sortsort 对给定区间所有元素进行排序.使用#include sort即可使用,语法描述为:sort(begin,end,cmp),表示一个范围。其中cmp是自己指定的比较规则。函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 par原创 2017-12-03 17:51:06 · 3514 阅读 · 0 评论 -
哥德巴赫猜想验证
#include<stdio.h>main(){ int x,n,a,b,m; printf("input the max:"); scanf("%d",&x); for(n=6;n<x;n+=2) { for(m=3;m<n;m+=2) { for(a=2;a<m;a++)原创 2017-01-22 13:29:03 · 648 阅读 · 0 评论 -
结构体链表赋值与删除
#include<stdio.h>#include<malloc.h>#define LEN sizeof(struct student)struct student{ char num[6]; char name[8]; char sex[2]; int age; struct student *next;}stu[10];void main()原创 2017-01-22 13:38:38 · 2315 阅读 · 0 评论 -
计算24点程序代码
如何计算二十四点#include<stdio.h>char mark[4]={'+','-','*','/'};float cal(float x,float y,int mark){ switch(mark) { case 0:return x+y; case 1:return x-y; case 2:return x*y; case 3:return原创 2017-01-24 17:23:48 · 20399 阅读 · 7 评论 -
AOJ-754 数根
数根Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 100 MB Total Submission: 69 Submission Accepted: 21 Description 计算该整数的各位数字之和,如果结果值是单个数字的数,那么这个数就是所求数根;如果结果值是由两位数或两位以上的数字组成的数,则继续计原创 2017-03-18 15:31:56 · 580 阅读 · 0 评论 -
AOJ-759 会绕圈的数
会绕圈的数Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MB Total Submission: 29 Submission Accepted: 16 Description 任意一个正整数,把它的每一位数字都平方后相加得到一个数;将这个数的每一位数字再平方相加;依次进行就会产生循环现象。 例如:1原创 2017-03-18 15:33:25 · 655 阅读 · 0 评论 -
数据结构Huffman树及编码
一、 实验目的构造一个哈夫曼树,并根据所构造的哈夫曼树求其哈夫曼树的编码; 二、 基本思路将每个英文字母依照出现频率由小排到大,最小在左,组成一个序列每个字母都代表一个终端节点(叶节点),比较每个字母的出现频率,将最小的两个字母频率相加合成一个新的节点,将两个字母从序列中删除,将生成的节点加入到字母队列中重复前面两步,直到序列中没有字母为止 进行编码:给霍夫曼树的所有左链结’0’与右链结原创 2017-06-16 23:42:56 · 2166 阅读 · 2 评论 -
迷宫问题的通用解法C语言数据结构实现
1.1问题描述 以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。1.2基本要求 输入的形式和范围: 非递归:行列为整型,坐标为整型递归:迷宫以整型二维数组形式输入输出的形式:非递归输出三元组通路和方阵通路; 递归以方阵输出迷宫和所有通路;1、非递归算法,求一条通路输出三元组形式如:(1,1,1)原创 2017-06-19 23:20:02 · 7062 阅读 · 1 评论 -
课程设计旅游景点咨询系统
欢迎访问我的网站:omegaxyz.com 问题描述:创建一个至少有15个点的有向网表示的某个旅游景点的导游图。顶点代表景点,类型为字符串(例如,泰山导游图:“天地广场门”,“十八盘”,“冯玉祥墓”,“桃花峪门”,“中天门”,“南天门”,“玉皇顶”等),弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公里数),弧上还有到达方法的信息(有步行和索道两种)。建立一个游客咨询系统。1.基本原创 2017-07-22 09:36:33 · 3282 阅读 · 2 评论 -
课程设计哈夫曼编/译码系统
更多内容访问:omegaxyz.com 问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(解码)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站设计一个哈夫曼编译码系统。1.基本要求(1)初始化(Initialzation)。原创 2017-07-03 10:29:01 · 4677 阅读 · 10 评论 -
数据结构串的基本操作及KMP算法
将串的基本操作C语言实现,实现KMP算法算出NEXT函数和NEXTVAL的值。SqString.h的基本内容typedef int Status;typedef struct{ unsigned char data[MAXSTRLEN+1]; int length;}SString;Status StrInput(SString &S);void StrAssign(SStr原创 2017-08-07 11:35:24 · 1480 阅读 · 0 评论 -
规则绝对公平时,社会财富的流向谁?
从知乎有一个很有趣的问题:房间里有100个人,每人都有100元钱,如果每过一分钟,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的? 这个问题,可以看成一个小型实验,模拟的是规则绝对公平时,社会财富的流向。财富随机流动的话,贫富差距是否就会消失呢? 城市数据团用程序模拟了这个过程: 就这样,80%的钱跑进了20%的口袋里。即使在最公平的规则下,世界依然展现出了原创 2017-08-25 09:33:52 · 1943 阅读 · 0 评论 -
n阶行列式计算Python和C语言实现
行列式在数学中,是一个函数,其定义域为det的矩阵A,取值为一个标量,写作det(A)或 | A | 。无论是在线性代数、多项式理论,还是在微积分学中(比如说换元积分法中),行列式作为基本的数学工具,都有着重要的应用。 行列式可以看做是有向面积或体积的概念在一般的欧几里得空间中的推广。或者说,在 n 维欧几里得空间中,行列式描述的是一个线性变换对“体积”所造成的影响。 这里介绍一下计算机计算行列原创 2017-09-11 23:43:06 · 9514 阅读 · 4 评论 -
C++运算符重载详解
为什么要对运算符进行重载C++预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其新的功能,以满足自身的需求。C++运算符重载的实质运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够用同名的函数来完成不同的基本原创 2017-10-14 09:04:07 · 405 阅读 · 0 评论 -
C/C++移位运算符
在一般的C语言教学中,移位运算符很多情况下讲师直接跳过,更多的会在汇编语言中系统得讲述。然而,熟练掌握。高级语言中的移位很大程度上可以展现一个人的代码功底并且能提高编程效率。更多内容访问omegaxyz.comC/C ++提供位逻辑运算符和移位运算符。二者只能用于整形和字符型。位运算符是对每位进行操作而不影响左右两位,这有别于常规运算符(&&|| !)是将整个数进行操作的。一. 位逻辑运算符1. ~原创 2017-10-24 11:52:54 · 3130 阅读 · 0 评论 -
蒙提霍尔问题(三门问题,概率论)C语言验证
三门问题——亦称为蒙提霍尔问题,出自美国的电视游戏节目Let’s Make a Deal。问题的名字来自该节目的主持人蒙提·霍尔(Monty Hall)。问题是这样的:参赛者面前有三扇关闭着的门,其中一扇的后面是一辆汽车,选中后面有车的那扇门就可以赢得该汽车, 而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,主持人会开启剩 下两扇门中的一扇,露出其中一只山羊。主持人其原创 2017-11-09 23:13:11 · 5934 阅读 · 0 评论