- 博客(8)
- 收藏
- 关注
原创 动态规划算法实践
首先初始化二维数组为 0,最后循环将数组中的每个元素进行填充:如果当前背包可容纳的重量小于当前商品的重量,那么背包中的总价值不会变化,否则,可以选择装下当前这件物品或者不装下这件物品,这就可以得到两个价值,那么其中最高的价值就是当前情况下背包能获得的最大价值。(2) 可以根据物品价值与重量的关系进行物品排序,再使用贪心算法求解,在一定条件下可以获得最优解,时间复杂度为O(nlogn),空间复杂度为O(1)。(3) 所以,总空间复杂度为O(n*w)+O(n)=O(n*w)。
2024-07-04 14:42:26
1463
原创 网络流算法实践
考虑使用动态规划的思想来求解非相邻元素的最大和,具体思路是在遍历矩阵时,记录每个位置能够得到的最大值,并逐步扩展计算出整个矩阵的最大值。数据结构:我们可以使用一个二维数组来表示棋盘,用一个一维数组来记录哪些方格不能被选,一个变量来记录当前已选数的总和以及一个变量来记录当前最大的总和。求取出的方格中所有数字的和的最大值。在给定的m×n个方格的棋盘中,选取不相邻的若干个方格,并使得这些方格内的数之和最大。在给定的m×n个方格的棋盘中,选取不相邻的若干个方格,并使得这些方格内的数之和最大。
2024-07-04 14:39:28
1293
原创 随机化算法实践
估算定积分:已知函数f(x)在区间[a,b]上的定积分公式∫f(x)dx,利用随机采样的方法,在该区间内随机取n个点,并计算其中位于函数曲线下方的点数,再通过计算该面积与整个区间面积之比,来近似计算定积分的值。估算pi的值:已知圆的面积公式S=πr^2和正方形的面积公式S'=4r^2,利用随机采样的方法,通过计算落在圆内的点数与总点数之比,来近似计算π的值。:通过随机采样的方法,在该区间内取n个点,并计算其中位于函数曲线下方的点数,以此近似计算定积分的值。
2024-07-04 14:36:25
682
原创 分治算法实践
否则,将数组划分为两个子问题,分别递归求解左子数组和右子数组的最小值,最后将左右子问题的最小值合并起来即可得到数组的最小值。该算法的时间复杂度为O(nlogn),其中n是数组的大小。对于仅需求解最小值的问题,通常只需要维护一个额外的变量来存储当前的最小值,因此空间复杂度为O(1)。算法中的遍历操作需要访问集合中的每个元素,因此时间复杂度为O(n),其中n是集合中元素的个数。表示数组中的最小值,min{}表示求解内部元素的最小值,i∈[1,n]表示i的取值范围为[1,n],即i从1到n遍历。
2024-07-04 14:26:28
331
原创 贪心算法实践
寻找最优子结构,服务时间需求最短的顾客先进行服务,在等待的顾客此时等待的时间最短,延伸到全局,可以将每位顾客被服务完所需要的时间按照升序排列,然后从小到大将每位顾客按照服务时间的顺序排列,根据服务处的数量,保证正在服务的顾客是未被服务顾客中的最小服务时间的顾客,剩下的顾客一次按照顺序排列准备被服务。顾客i需要的服务时间为ti,1≤i≤n。最优服务次序:['服务处1服务顾客1', '服务处2服务顾客2', '服务处1服务顾客3', '服务处2服务顾客4', '服务处1服务顾客5', '服务处2服务顾客6']
2024-07-04 14:18:59
1599
原创 搜索法实践
在程序中,首先需要创建一个 N 行 N 列的二维数组表示棋盘,用于存储每个位置上是否放置了皇后。在搜索过程中,对于每一个位置都需要遍历所有列进行判断是否符合条件,所以有 N^N 种可能的情况需要搜索。但是,由于每次在第 i 行放置皇后时,必须保证不与前 i-1 行的皇后产生冲突,因此情况数会逐步减少,实际上只用搜索 N!该算法是一种经典的求解 n 皇后问题的算法,运用了回溯算法的思想。或者使用剪枝优化搜索,当某一行不能放置皇后时,可以直接回溯到上一行,从而避免继续搜索无用的状态,提高搜索效率。
2024-07-04 14:10:01
686
原创 jupyter打不开时办法
我遇到的问题是之前能用jupyter的。现在是黑框出现然后闪退,打不开。在命令行中输入jupyter notebook。能够正常打开jupyter notebook。看看是不是和我同样的问题。
2024-05-06 20:28:05
422
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人