Tag: 算法

使用固定数量的函数,如果给出误报概率,我如何计算布隆filter的大小?

我需要实现一个bloomfilter。 我无法找到解决方法。 使用固定数量的函数,如果给出误报概率,我如何计算布隆filter的大小? 例如,我希望filter有10%的误报,我有数字函数和集合中的元素数。 如何计算与假阳性概率匹配的布隆filter的大小?

C中的无损数据压缩,没有动态内存分配

我正在尝试为我正在研究的项目实现无损数据压缩算法。 目标是压缩固定大小的浮点值列表。 代码必须用C编写,不能使用动态内存分配。 这对我很有害,因为大多数(如果不是全部的话)无损算法需要一些动态分配。 我一直在研究的两个主要算法是霍夫曼和算术。 没有动态内存分配,这项任务是否可行? 你们有什么方法或想法吗? 如果您认为不可能,请告诉我原因:-) 任何帮助/建议都会有所帮助!

动态规划问题..数组分区..

问题说, 给定一个大小为n的数组,我们必须将数组输出/分区为总和为N的子集。 For E,g, I/p arr{2,4,5,7}, n=4, N(sum) = 7(given) O/p = {2,5}, {7} 我在url动态编程3中看到了类似的问题/解释 我在pdf中有以下疑问: – 我们怎么能找到总和为N的子集,因为逻辑只告诉子集是否存在? 另外,如果我们稍微改变一下这个问题,我们能否找到两个使用相同意识形态具有相同平均值的子集? 任何人都可以对这个动态编程问题有所了解.. 🙂 提前致谢..

取数字并输出其英文单词的算法

我想在C中制作一个程序,要求用户输入一个数字,然后用英文打印该数字。 例如: if(INPUT == 1) then print ONE if(INPUT == 2) then print TWO 等等。 它可以使用switch-case制作,如果是,但它会使代码冗长。 对于少数数字它没关系,但是如果我们必须写入100,那么它将是冗长的。 是否有一个简短的算法或想法?

结构数组在排序时给出错误的输出

1)我有一个结构 struct node { char symbol; int freq; int left, right,root; int value; short is_sorted; }; struct node data[1000]; 其中,通过从文件“Input.txt”作为唯一参数读取以下字母符号(符号)(abcdef)值来获得数据[215] .freq(频率){0,1,2,3,4,5}。现在我必须添加这个数组的两个最小频率,然后定位在同一个数组中获得的新元素,这样它将保持freq的增加顺序(它已经是排序数组,见我们有0,1,2,3 ,4,5)。 (2)我还必须注意两个最小添加元素不能再参与分类和添加,如果已经添加它们,它们必须固定在它们的位置一次,但是通过添加新获得的元素可以参与其中再次排序。 例如:我们添加两个最小元素0和1,0 + 1 = 1,因此“1”是通过加法获得的结果,现在这个“1”必须位于data [] .freq中,这样仍然应该有增加的顺序。 所以: data[i].freq = 0 1 1(added here) 2 3 4 5 现在我们必须再次找到最少两个节点(请再次阅读评论(2)以便了解。)我们不能再添加0 abnd 1,因为他们已经参与了添加。 所以这次我们将添加1和2(这个是在索引3,请不要与索引2处的那个混淆)。 所以我们得到1 + 2 = 3 0 1 1 2 3 […]

C中的定点FIR滤波器?

有一种FIR滤波器的算法,但它的浮点: C编程中的FIR滤波器实现 如果我想要一个具有此规范的定点算法,我该怎么做? FIR滤波器通过标准输入和输出接收和发送Q7格式的8位定点数。 请记住以hex格式输出测量时间(滴答数)。 按照上一节中介绍的指导原则,您的程序应该调用getchar()来读取Q7值。 应该调用putchar()来写一个Q7值。 系数是 c0 = 0.0299c1 = 0.4701c2 = 0.4701c3 = 0.299 对于定点算法,我需要为固定点数实现自己的乘法,对吗? 我应该存储像结构一样的fixepdpoint数字 struct point { int integer; int fraction; }; 我应该使用轮class来实现编号,具体如何? 这个数字是32位,所以我可以写下面的变化吗? #define SHIFT_AMOUNT 16 // 2^16 = 65536 #define SHIFT_MASK ((1 << SHIFT_AMOUNT) – 1) 所以我认为我必须实现一个乘法算法,然后是FIR算法本身? 那是对的吗? 你能帮助我吗? 更新 我编译并运行了类似于anser的程序,但它给了我意想不到的输出。 #include #include “system.h” #define FBITS 16 /* […]

两指针方法

最近我在代码强制编程竞赛期间遇到了一个问题。 问题标签提到可以通过使用两个指针方法来解决问题。 究竟什么是两指针方法?

计算正实数的乘法逆

我想在不使用除法的情况下计算正实数的乘法逆。 在阅读了Newton Raphson方法的各个页面后,我实现了以下用于计算逆的代码: #define PRECISION 0.1e-5 double inverse(double num) { double ans = num; while (ans * num > 1 + PRECISION || ans * num < 1 – PRECISION) { ans = ans * (2 – num * ans); } return ans; } 现在,问题是,我实际上没有得到逆值。 循环无限循环。 所以,我注意到的第一件事是: ans的价值变为负数,我补充说 if (ans < 0) ans *= -1; […]

C语言中的AVL树

我目前正在做一个需要使用AVL树的项目,我为avl编写的插入函数似乎不起作用,它最多可用于3或4个节点; 我真的很感谢你的帮助尝试如下 Tree insert(Tree t,char name[80],int num) { if(t==NULL) { t = (Tree)malloc(sizeof(struct node)); if(t! = NULL) { strcpy(t->name,name); t->num = num; t->left = NULL; t->right = NULL; t->height = 0; } } else if(strcmp(name,t->name)left = insert(t->left,name,num); if((height(t->left)-height(t->right))==2) if(strcmp(name,t->left->name)name)>0) { t->right = insert(t->right,name,num); if((height(t->right)-height(t->left))==2) if(strcmp(name,t->right->name)>0) t = s_rotate_right(t); else t = d_rotate_right(t); } t->height = […]

使用DFS查找迷宫中的所有路径

给定迷宫中的源和目标单元格,我想使用DFS找到迷宫的所有可能解决方案。 0表示我迷宫中的墙。 可视化迷宫 我已经成功编写了一个程序,但这只给了我一条路。 我已经想到了将它扩展到所有路径的所有可能性,但遗憾的是,即使经过数小时(确切地说是2天),我也无法找到解决方案。 我想为每个节点保留一个“访问过的”数组,这样当我回溯时,我不会对前一个节点执行相同的移动。 但是,这样做只会产生一个完全不同的路径(如果有的话),没有相同的节点。 我还想到了一些其他的方式,但即使这也提出了一些问题。 我也检查了类似的问题,但没有一个是针对我的背景。 有一个使用显式递归的解决方案。 但是,我想要的是使用堆栈并找到所有可能的路径。 可悲的是,我找不到任何可信的东西(至少以我能理解的方式)。 这是我的一条路径的代码。 编辑 :我现在已经实现了“正确的”DFS。 我还添加了一个堆栈来跟踪当前路径。 然后程序还会检查未探测的节点。 但是,它检查其他一些顺序,因此我仍然只能获得一条路径! #include #include #include typedef struct Point { int x,y; }Point; typedef struct stack { struct Point pt; struct stack* next; void push(int, int); Point pop(); }stack, stack_path; stack*front =NULL; stack_path*front_path =NULL; void push(int x, int y) { […]