算法
文章平均质量分 93
尚先生的博客
这个作者很懒,什么都没留下…
展开
-
伽罗华域(Galois Field)上的四则运算
http://abcdxyzk.github.io/blog/2018/04/16/isal-erase-3/转载 2023-01-11 10:53:25 · 1282 阅读 · 0 评论 -
基于柯西矩阵的Erasure Code技术详解
基于柯西矩阵的Erasure Code技术详解转载 2023-01-11 10:46:53 · 308 阅读 · 0 评论 -
高性能纠删码编码
高性能纠删码编码转载 2023-01-11 10:35:15 · 371 阅读 · 0 评论 -
深入浅出一致性Hash原理,及问题解决
深入浅出一致性Hash原理,及问题解决转载 2022-12-10 15:40:35 · 375 阅读 · 0 评论 -
(跳跃)一致性哈希算法
(跳跃)一致性哈希算法转载 2022-12-10 15:21:40 · 654 阅读 · 0 评论 -
一致性哈希算法(consistent hashing)
一致性哈希算法(consistent hashing)转载 2022-12-10 14:48:30 · 1118 阅读 · 0 评论 -
解析变长结构体的用法和优点
变长结构体:在接触变长结构体之前,以为会是一个很难理解的东西,但是这其实算是C里面的一种技巧吧,优点是:分配了一段连续的内存,防止内存碎片化以及方便内存的管理。使用变长结构体的格式如下:struct Test{ .... int a; .... char b[0];};重点是结构体的最后一个成员char b[0],是个空数组。在我们不知道结构体内的某个成员大小是多少的时候,我们在最后一个成员放置了一个空数组,这样做的好处就是,我们直接用结构体指针申请空间(sizeof转载 2020-12-13 14:50:55 · 376 阅读 · 0 评论 -
深入浅出变长结构体
深入浅出变长结构体1、 问题的引出 项目中用到数据包的处理,但包的大小是不固定的,其长度由包头的2字节决定。比如如下的包头:88 0f 0a ob cd ef 23 00。长度由头2个字节880f决定,考虑字节序,转为0f88,转为10进制3976个字节的包长度。 这个时候存储包的时候,一方面可以考虑设定包的大小固定:如4K=4*1024=4096个字节,因为最大包长不可能超过4k,但该方法的有缺陷,存在一种极端就是包最小仅含包头不含数据域,此时包为8个字节,浪费了...转载 2020-12-13 14:50:47 · 192 阅读 · 1 评论 -
经典算法之不定方程问题
所谓不定方程,是指未知数个数多于方程个数,且对解都有一定的限制。首先,来看一道经典的数学问题“百钱买鸡”问题。中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买鸡”问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买鸡,问翁、母、雏各几何? 意思是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,要求100文钱买100只鸡,求公鸡、母鸡和小鸡应该各买多少只? 其实这是一道不定方程问题,有两个条件:一是用的钱数正好是100文;二是买鸡的数量正好是100只。设...转载 2020-11-29 16:08:38 · 797 阅读 · 0 评论 -
另一种求大数阶乘的算法
大数阶乘 问题描述:编写程序,对给定的n(n <= 100),计算并输出k的阶乘k!的全部有效数字。注意:如果要求一个5的阶乘,用整型可以存储,求10的阶乘可以用长整型表示,但若要求100的阶乘,就无法用长整型表示,此时就必须考虑别的方法。 要求的k!的值,必定已求得(k-1)!的值,依次地推,当 k = 2时,要求的1! = 1为已知。求得(k-1)!的值后,对(k-1)!连续累加k-1此后即可求得K!值。 例如:5!= 120,计算6!,可对原来的120累...转载 2020-11-29 16:06:00 · 347 阅读 · 0 评论 -
再来一种求大数阶乘的方法
过多的我就不说了,直接看看代码:java版的:/** * */package Factorial; /** * @author 牟尼(昵称) * @blog:http://blog.csdn.net/u012027907 * */public class Factorial {/* * 大数阶乘计算类 */ /* * 分析:大数阶乘用数组来存储,如5的阶乘可存在数组cal[]中,表示为 * 0 1 2 3 *[3][0][2][7] *个位存阶乘转载 2020-11-29 16:04:33 · 122 阅读 · 0 评论 -
大数阶乘的实现
当提到计算一个数的阶乘时,也许很多人都能够轻易的解决,但很多人可能会发现,当计算100或200甚至更大的数的阶乘时,发现一般的方法无法实现,因为就拿200来说,200的阶乘的最后结果的位数达375位,一般的数据类型(如int)根本无法存储,那就得采用其他的方法来解决。 说到这里,可能有人已经想到了,没错,这与求任意位数Pi值及大整数运算的思想都是相似的,即:采用数组来存储。 关于计算任意位数Pi值及大整数运算的方法,可参见我的博客:计算任意位数Pi值...转载 2020-11-29 16:02:14 · 431 阅读 · 0 评论 -
笔试题
1. 使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。(15分)算法实现:/*实现字符串翻转*/char* reverse_str(char* str){ if(NULL == str) //字符串为空直接返回 { return str; } char *begin; char *end; begin = end = str; while(*end != '\0') /.转载 2020-11-29 15:57:58 · 118 阅读 · 0 评论 -
C语言经典算法100例(三)
1.河内之塔说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬运完毕转载 2020-11-29 15:53:22 · 503 阅读 · 0 评论 -
C语言经典算法100例(二)
11.判断某一年是否是闰年。//判断某一年份是否是闰年int IsLeapYear(int year){ return (year % 400 == 0 || (year % 4 == 0) && (year % 100 != 0));}运行结果:12.获得某年、某月的最大天数。//获得某年、某月的最大天数int GetMaxDay(int year,int month){ switch(month) { case 1: case 3: c.转载 2020-11-29 15:43:43 · 492 阅读 · 0 评论 -
C语言经典算法100例(一)
C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的、更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础。 接下来我们先来看10道:(1)输出9*9乘法口诀。//9*9乘法口诀表void Table99(){ int i,j; for(i = 1; i <= 9; i++) //外层循环控制行 { for(j = 1; j <= i; j++) //内层循...转载 2020-11-29 15:34:18 · 5321 阅读 · 0 评论 -
计算任意位数的Pi
当用程序实现求pi的值时,也许你能够很快写出算法(利用求pi的几个公式),但是由于使用单变量保存结果,限于计算机硬件对变量的表示范围有限,因此,最多只能计算出pi值小数点后十多位。但需要得到一个更大位数的pi值时,就得考虑其他的算法。 我们采用这个公式计算pi: pi/2 = 1+1/3+1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9+......在计算上述公式的个分式值时,由于1/3这类的分数是无限循环小数,而使用单变量时,由于变量能表示的范围有限,...转载 2020-11-27 14:28:24 · 863 阅读 · 0 评论