自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 部分背包问题——贪心算法

问题描述"""部分背包问题:输入:n个物品组成的集合O,每个物品有两个属性Vi和Pi,分别表示体积和价格 背包容量为C输出:求解一个解决方案S={Xi|1<=i<=n,0<=Xi<=1},使得: 优化目标为max(Xi·Pi的总和) 约束条件为(Xi·Vi的总和)小于等于C"""代码def FranctionalKnapsack(n, p, v, C): """ :param n: 商品数量n :param p: 各商品的价

2022-03-15 20:10:58 259 2

原创 LeetCode第二题——两数相加

题目要求:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。未审题清楚时候的代码:class Solution(o

2021-11-28 10:53:58 118

原创 一个需要充值游戏币的猜数游戏!!!

快来输入游戏币猜数吧!!!!这个代码是一个突然想起来想写的代码,我之前写过一个简易版本的猜数游戏代码,这个代码是需要用户注册并且根据输入的金额充值游戏币才能玩的,如果用户用光了游戏币还没有猜数成功系统将直接终止游戏,如果用户在还有游戏币或者刚好用完的情况下猜对了,系统在终止游戏之前会奖励用户三个游戏币。下个版本(2.0)的升级应该会变成如果用户猜对了且还有游戏币,就可以选择是否还要继续玩;如果用户没有游戏币了用户可以选择再充值,如果充值的金额达到100元及以上,系统将额外赠送30个游戏币。3.0版本的

2021-10-15 16:23:46 1621

原创 部分背包问题——贪心算法

问题简述“”"部分背包问题:输入:n个物品组成的集合O,每个物品有两个属性Vi和Pi,分别表示体积和价格背包容量为C输出:求解一个解决方案S={Xi|1<=i<=n,0<=Xi<=1},使得:优化目标为max(Xi·Pi的总和)约束条件为(Xi·Vi的总和)小于等于C“”"代码def FranctionalKnapsack(n, p, v, C): """ :param n: 商品数量n :param p: 各商品的价值p :param

2021-09-08 21:10:14 806

原创 矩阵链乘法问题——动态规划

问题描述n个矩阵相乘,有一系列矩阵按顺序排列,每个矩阵的行数=前一个矩阵的列数输入:n个矩阵组成的矩阵链U1…n=<U1,U2,…Un>矩阵链U1…n对应的维度数分别为p0,p1,…,pn,Ui的维度为pi-1xpi输出:找到一种加括号的方式,以确定矩阵链乘法的计算顺序,使得最小化矩阵链标量乘法的次数代码import numpydef Matrix_Chain_Multiply(p, n): """ :param p:矩阵维度数组p :param n:矩阵

2021-09-05 22:52:06 661

原创 钢条切割问题——动态规划

钢条切割问题——利用动态规划进行求解钢条切割问题就是指给定一段长度为n的钢条,在钢条不同位置上进行切割,总长度不变,切割成本为0,求切割后钢条的最大收益动态规划代码:def RobCutting(p, n): """ :param p:钢条价格表 :param n:钢条长度 :return:切割钢条得到的最大收益C[n],钢条切割方案 """ # 初始化 C = [0 for _ in range(n + 1)] # 这里C为收益列表,当n为0时

2021-09-03 22:29:39 708

原创 编辑距离问题——动态规划

问题描述给定两个字符串s和t,求利用删除、插入、替换三种操作将s替换为t串的最小编辑次数,即最短编辑距离。动态规划代码求解import numpydef Minimum_Edit_Distance(s, t): """ :param s: 字符串s :param t: 字符串t :return: s和t的最小编辑距离 """ n = len(s) m = len(t) # 新建D[0...n,0...m]和Rec[0...n,0...m]两

2021-08-25 22:29:52 139

原创 最长公共子串——动态规划

问题描述:最长公共子串和最长公共子序列问题很相似,但是最长公共子串要求不可以间断,必须是连续的,一旦不相等便记录为0,相等便让子串长度加1,依次遍历。动态规划import numpydef Longest_Common_Substring(X, Y):""" :param X: 字符串X :param Y: 字符串Y :return: X和Y的最长公共子串 """ # 初始化 n = len(X) m = len(Y) l_max = 0 # 子串长

2021-08-25 13:11:46 110

原创 最长公共子序列——动态规划

问题描述:给定两个序列X,Y,输出两个序列的最长公共子序列。动态规划求解import numpydef Longest_Common_Subsequence(X,Y): """ :param X: 序列X :param Y: 序列Y :return: X和Y的最长公共子序列 """ # 序列长度 n = len(X) m = len(Y) # 初始化,新建二维数组C[0...n,0...m]和rec[0...n,0...m]

2021-08-25 12:09:14 76

原创 最大子数组问题——动态规划法

用动态规划求解最大子数组问题想了解如何用蛮力枚举、优化枚举、分治法求解可见我的博客用分治法求解最大子数组问题动态规划:import copydef Max_Continuous_Subarray_DP(X,n): """ :param X: 输入的原始数组 :param n: 数组长度 :return: 最大子数组和Smax,子数组起始位置l,r """ # 初始化 D = copy.deepcopy(X) Rec = [None for _

2021-08-24 09:36:45 678

原创 0-1背包问题——动态规划

问题描述:给定一些商品,包括商品的价格和体积,选定若干个商品装进固定容量的背包,选定商品的价格总和最大且总容量不超过背包容量。0-1背包问题仅有是否装入两种情况。蛮力枚举def KnapsackSR(i, c, vi, pi): """ :param pi: 商品价格的列表 :param vi: 商品体积的列表 :param i: 前i个商品 :param c: 容量为c时最优解 :return: 最大总价格 """ if c < 0:

2021-08-20 16:39:10 210

原创 次序选择问题——分治法

问题背景:最小值查找,查找指定位置的元素k为指定位置,q为主元位置,p为数组起始位置,q为数组结束位置,该问题可参考快速排序

2021-08-18 18:07:18 663

原创 快速排序——分治法

用分治法解决快速排序问题基本思想:侧重分解,简化合并分解:数组划分选定一个元素作为数组的主元,作为数组的分界线主元左边的数小于主元右边的数主元为固定位置的元素'''1. 选取固定位置的元素作为主元,一般为首元素或者尾元素2. 定义i和j两个元素分别作为划分的两个部分的右端元素3. 比较主元和arr[j], 如果A[j]<=x:则交换A[j]和A[i+1],i和j同时右移 如果A[j]>x:则j右移4. 把主元放在两部分中间做分界线'''List item

2021-08-18 16:40:01 346

原创 逆序对计数问题——分治法求解

逆序对计数问题## 问题描述给定一个数组,计算其中的逆序对数量蛮力枚举def ReversedCount(arr): Sum = 0 for i in range(0, len(arr)): for j in range(i, len(arr)): if arr[i] > arr[j]: Sum += 1 return Sum归并求解思想:利用归并排序,现将数组分为两部分,保证数组的有序性当i,j分别在左边和右边数组移动时,同时对此时i,j所在位置的元素进行

2021-08-06 21:34:44 1390

原创 用分治法求最大子数组和

分治法求最大子数组和引入:暴力枚举法:"""1.建立一个起始下标和一个终止下标,作为每一段子数组的起始下标和终止下标2.建立一个变量用来承接在运算过程中的子数组和3.当运算时当前子数组和大于已计算的子数组和,就更新该变量"""def Max_Arr(arr): # 暴力枚举法计算最大子数组和 pre = 0 # 起始下标 rear = len(arr)-1 # 终止下标 Max_Sum = 0 # 承接最大子数组和的变量 while pre != len(arr)-1: # 循环条件

2021-08-02 22:45:53 608

原创 用分治法解决归并排序问题

用分治法解决归并排序问题算法流程:1.分解原问题:将数组A[1,n]排序问题分解为A[1,n/2]排序问题和A[n/2+1,n]排序问题2.解决子问题:递归解决子问题得到两个有序子数组3.合并问题解:合并两个有序子数组为一个数组算法代码:import copydef Merge(A,left,mid,right):# 创建一个元组A_,用来承接计算过程中元组A的元素,要用深复制# 深复制使得A和A_两个元组在计算过程中毫无关联,不会互相影响 A_=copy.deepcopy(A)

2021-07-27 22:23:20 629

原创 猜数字大小-用随机数来比较大小

#include#include<time.h>//使用了time()函数#include<stdlib.h>uisng namespace std;int main(){int number;srand((unsigned)time(NULL));//以时间做种,每次产生的随机数不同for(int i=0;i<50;i++){ //每一次产生50个随机种子number=rand()%101;//产生1到100的随机数}int b;cout<&l

2020-05-21 21:37:58 853

原创 一个简单的倒垃圾程序

一个简单的好玩的判断是否要去倒垃圾程序;#include<iostream>#include<string>using namespace std;int main() {string litter;cout << “现在是否要去倒垃圾?(输入“垃圾已满”或者“垃圾还没满”” << endl;do {cin >> litt...

2020-05-06 23:09:35 191

原创 定义一个Int类,完成各头文件所提供的函数的定义。

提供一个较完整的包装类Int。使得任何时候,将代码中的Int替换为int,或者将int替换为Int(当然此时要包含头文件),都没有任何问题。#ifndef INT_H#define INT_Hclass Int{private:int value;public:/*********************************** 以下为构造函数和析构函数 /Int(...

2020-05-05 20:03:01 1326 1

装配体2-玩具车.SLDASM

这是solidworks的绘图文件,只是最终的装配体,如果需要零件图,可以留言给我,我会再重新上传,这个是自己画的,虽然不是自己设计的,但是也一直跟着画了很久,我还只是一个弱弱的小菜鸡。

2020-08-16

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

TA关注的人

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