算法
佳hong
这个作者很懒,什么都没留下…
展开
-
python 动态规划 钢条切割
python 动态规划 钢条切割# 钢条长度length = [0,1,2,3,4,5,6,7,8,9,10]# 对应长度的钢条价值value = [0,1,5,8,9,10,17,17,20,9,10]# 求长度为n的钢条,怎么切可以有最大价值def cutting(length, value, n): s = [0]*(n+1) # 小段长度 v = [0]*(n+1) # 价值 if n > len(length): l = len(leng原创 2020-11-15 17:08:27 · 398 阅读 · 0 评论 -
python计数排序
计数排序对每个元素确定小于该元素的个数def countSort(A, k): #k是元素数值上界 c = [0] * k result = [0] * len(A) for i in range(len(A)): c[A[i]] = c[A[i]] + 1 # 计算小于该元素的个数 for i in range((k-1)): c[i+1] = c[i+1] + c[i] # 每个减轻去1是因为索引是从0开始,而计数是从1原创 2020-11-12 14:00:41 · 153 阅读 · 0 评论 -
python分治法实现最大子数组问题
最大子数组问题给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。使用分治法,A[low…high]的任意连续子数组A[i…j]所处的位置必然是以下三种情况之一:(a)完全位于子数组A[low…mid]中,因此low≤i≤j≤mid(b)完全位于子数组A[mid+1…high]中,因此mid≤i≤j≤high(c)跨越了中点,因此low≤i≤mid≤j≤high分别找它们中的最大子数组就好了# 找跨过中点的def cross(A, low,原创 2020-11-10 22:10:13 · 547 阅读 · 0 评论 -
样条插值的思想做回归
样条插值的思想做回归一、生成数据多项式y=0.2x3+0.5x2−0.8x+3y = 0.2x^3+0.5x^2-0.8x+3y=0.2x3+0.5x2−0.8x+3再加上服从正态分布的噪声 ξ\xiξimport numpyimport matplotlib.pyplot as pltnumpy.random.seed(1)def cal_poly(x): return 0.2 * x ** 3 + 0.5 * x**2 - 0.8 * x + 3#生成100个数据x_da原创 2020-10-06 21:45:30 · 573 阅读 · 0 评论 -
10阶多项式拟合10000个点。点的生成,使用bp思想拟合。Polynomial_fitting
用10阶多项式拟合10000个点import matplotlib.pyplot as pltimport random一、数据生成#首先保证这10000个点x各不相同,从0-20000内随机生成不同的数,除以100,将x值变为0-200num = random.sample(range(1,20000),10000)num_x = []for i in range(10000): num_x.append(num[i] / 100) #y也一样,y的生成不需要不一样nu原创 2020-09-30 09:31:55 · 852 阅读 · 0 评论 -
数据结构图相关算法的python实现
图1.邻接矩阵class GraphTable: def __init__(self, mat, unconn=0): # unconn表示选择有无权重 vnum = len(mat) for x in mat: if len(x) != vnum: #检查是否时方阵 print('No square matrix') return self._mat = [m原创 2020-09-03 22:23:47 · 262 阅读 · 0 评论 -
梯度下降python实现,一维梯度下降,多维梯度下降,随机梯度下降
import numpy as npimport torchimport mathimport sysimport matplotlib.pyplot as plt一维梯度下降小学习率def gd(eta): times = 10 x = 10 #从5开始梯度下降 results = [x] for i in range(times): x -= eta * 2 * x # x^2的导数 results.append(x)原创 2020-08-19 23:48:19 · 964 阅读 · 0 评论 -
python求解迷宫问题
迷宫问题求解#构造迷宫import numpy as npmap = [ [0,1,0,0,0,0], [0,1,1,1,0,0], [0,1,0,1,1,0], [1,1,0,0,1,0], [0,0,0,0,0,0], [0,0,0,0,0,0]]start = [0,0]end = [5,5]print(map)[[0, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 1, 0, 1, 1, 0], [1原创 2020-08-07 22:32:43 · 1357 阅读 · 0 评论 -
CNN误差反向传播的一些笔记
原创 2020-07-24 21:39:33 · 148 阅读 · 0 评论 -
python 邻接表法实现图,以及拓扑排序
拓扑排序import random# 第一行对应起点,第二行对应终点arr = [[0,0,1,3,2,4,5],[1,2,3,4,5,5,1]]arr1 = [[0,0,1,3,2,5],[1,2,3,4,5,1]]print(arr)[[0, 0, 1, 3, 2, 4, 5], [1, 2, 3, 4, 5, 5, 1]]定义图邻接表的形式让字典中的键表示各个结点,值则表示各个结点的对应链表(即各个邻接点)。其中,链表用列表list()来进行存储,而链表中的各个结点用元组t原创 2020-07-14 21:18:10 · 1230 阅读 · 1 评论 -
python实现希尔排序,归并排序(自顶向下和自底向上)
希尔排序import random'''生成随机数,这里用到的叫列表推导式子,详见:https://blog.csdn.net/weixin_42769131/article/details/104214098'''arr = [random.randint(1,20) for i in range(0,10)]print(arr)len(arr)[3, 12, 20, 2, 16, 14, 14, 11, 7, 14]10#希尔排序def ShellSort(arr, n):原创 2020-07-12 21:02:31 · 816 阅读 · 1 评论 -
一个序列,找从i开始,连续k个元素的最小值,要求输出从所有的最小值
问题:给定一个证书序列,定义f(i)为聪元素i开始的连续k个元素的最小值,要求计算f(1),f(2)……f(n-k+1)//一个序列,找从i开始,连续k个元素的最小值,要求输出所有的//使用单调队列的思想void q2(int arr[], int n, int k){ int q[4]; //队列 int result[n-4]; //结果 int result_index=...原创 2020-03-30 16:14:28 · 494 阅读 · 0 评论 -
0-9的整数数组,找一个尽量长的连续子序列,使得该子序列中没有相同的元素
问题:0-9的整数数组,找一个尽量长的连续子序列,使得该子序列中没有相同的元素分析:利用滑动窗口的想法,遇到不重复的元素,窗口结尾往后走。遇到重复的,判断该子序列长度count与到目前为止最大长度max的大小,调整窗口,记录最大序列起止位置i和j,继续进行,直到末尾。//唯一的雪花 找一个尽量长的连续子序列,该序列中没有相同的元素 (0-9)int isIn(int arr[], i...原创 2020-03-30 12:45:56 · 367 阅读 · 0 评论