- 博客(0)
- 资源 (5)
- 收藏
- 关注
算法——硬币兑换:源代码
金钱兑换问题
(a)在该题中, 种硬币 ,其中 ,用 表示面额为 的钱最少所需要的硬币数目, ,而在本题中,我们要求的就是 的值.
状态转移方程: ,这里初始化时,设置 ,意为每次给的钱均全部使用 来兑换.
伪代码:
Input : n种硬币集合 ,要进行计算的面额
Output : 最少需要的硬币数
For each
End-for
For each
For each
If
End-if
End-for
End-for
Return
(b) 时间复杂度 ,空间复杂度
(c) 这两个算法都同属于优化问题,背包问题在满足背包容量的前提下,来求得最大价值总量;该硬件兑换问题是在满足给定钱的条件下所需要的最少硬币数. 二者都是在满足约束的前提下,对目标进行优化.
2019-05-03
算法——背包问题
背包问题(Knapsack problem)是组合优化领域的一类经典问题: 给定一个物品集合,每个物品具有一定重量以及一定的价值. 对于一个承载重量有限的背包,如何决定放入的物品,使得在背包承载的范围内获取所装物品的最大价值. 背包问题具有多种表现形式,其中最常见的当数0-1背包问题(0-1 knapsack problem),它规定了放入到背包中的物品的数目的表现形式,每种物品具有放入(且仅放入一次)或不放入两种形式,用0和1分别进行表示:
这里的 ,代表了第 个物品是否包含在背包当中, 表示第 个物品的价值, 表示第 个物品的重量, 表示背包的最大承载能力.
题目:
试用贪心算法和动态规划方法来解决0-1背包问题,采用所提供的数据集合.
作业需要提供实验报告,包括伪代码和运行代码,以及每个测试问题的运行时间、结果,如果无法在有限时间得到答案则为N.A.
2019-05-03
计算机组成原理36条指令单周期CPU实现
一、 设计目标
设计目的:
设计一个含有36条指令的MIPS单周期处理器,并能将指令准确的执行并烧写到试验箱上来验证
设计初衷
1、理解MIPS指令结构,理解MIPS指令集中常用指令的功能和编码,学会对这些指令进行归纳分类。
2、了解熟悉MIPS体系中的处理器结构
3、熟悉并掌握单周期处理器CPU的原理和设计
4、进一步加强Verilog语言进行电路设计的能力
二、实验设备
1、装有xilinx ISE的计算机一台
2、LS-CPU-EXB-002教学系统实验箱一台
三、实验任务
1.、学习 MIPS 指令集,深入理解常用指令的功能和编码,并进行归纳确定处理器各部件的控制码,比如使用何种 ALU 运算,是否写寄存器堆等。
2、单周期 CPU 是指一条指令的所有操作在一个时钟周期内执行完。设计中所有寄存器和存储器都是异步读同步写的,即读出数据不需要时钟控制,但写入数据需时钟控制。
故单周期 CPU 的运作即:在一个时钟周期内,根据 PC 值从指令 ROM 中读出相应的指令,将指令译码后从寄存器堆中读出需要的操作数,送往 ALU 模块,ALU 模块运算得到结果。
如果是 store 指令,则 ALU 运算结果为数据存储的地址,就向数据 RAM 发出写请求,在下一个时钟上升沿真正写入到数据存储器。
如果是 load 指令,则 ALU 运算结果为数据存储的地址,根据该值从数据存 RAM 中读出数据,送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。
如果非 load/store 操作,若有写寄存器堆的操作,则直接将 ALU 运算结果送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。
如果是分支跳转指令,则是需要将结果写入到 pc 寄存器中的。
2019-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人