![](https://img-blog.csdnimg.cn/edd461a187bb450d813b887167020e28.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 70
算法
西笑生
西笑生
展开
-
粒子群优化算法的实践 - 多个约束条件
u是否定,返回False,是否定,双重否定表肯定。粒子群优化算法的实践 - 多个约束条件。原创 2023-12-07 14:21:52 · 466 阅读 · 0 评论 -
粒子群优化算法的实践 - 目标函数的可视化
后面做的事情是找到这个函数的极小点,采用动画的方式,在等高线上绘画出来。粒子群优化算法的实践 - 目标函数的可视化。原创 2023-12-07 10:57:11 · 135 阅读 · 0 评论 -
粒子群优化算法的实践 - 向量减法
梭鱼呢,就在水里猛蹬腿,试图用水流推动车子;大虾就更逗了,它在陆地上一蹦一跳的,想要靠自己的弹跳力移动车子。天鹅整天在天上飞来飞去,觉得自己可牛了;梭鱼呢,在水里游得欢实得很,觉得自己的力气也不小;至于大虾嘛,虽然跳不高,但还是觉得自己挺能耐的。天鹅、梭鱼与大虾,天鹅乃飞禽之王,梭鱼为水族之尊,大虾则是河川之灵。三者皆欲以己之力拉动之,然而,各自行事,车终不前。话说有一辆神车,这车啊,就是不动弹,谁也别想把它弄走。好了,这时候呢,有三个家伙出场了:天鹅、梭鱼和大虾。粒子群优化算法的实践 - 向量减法。原创 2023-12-06 14:09:25 · 75 阅读 · 0 评论 -
粒子群优化算法的实践
Particle Swarm Optimization (PSO) 粒子群优化算法 粒子群算法原创 2023-12-05 11:51:55 · 317 阅读 · 0 评论 -
判断灯的状态
2008年10月29日 星期三 对一批编号为1-100全部开关朝上(开)的灯进行以下操作: 凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关...... 问:最后为关熄状态的灯的编号. 分析:如果一个灯的开关被操作了基数次,那么该灯的状态为关.如何得到一个灯的开关被操作的次数?一个数(灯的编号)能被正整数整除,这些正整原创 2008-10-29 09:48:00 · 1131 阅读 · 0 评论 -
矩阵链乘法 有多少种加括号方案
矩阵链乘法 有多少种加括号方案flyfish 2015-9-19答案与Catalan数列有关递归式的解释 更改下字母就是《算法导论》上的式子 **答案就是C(n−1)C_(n-1) 例如4个矩阵相乘有5种加括号方案 5个矩阵相乘有14种加括号方案**一个关于Catalan恒等式的证明 Catalan mumber与Pascal’s Triangle的关系原创 2015-09-19 14:42:25 · 4129 阅读 · 1 评论 -
矩阵链乘法问题描述(Matrix-chain multiplication)
矩阵链乘法问题描述(Matrix-chain multiplication)flyfish 2015-9-13 矩阵链乘法问题:给定n个要相乘的矩阵构成序列<A1,A2,...,An><A_1,A_2,...,A_n>,计算乘积A1,A2...AnA_1,A_2...A_n。 Matrix-chain multiplication:We are given a sequence(chain)<A原创 2015-09-13 14:44:32 · 4555 阅读 · 0 评论 -
吃豆子过桥
flyfish 2015-10-15 一个人要过一座 80 米的桥,每走一米需要吃一颗豆子,他最多可以装 60 颗豆子,问最少需要吃多少颗豆子才能走完桥?设 桥长:长度 L 最多装多少颗豆子 容量 C分析 情况1:L <= C 一次就可以情况2:原长度是L,从L=C开始 ,在原来基础上长度每次加1,加到L=80原题L=80,C=60,L=L+1 消耗 1*2+1+C L=L+2原创 2015-10-15 18:19:15 · 3085 阅读 · 0 评论 -
利用矩阵求斐波那契数列
利用矩阵求斐波那契数列flyfish 2015-8-27 矩阵(matrix)定义一个m*n的矩阵是一个由m行n列元素排成的矩形阵列。矩阵里的元素可以是数字符号或者数学式.形如{acbd}\begin{Bmatrix}a & b\\ c & d\end{Bmatrix} 的数表称为二阶矩阵,它由二行二列组成,其中a,b,c,d称为这个矩阵的元素。形如 {x1x2}\begin{Bmatri原创 2015-08-27 00:07:37 · 17138 阅读 · 6 评论 -
最长公共子序列定义
最长公共子序列(Longest Common Subsequence,LCS)flyfish 2015-8-20假定我们有如下两个序列S1: 1 2 3 4 5 6 S2: 4 5 6 7 8 9 S1和S2有一个最长公共子序列为 4 5 6 一个子序列不一定必须是连续的,即中间可以被其他字符分开,但它们的顺序必须正确的。 最长公共子序列不一定只原创 2015-10-14 09:14:22 · 1685 阅读 · 0 评论 -
迪米特法则(Law of Demeter)
迪米特法则(Law of Demeter)flyfish第一个例子 Dont Confuse Your Dog “If you want your dog to run, do you talk to your dog or to each leg? The moral : Change the state of a contained object only through the原创 2017-07-25 10:23:42 · 928 阅读 · 0 评论 -
0/1背包问题 - 动态规划(C++实现)
0 / 1背包问题 - 动态规划(C++实现)flyfish以下代码在VC++2013下编译通过#include "stdafx.h"#include <iostream>#include <algorithm>#include <vector>struct Item //物品定义{ int id, weight, value;//编号,重量,价值。编号为0的物品这里没有使用原创 2017-06-20 11:09:28 · 7707 阅读 · 0 评论 -
0/1背包问题 - 回溯法(C++实现)
0/1背包问题 - 回溯法(C++实现)flyfishBacktracking is a general algorithm for finding all (or some) solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds ca原创 2017-06-26 17:25:19 · 6966 阅读 · 4 评论 -
0/1背包问题 - 分枝定界 优先队列
0/1背包问题 - 分枝定界 优先队列flyfish分枝定界branch and bound 分支定界法 分枝界限法 不同的资料不同的叫法 都是 branch and bound 在使用branch and bound 方法解背包问题时 需要使用优先队列优先队列使用标准库提供的std::priority_queue一 简单使用#include "stdafx.h"#include <iost原创 2017-06-29 16:32:04 · 2861 阅读 · 0 评论 -
0/1背包问题 - 分枝定界(C++实现)
0/1背包问题 - 分枝定界(C++实现)flyfish#include "stdafx.h"#include <iostream>#include <algorithm>#include <vector>#include <queue>struct Item //物品定义{ int id, weight, value;//编号,重量,价值。 Item(){} I原创 2017-06-30 15:17:45 · 1604 阅读 · 1 评论 -
0/1背包问题 - 以 动态规划算法 去解
0/1背包问题 - 以 动态规划算法 去解 flyfish0/1背包问题(0/1 knapsack problem) 我们有n种物品,编号是 0,1,2,3…,n-1,物品i的重量(weight)为wi,价值(value) 为vi。 我们假定所有物品的重量和价格都是非负的。 背包所能承受的最大重量(maximum weight capacity)为C。 限定每种物品只能选择0个或1个。目的是原创 2017-06-18 21:16:11 · 1051 阅读 · 1 评论 -
0/1背包问题 - 贪心算法
0/1背包问题 - 贪心算法flyfish贪心算法,贪婪算法,greedy algorithm《数据结构、算法与应用(C++语言描述)》 在贪婪算法(Greedy Algorithm)中,我们要逐步构造一个最优解。每一步,我们都在一定的标准下,作出一个最优决策。每一步作出的最优策略,在以后的步骤中都不允许在更改。作出贪婪决策的依据称为贪婪准则(greedy criterion)简述:考虑原创 2017-06-24 21:11:45 · 8137 阅读 · 1 评论 -
0/1背包问题 - 暴力法(C++实现)
0/1背包问题 - 暴力法(C++实现)flyfish暴力法,蛮力法,brute force都是一个意思 枚举所有的情况解决问题。放与不放到背包里,采用二进制表示,1表示放入背包,0表示不放入背包从n个不同元素中,任取m(m<=n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m<=n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号原创 2017-06-23 20:00:43 · 3787 阅读 · 0 评论 -
0/1背包问题 - 如何理解 解空间
0/1背包问题 - 如何理解 解空间问题:什么是解空间 n元齐次线性方程组的解集S={x|Ax=0}是一个向量空间,称为齐次线性方程组的解空间问题:什么是向量空间 设V为n维向量的集合,如果集合V非空,且集合V对于向量的加法及数乘两种运算封闭,那V就是向量空间问题:什么是n维向量 n个有次序的数a1,a2,a3…,an,所组成的数组称为n维向量Ax=0的含义齐次线性方程组 写成 向量方程的形式原创 2017-06-28 21:18:42 · 5466 阅读 · 0 评论 -
C++ 单例模式
flyfish 2014-12-16编写一个Singleton类class Singleton(){}; 该类是空类经过编译器处理后,C++编译器默认编写的函数代码如下class Singleton() {public: Singleton() {} // 1 构造函数 Singleton(const原创 2014-12-16 21:36:30 · 3890 阅读 · 0 评论 -
职责链模式(Chain of Responsibility)
职责链模式(Chain of Responsibility)flyfish#include "stdafx.h"#include #define SAFE_DELETE(p) if (p) { delete p; p = nullptr; }class AuditingRequest{public: AuditingRequest(int nMoney) : m_n原创 2018-01-09 11:55:18 · 218 阅读 · 0 评论 -
状态模式(State Pattern)
状态模式(State Pattern)flyfish#include "stdafx.h"#include <iostream>class role;class employee{public: virtual void output(role *role_ptr) = 0;};class engineer : public employee{public: virtua原创 2016-08-30 16:18:01 · 420 阅读 · 0 评论 -
LevelDB 设计模式 Iterator模式
LevelDB 设计模式 Iterator模式flyfish 2015-10-9 Iterator模式(迭代器) 对象行为型模式 意图 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示. 适用性 1 访问一个聚合对象的内容而无需暴露它的内部表示. 2 支持对聚合对象的多种遍历 3 为遍历不同的聚合结构提供一个统一的接口(支持多态迭代). 参与者原创 2015-10-09 10:27:38 · 1439 阅读 · 0 评论 -
工厂方法模式(Factory method pattern)
工厂方法模式(Factory method pattern)flyfish 2015-7-4工厂方法模式正式定义 - 引用《HeadFirst 设计模式》 Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a原创 2015-07-04 19:19:26 · 1350 阅读 · 0 评论 -
外观模式(Facade Pattern)
外观模式(Facade Pattern)flyfish Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher - level interface that makes the subsystem easier to use. Wrap a complicate原创 2017-07-25 18:56:43 · 319 阅读 · 0 评论 -
策略模式(Strategy Pattern)
策略模式flyfish#include "stdafx.h"#include <iostream>#include <map>using namespace std;typedef enum StrategyType{ StrategyA, StrategyB, StrategyC}STRATEGYTYPE;class Strategy{public:原创 2017-07-19 14:55:01 · 492 阅读 · 0 评论 -
建造者模式(Builder Pattern)
建造者模式(Builder Pattern)flyfish 2016-1-22 C++实现class Product{public: void DoSomething(){}};class Builder{public: virtual void SetPart1(){};//处理Product的第一部分 virtual void SetPart2(){};//处原创 2016-01-22 16:13:31 · 552 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)flyfish 2016-1-21 本文编程语言采用C+++实现,参考《设计模式之禅》中的Java实现,#pragma once//抽象产品类Aclass AbstractProductA{public: void ShareMethod(); virtual void DoSomething()=0;};原创 2016-01-21 12:00:05 · 529 阅读 · 0 评论 -
原型模式(Prototype Pattern)
原型模式(Prototype Pattern)flyfishC++实现class Prototype{ Prototype(){} virtual ~Prototype(){} virtual Prototype * Clone() = 0; //实现由基类的派生类完成};class ConcretePrototype : public Prototype{publ原创 2016-01-27 17:12:31 · 557 阅读 · 0 评论 -
装饰模式(Decorator Pattern)
装饰模式(Decorator Pattern)flyfish 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。 attach additional responsibilities to an object dynamically keeping the same interface.Decorators provide a flexible alt原创 2016-02-02 14:00:09 · 488 阅读 · 0 评论 -
Yoda Notation
Yoda Notationflyfish 2016-2-22《星球大战》里有个 Yoda 大师 他说话是这样子的: Yoda: Bring him here. Question him we will. Yoda: Around the survivors a perimeter create. Yoda: If Dooku escapes, rally more sy原创 2016-02-22 16:13:07 · 781 阅读 · 0 评论 -
适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern) flyfish Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn’t otherwise because of incompatible原创 2016-01-29 11:10:59 · 431 阅读 · 0 评论 -
模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern)flyfish 2016-1-21本文编程语言采用C+++实现,参考《设计模式之禅》中的Java实现 define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclas原创 2016-01-21 17:34:15 · 544 阅读 · 0 评论 -
砝码称重
原题:法国数学家梅齐亚克在他著名的《数字组合游戏》(1962)中提出了一个问题:(The Weight Problem of Bachet de Meziriac)一位商人有一个重40磅的砝码,一天不小心将砝码摔成了4块。后来商人称得每块的重量都是整磅数,而且发现这四块碎片可以在天平上称1至40磅之间的任意重量。请问这四块碎片各重多少? 一个砝码有三种状态,不放在天平上,放在天原创 2014-06-27 21:31:42 · 1541 阅读 · 0 评论 -
《编程之美》学而思-中国象棋将帅问题
中国象棋将帅问题flyfish 2015-8-11问题引自 《编程之美》中国象棋将帅问题 将帅每一着只许走一步,前进、后退、横走都可以,但不能走出“九宫”,被限制在3×3的格子里运动。将和帅不准在同一直线上直接对面。 请写出一个程序,输出将帅所有合法的位置,要求在代码中只能使用一个变量. 约定用a表示“将”,b表示“帅”一个解法是关于位操作 跳过原文提供解法一struct { unsi原创 2015-08-12 16:02:15 · 1196 阅读 · 0 评论 -
《编程之美》学而思 - 斐波那契数列(Fibonacci sequence)通项公式
《编程之美》学而思 - 斐波那契数列(Fibonacci sequence)通项公式flyfish等比数列通项公式 斐波那契等比数列公式推导 求一元二次方程 公比相等的两个等比数列各项各自相加之后,(a+b)不等于0,公比不变q1和q2 已知求a,b的值,求解二元一次方程组原创 2017-07-26 17:24:29 · 840 阅读 · 0 评论 -
《编程之美》学而思 - 最大公约数问题
《编程之美》学而思 - 最大公约数问题flyfishgreatest common divisor 最大公约数 Euclidean algorithm, or Euclid’s algorithm 欧几里德算法 common divisor 公约数 divisor 除数; 因子;主要方法 列举法:各自列出约数,再找出最大的公约数。 质因数分解法:两数各作素因数分解,然后取出共有的项乘起来。原创 2017-07-15 10:49:13 · 1064 阅读 · 0 评论 -
《编程之美》学而思-金刚坐飞机
金刚坐飞机 2015-11-2 flyfish 引用自《编程之美》 国外有一个谚语: 问:体重800 磅的大猩猩在什么地方坐? 答:它爱在哪儿坐就在哪儿坐。 这句谚语一般用来形容一些“强人”并不遵守大家公认的规则,所以要对其行为保持警 惕。 现在有一班飞机将要起飞,乘客们正准备按机票号码(1, 2, 3, …N)依次排队登机。突 然来了一只大猩猩(对,他叫金刚)。他也有飞机票,但是原创 2015-11-02 21:31:23 · 1478 阅读 · 0 评论 -
《编程之美》学而思 - 斐波那契数列(Fibonacci sequence)
《编程之美》学而思 - 斐波那契数列(Fibonacci sequence)flyfish另一个篇 利用矩阵求斐波那契数列int FibonacciRecursion(int n)//递归{ if (n > 2) return (FibonacciRecursion(n - 1) + FibonacciRecursion(n - 2)); else if (n==2)原创 2017-07-22 11:44:03 · 1200 阅读 · 0 评论 -
《编程之美》学而思 - 金刚坐飞机 问题2的解法
《编程之美》学而思 - 金刚坐飞机 问题2的解法flyfish非书上解法 问题是乘客做到自己位置的概率 假设有1个人,1个金刚 ,2个座位 金刚做到自己位置的概率是 1 / 2,因为2个座位任他选假设有2个人,1个金刚, 3个座位 金刚做到自己位置的概率是 1 / 3 ,因为3个座位任他选假设有3个人,1个金刚, 4个座位 金刚做到自己位置的概率是 1 / 4, 因为4个座位任他选假设有n原创 2017-07-11 17:57:05 · 1096 阅读 · 0 评论