自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 HDLBits-Ringer

题目很简单,但软件编程到硬件编程的思想转变值得注意。

2023-04-22 17:19:34 170 2

原创 HDLBits - Mt2015 q4

【代码】HDLBits - Mt2015 q4。

2023-04-22 16:26:01 156

原创 HDLBits-Bcdadd100

本题给出了两个一位(4bit)的BCD数加法器,要求编写一个100位(400bit)的BCD数加法器。解析第一次用always语句一直报错,原因是该模块中需要实例化bcd_fadd模块100次,always语句不支持重复实例化的语法。因此使用generate语句。以下是在知乎csdn整理的generate语句用法。Verilog中的generate语句常用于编写可配置的、可综合的RTL的设计结构。它可用于创建模块的多个实例化,或者有条件的实例化代码块。

2023-04-17 19:42:27 603 3

原创 银行家算法原理及代码实现

银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。

2022-11-11 00:03:10 2548 1

原创 SM4国密算法原理及python代码实现

SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。在商用密码体系中,SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。

2022-11-01 14:54:47 7028 2

原创 祖冲之加密算法详解及代码实现

祖冲之加密由上层的线性反馈移位寄存器(LFSR)和中层的比特重组(BR)以及下层的非线性函数F组成。线性反馈移位寄存器的输出作为比特重组的输入,比特重组的输出供下层的F函数输出密钥。

2022-10-04 00:49:35 6100 2

原创 CTF入门RSA维纳攻击

RSA维纳攻击一.题目描述适用于e过大或国过小情况下的RSA加密题干如下:#coding:utf-8import gmpy2import libnume = 54856417509806712596137531985117125938559627187663765776152288580865785539464797248184444737659643755765127505761012086539564616967122137525108154121304264697865568653100

2022-03-23 23:36:02 1023

原创 ctf入门RSA共模攻击

RSA共模攻击一.题目描述假设有一条信息m,由两个不同的用户使用公钥进行RSA加密(两个用户的e一般不同,模数n一般相同)c1 = m^e1 mod nc2 = m^e2 mod n得到了两个不同的密文c1,c2因为公钥是公开的(e1,e2,n)已知那么攻击者一共知道如下信息gcd(e1, e2) = 1m = c1^d1 mod nm = c2^d2 mod n即通过以上信息求解出明文m该题目题干为:#coding:utf-8import gmpy2import libnu

2022-03-23 23:31:20 1962 1

原创 西北工业大学noj数据结构005单链表的删除

#include <stdio.h>#include <stdlib.h>#define max 1000typedef struct Node{ int data; struct Node*next;}Node,*LinkList;//一般linklist表示头指针,node*表示结点指针LinkList InitList()//初始化{ LinkList l; l=(LinkList)malloc(sizeof(Node));..

2021-06-19 14:54:14 363

原创 西北工业大学noj数据结构004单链表的归并

#include <stdio.h>#include <stdlib.h>#define max 1000typedef struct Node{ int data; struct Node*next;}Node,*LinkList;//一般linklist表示头指针,node*表示结点指针/*InitList(LinkList*l)//初始化{ *l=(LinkList)malloc(sizeof(Node)); (*l)-&gt..

2021-06-19 14:52:33 284

原创 西北工业大学noj数据结构003顺序表的删除

#include <stdio.h>#include <stdlib.h>#define max 1000typedef struct//顺序表起{ int a[max]; int last;}seq;int chazhao(seq *l,int n)//返回的是在顺序表中的位置,不是数组里的下标{ int i=0; while((i<=l->last)&&(l->a[i]!=n)) ..

2021-06-19 14:40:36 414 2

原创 西北工业大学noj数据结构002线性表的就地逆置

马上考试了把原来的题发出来好复习#include <stdio.h>#include <stdlib.h>#define max 1000#define ok 1#define error 0typedef struct{ int a[max]; int last;}seq;void nizhi(seq*l,int number){ int k; for(int i=number/2;i>=1;i--) { ..

2021-06-19 14:39:14 305 2

原创 西北工业大学noj数据结构001顺序表的插入运算

#include<stdio.h>#include<stdlib.h>#define max 1000#define ok 1#define error 0typedef struct{ int a[max]; int last;}seq;int chazhao(seq *l,int n)//返回的是在顺序表中的位置,不是数组里的下标{ int k=1; for(;k<=l->last-1;k++) { ..

2021-06-19 14:36:49 463

原创 web前端小白入门003

这次作业是做一个复杂点的网站,大同小异,大概是这样式的:话不多说上代码<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> </head> <body align="center"> <table align="center" border="0"> <tr> &l

2021-06-11 18:01:51 101

原创 web前端html小白入门002

前端的第一个作业是用刚学完的表格的知识做一个这样式的东西:其实就是表格内容的一些扩展,但我做的还远不够好,有些地方是硬凑出来的,话不多说上代码:<!DOCTYPE html><html><body><table frame="box" cellpadding="8" width="470px" align="center"><tr><td style=" background: darkgray;"><font

2021-06-10 22:35:26 102

原创 web前端html小白入门001

感谢学校开的新课,最近新接触了一下前端,感觉很有意思。虽然第一节课睡着了,但是课后还是自学了一下,第一个小练习是做一个课表。大概是这样式滴:html非常容易上手,基本上在w3school学一个小时就能做出来了,话不多说上代码:<html><body><h4 style="text-align:center">课程表</h4><table border="1"><tr> <th>项目</th>

2021-06-10 22:31:26 125 3

原创 noj数据结构019基于图的深度优先搜索策略

这道题主要应用邻接表法表示图,在应用深度优先搜索得出结果,话不多说上代码:#include<stdio.h>#include<stdlib.h>#define MAX_VERTEX_NUM 20#define error -1#define ok 1typedef enum{DG,DN,UDG,UDN} GraphKind;//图的种类 有向图,有向网,无向图,无向网typedef struct ArcNode//弧结点{ int adjvex;//该弧结.

2021-06-07 15:26:13 364

原创 noj数据结构018—建立二叉树的二叉链表(严6.65)

这道题比较有挑战性,用先序中序确定了一个二叉树,再用后续输出。思路为依次遍历先序字符串中的元素,先序遍历的值就是这个节点的元素的值,每遍历一个元素都查找他在中序字符串中的位置。如果中序字符串中左边有字符,说明有左子树,对左边字符串再递归调用上述函数。直到没有左子树,右边有字符,那么对右子树调用上述函数,直到遍历到叶子节点。如用示例举例:先序第一个字符为A,A就是根节点的值。查找他它在中序里面的位置发下左右都有字符,说明左右子树都存在。那我们先从左子树开始递归。及用先序里面第二个字符B和中序中A左.

2021-05-28 22:03:08 772 7

原创 数据结构noj17输出以二叉树表示的算术表达式(严6.51)

题目要求的输入是先序输入,而输出形式是中缀表达式,即将线序输入的二叉树用中序顺序输出。值得注意的是算术式的二叉树有三种输出形式:如以下算术式二叉树:先序遍历的前缀输出为:-+abc/de中序遍历的中缀输出为:a+bc-d/e后序遍历的后缀输出为:abc*+de/-剩下要说的都在注释里,话不多说上代码#include<stdio.h>#include <stdlib.h>typedef struct Node{ char data; struct Node*.

2021-05-26 12:03:20 441

原创 西北工业大学数据结构noj016计算二叉树叶子节点数目(耿6.14)

这道题思路比较简单,在创建二叉树时可以借鉴先序遍历的方法:如果输入的是非空节点,那将这个值赋给节点,并且以这个节点为参数递归调用这个节点的左右节点,直到空节点;如果输入的是#,那么直接给这个节点赋null;话不多说上代码#include<stdio.h>#include <stdlib.h>typedef struct Node{ char data; struct Node* LChild; struct Node* RChild;}BiTNode,*Bi..

2021-05-21 22:19:01 403

原创 西北工业大学noj数据结构015建立二叉树的二叉链表存储结构(严6.70)

这道题考察最基础的二叉链表建立,值得注意的一点是这道题输入形式是以广义表的格式输入,因此创建的函数有些不同创建二叉树函数:void CreateBiTree(BiTree* p){ char c, s; (*p) = (BiTree)malloc(sizeof(BiTNode));//申请空间初始化 c = getchar(); s = c; c = getchar(); (*p)->LChild = NULL; (*p)->RC..

2021-05-19 11:48:43 352

原创 西北工业大学noj数据结构012以三元组表为存储结构实现矩阵相加

这道题和实验里面的一道题很像,详见我的博客稀疏矩阵的加法。这道题实现两个矩阵的加法。笔者采用了结构体数组的定义形式存储矩阵。同时需要注意输出时候的顺序,还有当加和后的结果为零时删除这个节点。要说的都在注释里,话不多说上代码:#include<stdio.h>#include <stdlib.h>#define ok 1#define error 0#define max 1000typedef struct{ int hang; int lie;..

2021-04-27 11:43:27 422

原创 西北工业大学数据结构noj011循环右移(耿5.2)

这道题考察数组应用,难度不大,我们利用循环队列做,不过用最简单的一维数组也可以做,而且更加简单。话不多说上代码#include<stdio.h>#include <stdlib.h>#define ok 1#define error 0typedef struct//定义循环队列{ int *data;//定义一个int数组 int front;//这里的指针根本不是指针,是表示元素的位置的数字 int rear; int lengt..

2021-04-27 11:15:58 491

原创 西北工业大学数据结构010k阶斐波那契数列.(严3.32)

这道题一开始把我坑惨了,我把它当成斐波那契数列做,结果做了半天WA(wonderful answer)。后来发现是k阶斐波那契数列才迷途知返。简单介绍一下k阶斐波那契数列:一个数列的前k-1项都为0,第k项为1,第k+1项开始后面的每一项都等于前面k项之和。即我们熟悉的斐波那契数列为2阶斐波那契数列。搞明白这个之后只需要设置一个长度为k的循环队列,然后计算出k阶斐波那契数列每一项的值,如果是合理范围就进队,最后把队列输出就可以了。话不多说上代码:#include<stdio.h>..

2021-04-25 22:06:56 492 2

原创 西北工业大学noj数据结构实验004稀疏矩阵的加法

这道题实现两个稀疏矩阵的加法。笔者采用了结构体数组的定义形式存储矩阵。同时需要注意输出时候的顺序,还有当家和后的结果为零时删除这个节点。要说的都在注释里,话不多说上代码:#include<stdio.h>#include <stdlib.h>#define ok 1#define error 0#define max 1000typedef struct{ int hang; int lie; int data;}seq;typedef ..

2021-04-23 18:09:53 1272

原创 西北工业大学noj数据结构实验003稀疏矩阵转置

矩阵转置没什么好说的,都在注释里了,上代码:#include<stdio.h>#include <stdlib.h>#define ok 1#define error 0#define max 1000typedef struct{ int hang; int lie; int data;}seq;void zhuanzhi(seq zzj[],int j)//矩阵转置,i个元素{ int i; for( i=0;i&..

2021-04-18 17:22:21 1306 1

原创 西北工业大学noj数据结构009循环队列(严3.30)

首先这个题非常的奇怪,它明明说输出yes或者no但是在输入样例里面直接输入yes或者no,并且评阅的时候yes或者no也是当成输入项,应该是题目有点问题。抛开这个小瑕疵,这道题考察的是循环队列的建立插入删除等操作。需要注意的几点有:1.建立循环链表的时候尽量多申请一个空间用于判空;2.删除操作不是只删除一项,由于队列只能从一边删除,所以删除时需要将比这个元素先入队的所有元素都删除;话不多说上代码:#include<stdio.h>#include <stdlib.h>..

2021-04-15 12:05:49 796 3

原创 西北工业大学noj数据结构008逆波兰式(耿3.8)

做这道题之前需要先清楚逆波兰式的概念逆波兰式是计算机常用的表达式语言,借用知乎大佬的讲解:逆波兰表达式,英文为 Reverse Polish notation,跟波兰表达式(Polish notation)相对应。之所以叫波兰表达式和逆波兰表达式,是为了纪念波兰的数理科学家 Jan Łukasiewicz。其在著作中提到:我在1924年突然有了一个无需括号的表达方法,我在文章第一次使用了这种表示法。平时我们习惯将表达式写成 (1 + 2) * (3 + 4),加减乘除等运算符写在中间,因此称呼为中缀..

2021-04-13 21:34:30 1790 1

原创 西北工业大学noj数据结构表达式括号匹配(严3.19)

这道题要求我们判断输出的一个字符串中的括号是否符合运算规律。可以运用栈的思想。如果一个括号是左括号就入栈,如果输出一个右括号就将它和栈头的左括号对比,符合就出栈(相当于消掉)。最后如果还有没消掉的括号就是不符合规定。话不多说上代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#define max 1000#define ok 1#define error 0typedef struct{..

2021-04-09 00:15:39 4116 12

原创 西北工业大学noj数据结构 LOCATE操作(严2.38)

这道题大概思路为,建立一个双向链表,每个结点多加一个freq域。创建一个locate函数,循环调用n次。最后用一个反向冒泡排序将链表输出。话不多说上代码:#include <stdio.h>#include <stdlib.h>typedef struct DNode{char data;int freq;//多增加;了一个freq域struct DNode *pre,*next;}DNode,*DoubleList;void input (char *ep)/.

2021-04-07 13:08:11 833 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除