![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
双杯献酒
这个作者很懒,什么都没留下…
展开
-
不开方快速约算对角线长度
快速计算对角线长度原创 2022-12-11 18:20:47 · 574 阅读 · 1 评论 -
C#运行时替换类的成员函数
using System;using System.Reflection;using System.Runtime.CompilerServices;using System.Diagnostics;// 工具定义// 注意: 需要 "unsafe编译" ([项目属性 - 生成] 勾选"允许不安全代码")// 仅仅实现了 x64支持namespace MethodReplace{ public static class MethodReplaceUtil { .原创 2021-02-03 18:16:08 · 1146 阅读 · 0 评论 -
C#计算连分数
using System;using System.Collections.Generic;namespace fraction{ class Program { // 计算连分数 static Int32[] GetFraction(double f, int n) { var d = new List<Int32>(); if(f <= 0) .原创 2020-05-26 15:52:41 · 278 阅读 · 0 评论 -
随机选择2(JS)
一种不重复的随机选择算法, 时间复杂度O(N²),空间复杂度O(N), 其中N是选出的数据个数.原创 2016-06-18 18:29:31 · 674 阅读 · 0 评论 -
积分的比赛次数期望
初始积分为0, 每次比赛有50%的概率胜利或者失败, 如果胜利, 积分加1, 如果失败则积分减一(积分为0则不减).问要使得积分到达5, 需要比赛的次数的数学期望是多少?原创 2016-02-21 12:18:20 · 925 阅读 · 0 评论 -
一种游戏玩家ID方案
游戏的ID生成原创 2015-09-21 15:39:13 · 1327 阅读 · 0 评论 -
随机选择(JS)
随机选择, 时间复杂度 O(NlogN), 空间复杂度O(NlogN), N是结果数组的大小原创 2015-08-12 16:12:27 · 1536 阅读 · 0 评论 -
线段相交的判断
http://www.cnblogs.com/zhangchaoyang/articles/2668562.html线段AB和CD相交判断(1)如果C,D分别在AB的两侧(可用叉积判断), 且A,B分别在CD的两侧, 则与CD相交(2)如果一个点P在线段AB上, 则APxAP为0且P点坐标在AB之间转载 2015-06-04 16:42:12 · 438 阅读 · 0 评论 -
三角形和矩形相交的判断
三角形和矩形相交的判断原创 2015-06-04 15:25:58 · 2789 阅读 · 0 评论 -
判断点P是否在三角形ABC内部
判断点P是否在三角形ABC内部计算叉乘, 符号全部相同则在三角形内部原创 2015-06-04 11:37:37 · 1385 阅读 · 0 评论 -
查看Outlook保存的密码
// 获取Outlook保存的密码// 来自 http://www.mamicode.com/info-detail-516836.html// VS2012通过(MBCS字符集)// Windows 7, Outlook2010#include "stdafx.h"#include #include #include #include using namespace std;转载 2015-05-07 19:11:59 · 9757 阅读 · 0 评论 -
Lua处理mysql转义字符
-- 处理mysql转义字符local mysqlEscapeMode = "[%z\'\"\\\26\b\n\r\t]";local mysqlEscapeReplace = { ['\0']='\\0', ['\''] = '\\\'', ['\"'] = '\\\"', ['\\'] = '\\\\', ['\26'] = '\\z', [原创 2014-05-12 15:32:00 · 2461 阅读 · 1 评论 -
矩形内线性插值
已知矩形四个顶点对应的值, 对矩形内的点线性插值.原创 2016-07-19 10:34:14 · 1487 阅读 · 0 评论 -
控制台绘制心形
标准的心形绘制方程是:(x²+y²-1)³ ≤ x²y³参考(C++): https://bbs.csdn.net/topics/391941602我用了一种简单的容易理解的方法来绘制。即, 四个象限分成四段二次曲线来拼接。语言: Lua-- 心形线-- 四个象限分四个函数画-- (1) 原点在 (+r, 0) 的半圆 (x-r)² + y² <= r²-- (2) 原点在 (-r,...原创 2018-05-20 21:32:50 · 1343 阅读 · 2 评论 -
计算一个整数N的所有正因子的倒数之和
本文根据今日头条的一个视频整理.设 S = 1/n1 + 1/n2 + ... 1/n_(k-1) + 1/n_k头尾对应的数字相乘都等于N所以 S*N = n_k + n_(k-1) + ... + n2 + n1所以, 设N的所有因子之和等于M,则 S = M/N设 N = A1^q1 * A2^q2 * ... * At^qt则 M = (A1^0 + A1^1 +...翻译 2019-03-29 19:48:23 · 1869 阅读 · 0 评论 -
二维瓦片网格边界检测
二维瓦片网格边界检测1. 每个网格只考虑ENWS四个相邻格子四个相邻格子ENSW编号为0~32. 当前方向D(0~3): 如果当前格子是上一个格子选择的ENSW(0~3)中的一个, 则这个选择就是当前方向3. 选择下一个的策略:按找以下优先级判断 (D+3)%4, (D+4)%4, (D+5)%4, (D+6)%4(第一优选是右手侧, 最后一项是原路返回)如果这四...原创 2019-09-03 16:55:05 · 535 阅读 · 0 评论 -
枚举遍历组合
#include <iostream>#include <vector>#include <algorithm>// 组合枚举// 初始化std::vector<int> init_combination(int M){ std::vector<int> data; for (auto i = 0; i < M;...原创 2019-07-28 20:08:10 · 322 阅读 · 1 评论 -
选第K大的数
#include <algorithm>// 快速排序方式的选第K小的数// (如果是选“大”的数, 可以把比较用greater, 或者选第n-k个)template<typename T, class _Pr>int get_pos(T* data, int n, int k, _Pr _Pred){ int h = 0; int t = n - 1...原创 2019-08-08 02:22:02 · 204 阅读 · 0 评论 -
模板元编程-判断质数
#include <iostream>#include <type_traits>template<uint8_t N>struct is_prime{ template<uint8_t N1, bool finish> struct is_prime_check { enum {check_end = (N1*N1 > ...原创 2019-06-26 14:31:44 · 417 阅读 · 0 评论 -
C++模板判断类是否存在某个成员变量
#include <iostream>#include <type_traits>// 检查 xxxx 是否是类T的成员template <typename T>struct has_member_xxxx{ // 如果 &T::xxxx 合法, 本函数就合法 // 下面check<T>(0)优先调用本函数, 返回值是voi...原创 2019-06-21 17:22:37 · 3202 阅读 · 0 评论 -
摩尔斯电码字典序号
// 摩尔斯电码字典序号// 原题参见// https://bbs.csdn.net/topics/392691483#include <iostream>#include<string>// 求组合数C(N, n)int c(int N, int n){ double p = 1.0; for (int i = 0; i <n; ++i) ...原创 2019-06-09 21:34:37 · 1120 阅读 · 2 评论 -
函数调用链
// 将不同参数和返回值的函数组织到数组里并依次调用// (目前尚不支持void函数)#include <vector>#include <memory>#include <iostream>#include <functional>#include<string>#include <sstream>usin...原创 2019-05-19 12:53:45 · 654 阅读 · 0 评论 -
拟牛顿法
1. 考虑一个一次直线函数 y = kx显然 y' = k而任何两个点(x0, y0), (x1,y1)有 y1 - y0 = y'*(x1-x0)2. 考虑一个二次曲线函数 y = kx²显然 y' = 2kx这个是一个一次直线函数,所以对于 y'' = 2k所有有 y'(x1) - y'(x0) = y''*(x1-x0)在二次曲线求最小值的时候, 我们需要求y'=0处的...原创 2019-05-04 11:29:48 · 507 阅读 · 0 评论 -
求两向量的角平分线
已知两非零向量 OA, OB, 求角平分线OC.解法:OA' = OA* |OB|OB' = OB* |OA|此时 |OA'| = |OB'|所以 OC'= OA' + OB'如果 OC' ≠ 0, 则 OC = OC'(如果需要单位向量) OC = OC' / |OC'|如果 OC' = 0, 则:(1)二维: OC' = (OA 旋转±...原创 2019-03-29 10:03:30 · 11130 阅读 · 0 评论 -
一种简单的密码验证方案2
1.过程(1). 客户端将name(或者经过加密), 一个服务器约定的公共salt, 密码password(或者经过hash), 当前时间t 计算 data = hash(salt+name+password+t) 发送 nane, t, data到服务器(2). 服务器从数据库提取密码 如果t与当前时间相差超过阀值, 则认为数据已经过期, 要求客户端重新发送. 计算...原创 2014-05-06 10:50:14 · 977 阅读 · 0 评论 -
Huffman编码示例代码
// Huffman编码示例代码struct HuffmanNode{ int nFrequency; // 频率 struct HuffmanNode* pParent; // 父节点 struct HuffmanNode* pLeft; // 左节点 struct HuffmanNode* pRight; // 右节点};// pData, 树数据,其中叶子数据已经准备好原创 2014-04-18 00:00:26 · 823 阅读 · 0 评论 -
计算完美HASH
// 计算完美HASH#include "stdafx.h"#include #include #include using namespace std;// HASH函数为 data%HashSize// 返回完美HASH的尺寸// 失败返回0原创 2011-08-24 18:32:14 · 646 阅读 · 0 评论 -
大数乘法
// 大数乘法// http://topic.csdn.net/u/20110831/14/C60BF7C0-A789-4C89-B5DE-2F0FE13FFEE2.html#include "stdafx.h"#include #include #i原创 2011-09-06 15:20:46 · 584 阅读 · 0 评论 -
计算CRC的逆(当数据长度等于CRC长度时)
// Demo_CRC.cpp#include "stdafx.h"#include #include "CRC.h"// 将一个字节逆序unsigned char inv_bits(unsigned char c);int _tmain(int argc原创 2011-08-04 11:32:38 · 1623 阅读 · 0 评论 -
将一个字节的bits逆序
参考:http://blog.csdn.net/jakee304/article/details/2152655unsigned char inv_bits(unsigned char c){ // 原始位序: 7 6 5 4 3 2 1 0 // 位序变为:原创 2011-08-04 10:50:05 · 698 阅读 · 0 评论 -
循环移动数组元素
// 循环移动数组元素// 一种大部分数据只移动一次的算法// 方法:// 将数据循环移动, 可以直接计算出每个数据的最终位置, 直接移动即可// 分析:// 这种算法基本可看做每个数据只需要移动一次// 但是每个数据移动的位置需要计算, 算法原创 2011-09-01 09:55:36 · 824 阅读 · 0 评论 -
查找第K大的数据
查找第K大的数据 BFPRT原创 2011-03-14 11:03:00 · 843 阅读 · 0 评论 -
行为树(Behavior Tree)简介
行为树(Behavior Tree)每个节点执行后返回 成功/失败原创 2011-02-18 11:19:00 · 2745 阅读 · 0 评论 -
表驱动的自动状态机(FSM)
表驱动的自动状态机原创 2011-02-19 11:43:00 · 2284 阅读 · 0 评论 -
隔离的块编号
// 区域分块// VC 2008#include "stdafx.h"#include #include #include using namespace std;class Area{public: Area(WORD iSizeX, WORD iSizeY, BYTE iSpace, BYTE iFree) : wSizeX(iSizeX), wSizeY(iSizeY), byS原创 2009-05-06 22:38:00 · 602 阅读 · 0 评论 -
机会均等的随机分配
本算法参考了:http://www.softrank.net/html/development/2009/0405/128.html // 0 ~ nMax (包含 0、不包含nMax)int Rand(int nMax){ return rand() % nMax;} // 平均随机分配// iTotal: 待分配的总量// iNum: 需要分成的份数// pDat原创 2009-04-15 15:37:00 · 888 阅读 · 0 评论 -
计算CDT规约的8位CRC
// 计算8位CRC #include "stdafx.h"//--------------------------------------------------------------------- // 计算8位CRC的函数 // 多项式 G(X)=X8+X原创 2011-09-21 17:44:23 · 2283 阅读 · 0 评论 -
计算随机情况下HASH发生碰撞的概率
// 计算随机情况下HASH碰撞率// 不碰撞率// f(N,1) = 1.0;// f(N,2) = 1.0-1/N;// f(N,k+1) = f(N,k)*(N-k)/N// f(N,k) = (N-1)*(N-2)...(N-(k-1))/(N^(k-原创 2011-09-14 16:31:54 · 3307 阅读 · 0 评论 -
CCITT-CRC16
// VC2008// CCITT-CRC16: x16+x12+x5+1// 注: boost库有crc专门用于计算crc校验#include "stdafx.h"#include unsigned short do_crcH(unsigned short crcInit, unsigned char *message, unsigned int len);unsig原创 2009-10-24 15:35:00 · 5227 阅读 · 1 评论 -
Jump Point Search寻路算法
文章:http://bbs.9ria.com/thread-177473-1-1.htmlhttp://gamedev.tutsplus.com/tutorials/implementation/speed-up-a-star-pathfinding-with-the-jump-point-search-algorithm/http://www.ituring.com.cn/artic转载 2013-06-03 10:40:23 · 3964 阅读 · 0 评论