Algorithm 修改二进制序列

我正在解决一个问题,结果被卡住了。它表示-我们有一个0和1的二进制序列。我们可以对序列执行此操作任意次数:对于任何位d(0),如果存在1(如果最初存在1),并且在修改前两位中的至少一位(即位d)后不执行此操作−1和d−2,并且在以下两位中的至少一位,即位d+1和d+2,我们可以将其更改为1。 但是,不可能修改前两位和后两位 序列权重是序列中1的总数除以序列长度。我们需要使这个权重至少为0.75,目标是找到需要修改的最小位数,以便使序列的权重至少为0.75 如果我们不能使重量至少为0.75打印-1

Algorithm 资源优化配置算法

下面是问题的描述 考虑到一些房间的可用时间为一周,容量为a型房间6人,B型房间10人 考虑到一系列的人想在这段时间内在其中一个房间睡上几个晚上,g爱丽丝想在周一和周三晚上睡一觉,鲍勃想在周二和周三晚上睡一觉 这些人之间存在一些限制。爱丽丝不想和鲍勃住在一个房间里 你如何确定这些房间能容纳这么多人 如果有的话。展示布置 如果没有。显示这些房间可以容纳的人数的最大值,并显示布局 是否会有一个通用算法来处理这种资源安排问题 如果有更多的限制怎么办 比如说。如果人们想在没有空隙的情况下占据一个静止的位置

Algorithm 文本中拼写错误名称的识别算法

我需要开发一个应用程序,将索引几个文本,我需要在这些文本中搜索人们的名字。问题是,虽然一个人的正确名字是“Gregory Jackson Junior”,但在文本中,这个名字可能会写为: -小格雷格·杰克逊 -小盖戈里·杰克逊 -格雷戈里·杰克逊 -小格雷戈里 我计划每晚对文本进行索引,并建立数据库索引以加快搜索速度。我想推荐关于这个主题的好书和/或好文章。 谢谢检查这些相关问题 你的问题措辞不正确。这些例子并不表示拼写错误,而是表示写全名的形式发生了变化 以及 您的搜索是否希望与示例中的son

Algorithm 排序双链表的搜索算法

作为一个学习练习,我刚刚尝试实现我自己的“合并排序”算法。我在一个std::list上做了这项工作,它显然已经内置了sort和merge函数。然而,我正计划把它转移到我自己制作的一个链表上,所以实现并不特别重要 问题在于,std::list没有访问随机节点的功能,只能访问前/后和单步执行。我原本打算在这个列表中执行一个简单的二进制搜索,然后通过几个步骤找到我的答案 std::list中已经有内置函数来执行这些排序,这一事实让我相信,有一种同样简单的方法可以以我想要的方式访问列表 无论如何,提前谢

Algorithm 兑换(面额)计算器

我正在寻找一种计算零钱面额的方法。 我的问题分为50分和20分 因此,如果数量为130,则应为1x50+4x20, 和数量:80,应该有0x50+4x20等 我曾试图查找硬币问题,但无法得到一个像样的答案,当面额上有两种以上的类型时,硬币问题似乎有一堵砖墙(从我所读到的内容来看) 有什么完整的解决办法吗?或者最好是两种以上面额类型的解决方案 我还希望能够提供每种可用面额的货币 如果你能用pseedo代码求解,那么你就可以继续减去你能减去的最大面额。如果你只有两种面额,那么问题就变成了: find

Algorithm 减少选择中的平均比较次数

这里的问题是减少选择排序中所需的平均比较次数 我正在读一篇关于这方面的文章,下面是一段文字: 更一般地,从n中选择S元素的样本S 元素。让delta是一些数字,我们稍后会选择它 以尽量减少用户使用的平均比较次数 程序我们发现v1=k*s/n-deltath和v2=k**s/n+delta S'中的最小元素。几乎可以肯定,第k个最小的 S中的元素将落在v1和v2之间,因此我们只剩下一个 2*delta元素的选择问题。在低概率情况下 第k个最小元素不在此范围内,我们有 大量的工作要做。但是,有了s和

Algorithm 要使用哪种算法来查找组件之间的依赖关系?

在构建脚本中,我们将应用程序拆分为组件 情况是这样的 任何组件都可能依赖于一个或多个组件 例如,我们有组件1到组件12 组件1依赖于组件2和组件3 组件4依赖于组件2和组件6 如果我在脚本中指定使用依赖项构建component1和component4,那么应该按照以下顺序构建Component2、component3、component1、component6和component4 哪种算法有助于更好地找到依赖关系并确保不需要执行两次组件。只需使用广度优先遍历遍历图,并将每个新节点附加到列表中即

Algorithm 如何执行最小拆分以满足特殊集合排序?

我正在尝试创建一个算法来解决以下问题: 输入是一个未排序的集合列表,包含键对和int值。每对中的第一个在集合中是正的和唯一的。 我想找到一个分割输入集的算法,这样就可以对这些集进行排序,这样每个键的值都不会以集的顺序递减 有一个简单的解决方案,就是将集合拆分为每个单独的值并对它们进行排序,我希望在拆分的集合数量方面更有效 您是否遇到过类似的问题和/或您可以建议的技术? 在多项式时间内,最优最小分裂数解决方案听起来可能吗 编辑:在示例中* 我建议使用以找到最佳解决方案。从左到右递增地构建分割集的

Algorithm 箱子包装解决方案:这是怎么回事?

我已经尝试实现了一个解决方案,主要是以这种方式。我不做Haskell,所以我用C++编写了一些东西。 对于小于某个数字36的墙宽度,我的程序和Haskell程序给出了相同的结果。对于任何36个单位宽或更宽的墙,我的结果要低得多。我怀疑我的解决方案是否正确,因为另一张海报在这里很有代表性。我认为问题在于我的位矩阵中填充的1的数量比应该的要少得多 #include <vector> #include <iostream> #include <algorithm>

Algorithm 自动获取术语列表、导入Windows搜索功能(内容)和导出结果列表。(自动转换?)

我的下一个大挑战是编写一个脚本,我认为它应该在AutoIT中,而我在自动化Windows搜索功能方面几乎没有经验 最终目标是从.txt文件中获取一个搜索词列表,每行一个字符串,然后在计算机上的每个文档中一次搜索一个搜索词 我可以手动实现这一点-打开“按内容搜索”功能,为所有连接的驱动器上的所有文件编制索引,逐个搜索术语,然后突出显示“全部”>“shift单击”>“复制为路径”>“粘贴到记事本”,并另存为[searchterm].txt 然而,我需要自动化整个过程。我知道我可能需要为XP、Vist

Algorithm 一个玩家可以连续移动多次的极小极大树

在使用Minimax和Alpha-Beta Prining进行回合制游戏后,如果满足某些条件,同一玩家可以有多个连续动作,如何处理这些游戏?如果玩家A调用Minimax,则: 在球员A第一轮跑步时:最大化 在球员A第二轮跑步时:再次最大化 这依赖于从A的角度对董事会进行的客观评估。因此,无论轮到哪个州,objectivestate都是参考A从该州获得的收益 您将需要一种方法来确定给定的状态X,是否在父状态下进行了一个回合,以便玩家Z的当前回合是一行中的第二个回合。不过,您也可以简单地评估轮到谁,

Algorithm NP完全与NP难

我必须检查我的逻辑是否正确 NP-HARD:这些是最难的问题,可能/可能不属于NP类。如果你对这些问题有一个有效的算法,那么NP类中的每个问题都有一个算法 NP完全:这些是NP类中最难的问题,如果你解决其中一个问题,你就可以解决NP类中的任何问题。因此,NP完全问题是一个NP-难问题 库克定理:如果SATNP-HARD有一个多项式时间算法,那么NP类中的每个问题都有多项式时间算法 现在,假设我们必须证明CDPclique决策问题是NP完全的 ->步骤1:证明CDP属于NP类。 它属于NP类,因为

Algorithm Nim类游戏的策略

最近我遇到了一个有趣的问题。有几堆石头。两个玩家轮流从一堆随机的石头中捡起一块石头。如果玩家移动后只剩下一堆,他就赢了游戏。这里有一个例子。假设有3个桩 (1 3 3) -> A picks 1 from the first pile (3 3) -> B picks 1 from either pile (2 3) -> A picks (2 2) -> B picks (1 2) -> A picks (2) -> A wins

Algorithm 帕斯卡三角形深对角线的计算算法

给定帕斯卡三角形的深对角线: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1st diagonal: 1 1 1 1 1 ... 2nd diagonal: 1 2 3 4 5 ... 3rd diagonal: 1 3 6 10 15 ... 4th diagonal: 1 4 10 20 35 ... 是否有一种算法可以从任何

Algorithm 菱形平方算法,平滑

我最近开始使用菱形正方形算法,虽然我看过很多例子,但我仍然有一个问题,就是噪音看起来像方形的,不像我希望的那个样平滑。我将它们与柏林噪声产生的噪声进行比较 以下是具有灰度图像的当前代码: 这就是我想要的结果: 我必须说我理解这个过程,但在我的例子中,代码来自我在互联网上找到的一个教程 你知道怎么回事吗?如果你不想要方形图案,就不要使用菱形方形算法。方形图案是一种颜色,您可能没有做错什么。如果你想要一个平滑的模式,那么你应该使用其他的生成器,比如Perlin。你能把相关的代码放在问题本身,以及一个

Algorithm 最快的固定长度6整数数组排序

在回答另一个堆栈溢出问题时,我偶然发现了一个有趣的子问题。对6个整数数组进行排序的最快方法是什么 由于问题的层次很低: 我们不能假设库是可用的,调用本身也有成本,只有普通的C 为了避免清空成本非常高的指令管道,我们应该尽可能减少分支、跳转和其他类型的控制流中断,比如隐藏在&&或| |中的序列点后面的那些。 空间受限,最小化寄存器和内存使用是一个问题,理想情况下就地排序可能是最好的。 实际上,这个问题是一种高尔夫,目标不是最小化源代码长度,而是最小化执行时间。我称之为“Zening”代码,正如作者

Algorithm 二叉树高度的不同解释

我正在研究数据结构和算法,这件事让我很困惑 二叉树的高度,因为它也用于AVL搜索树 根据Lipschutz的《我在关注数据结构》一书,它说树的深度或高度T是T分支中的最大节点数。这比T的最大层数多1个。图7.1中的树7具有深度5 图7.1: A / \ / \ / \ / \ B C / \

Algorithm 编辑距离算法的变体,仅跟踪替换和插入

有人知道编辑距离算法只计算替换和插入吗。因此,基本上,它将是不删除的Levenshtein距离算法 您可以使用与计算正常Levenshtein距离几乎相同的动态规划解决方案,但没有对应于删除的转换。假设您的Levenshtein距离算法如下所示: For each i= 1...M For each j = 1...N //min(deletion, insertion, match/substitution) D(i,j) = min(D(i-1,j)

Algorithm 算法是伪代码的第一年吗

我面临着这样一个问题: 编写允许用户重复输入正数的伪代码 整数,直到输入奇数为止。然后它会打印出总数 输入的所有数字中,不包括奇数 示例:如果用户输入22416887,程序将打印50 我想得到一些关于这个问题我的算法的反馈 1. Start 2. Declare int number,n,sum=0 3. Do 4. Input number 5. Read number 6. n=number%2 7. If (n==0) then sum+=number 8. while (n==0) 9.

Algorithm 交叉销售的算法-像亚马逊的人谁买了这个

这是新的,而且我已经做了很长时间的任何编程或论坛。。。。 然而,这真的让我很恼火 我一直在关注亚马逊等公司的算法,以及他们对产品的推荐,这些产品与人们选择的产品有着密切的关系——显然,这非常有效 我想知道的是 A-为什么仅限于亲和力?难道从来没有一种情况下,一个产品会被原始选择排除在外,也许一个平行但不相似的产品可能有意义吗 为什么神经网络没有意义?这可能不能很好地提供一个好的链接,或者您最终会得到一些权重非常低的产品,从而使他们无法选择 谢谢你的意见 詹姆斯问题A:你不需要把它局限于亲和力。但

Algorithm 如何从用户的联系人中找到“可能的朋友”

假设我有一些用户的联系人,比如手机中的联系人。在联系人中,用户会有他们朋友的联系人信息,比如电话号码。不算大,我们可以假设它小于1000 如果在A的联系人中,A有B的联系信息,我们说A和B是朋友,虽然B没有A 现在,我们考虑如果USER1和USER2有两个以上的普通朋友UsR3和UsR4或者更多,我们可以说USER1和USER2是可能的,Fuxsif USE1和USER2不是朋友。 我们有n个用户的联系人。如何找到所有这些用户可能的朋友 谢谢大家! 如何:获取UserA和UserB之间可能的路径

Algorithm 计算最有效分组的算法

我手头有一个很奇怪的问题 我有一份500条不同尺寸木梁长度的清单,如3400毫米、1245毫米、900毫米等。 木梁的最大长度为5400mm,为了减少木材的浪费量,我想找到一种算法,尽一切可能将较小尺寸的木梁组合成5400mm的木梁或尽可能靠近木梁 假设我有五种不同的长度:3000,1000,300,2000,900,我最终会得到: 3000+2000+300=5300//最接近5400的组合,这意味着在这根梁上浪费的木材量只有100毫米 1000+900=1900//其余 我不确定这是否符合旅

Algorithm 用于无同级获取完整路径的递归函数

我有一个类似的输入: var query = {"a":{"b":{"branchs":[{"$or":{"d":10}},{"$or":{"e":10}}],"f":22}}}; 我需要一个输出: output[0] = {"a":{"b":{"$or":{"d":10},"f":22}}} output[1] = {"a":{"b":{"$or":{"e":10},"f":22}}} 我需要在分支键中拆分和复制数组。这个对象是多维的,它可以嵌套N个分支键,所以我认为它应该是一个递归函

Algorithm 动态规划(最大和)

给定一个由n个实数组成的序列A1。。。确定一个连续的子序列Ai。。。子序列中元素之和最大化的Aj 解决办法是: M(j) = max sum over all windows ending in j M(j) = max{M(j-1) +A[j], A[j]} 有人能解释一下这是如何为以下子序列工作的吗 1, 5, -10, 5. 因为在前5和-10之间,递归选择-4mj-1+a[j]或-10mj-1+a[j]之和。但是,最好的总数是6 那么,这种重复性不应该是: M(j) = max{M(

Algorithm mandelbrot集的光滑着色算法

我知道关于这件事,阿雷迪回答了很多问题。然而,我的略有不同。无论何时我们实现平滑着色算法,我都理解它 mu = 1 + n + math.log2(math.log2(z)) / math.log2(2) 其中n是逃逸迭代,2是z的幂,如果我没有弄错,z是该逃逸迭代处复数的模。然后,我们在颜色之间的线性插值中使用这个重整化的逃逸值来生成平滑的带状mandelbrot集。我已经看到了关于这个的其他问题的答案,我们通过HSB到RGB的转换来运行这个值,但是我仍然无法理解这将如何提供平滑的颜色渐变

Algorithm 旅行商的交叉算法?

我正在寻找一个交叉算法的遗传算法的旅行商问题 但是,我的TSP问题是传统问题的一个变体: 我们得到的不是一份我们需要访问的点列表,而是一份我们需要访问的点列表,以及一份我们需要开始和结束的点列表。换句话说,任何路线都必须从属于第二个列表的任何点开始和结束,但必须访问第一个列表中的所有点 换句话说,不是每个点的排列都是有效的。正因为如此,我不确定传统的交叉算法是否能很好地工作。例如,我尝试了有序交叉,它创建的孩子通常比它的父母更糟糕 有人能推荐一种交叉算法吗?为了维护交叉和变异操作符,您可以添加一

Algorithm 如何找到可以包含一组项目的最小包?

如何推广3D单箱装箱算法,以找到能够包含项目集的最小箱尺寸 我在看一个分枝定界算法,有没有一个条件让我切一个分枝而不是当前的最佳解 我希望说得够清楚,谢谢你的帮助

Algorithm 当我们对二叉堆树说抽象类型时,它是什么意思?

我读过一个术语“抽象类型”,意思是你可以使用结构或骨架。我说的是二进制堆树。我读到它是一种抽象类型,但当问题出现时,合并两个最小堆来创建一个最大堆的时间复杂度是多少? 我得到了一些答案,说将树的元素复制到数组中,并使用buildheap方法n创建max heap in time!但是,当不能作为抽象类型遍历树时,如何在const time/或On time中复制min heap的元素呢。剩下的唯一一件事就是逐个删除所有元素,并将其保留在数组中,这只需要很长时间。 谁能花点时间让我理解这个疑问 谢

Algorithm 如何使单词处于大写的偶数位置?

这是我的eiffel程序,它基本上是删除给定文本文件中的多余空格,以遵循常规的expresson:a+SA+*EOL,其中文件中的每一行必须以字母开头,字母之间只能有一个空格 我的问题是,在这个程序的基础上,我如何扩展它,使每个单词都成为大写?i、 e.第二、第四、第六等 feature {NONE} -- Main routine copy_file -- Copy a file character by character from input to output require

Algorithm 在算法书中理解小写和大写N有困难吗? 教科书:考虑n个项的序列S,其键是范围[0,n中的整数]。− 1] ,对于某些整数N≥ 2,并假设S应根据项目的键进行排序。在这种情况下,可以按On+N时间对S进行排序。 为什么从范围中减去1?这是否与在[0,N-1]中写入包含0,N的值相同,N-1表示键。因为从0开始到N结束的这些键的总计数是N+1,所以我们减去1以保持计数为N

对于第二个问题,括号表示排除。方括号表示包含。因此,如果你说0,N,那么你排除了0和N,这与[0,N-1]不同。否。与[0,N,实数相同。但对于整数,它是[0,N-1]那么N与N相同吗?N是物品的总数。N与N没有关系。你可以用0,2,4,….2N-2而不是0,1,2…N-1来创建这些N个物品。如果N与N没有关系,那你为什么要减1。假设有5个键。N等于4,N等于5,对吗?那么N-1等于3?@DanielKobe:这个关系被隐含地理解为N和N,你想要匹配计数。但它就到此为止。哦,为什么还要麻烦N&N

Algorithm 掌握方法并不能解决所有问题

我们怎样才能解决大师方法无法解决的问题 有什么方法或者我们应该把它留下吗?主定理只是另一种更麻烦方法的简写:手动近似结果,即考虑递归树的大小以及每个节点花费多少时间并检查结果。还有更一般的方法 当然,它有优势,但也不应被视为“魔弹”

Algorithm 二项式堆结构不允许使用指向节点(或迭代器)的指针

我一直在玩二项式堆,我遇到了一个我想在这里讨论的问题,因为我认为这可能与实现二项式堆数据结构的用户有关 我的目标是让指向节点或句柄的指针直接指向二项式堆内部节点,当我将它们插入二项式堆时,这些节点又包含我的优先级值,通常是一个整数。 通过这种方式,我将指针/句柄保留到插入的内容,如果是这样,我可以直接使用二项式\u heap\u delete\u nodenode删除该值,就像迭代器一样 正如我们将看到的,对于二项式堆,这是不可能的,这是因为这种数据结构的体系结构 二项式堆的主要问题是,在某个时

Algorithm 如何处理经常生成的消息?

我有以下系统: producer ---> proxy ---> consumer <good> 10 msg/s 如何实现该算法?好的,我根据OP的意见调整了解决方案。该算法使用两个全局变量nrMessage和startTime,每当nrMessage==0时,即当它收到第一条消息时,它将startTime初始化为当前时间;对于1秒内到达的前10个时间戳,它返回true。一旦收到超过1秒的时间戳,它将重置nrMessages=0,以便在下一个时间戳到

Algorithm 从左到右枚举无限树的递归

我有一棵树,由 type LazyTree<'T> = | LazyBranch of 'T * ('T LazyTree list Lazy) 分配这样的数字是不可能的,因为它需要对无限树进行非惰性遍历。 您需要的是广度优先遍历,如以下伪代码所示: let traverse (node:LazyTree<'T>) = let q = System.Collections.Generic.Queue() q.Enqueue node

Algorithm 什么是死锁避免?有哪些示例?

什么是死锁避免?目标是什么,它应该实现什么?你能举一些不同类型的死锁避免算法的例子吗?为什么会有不同的算法?为什么没有一种类型的死锁避免算法?当有一个进程或其他事情的循环,使得该循环的每个元素都在等待该循环的下一个元素时,就会发生死锁。由于循环结束,因此循环中的任何元素都无法继续。见例 避免死锁相当于确保这样的循环永远不会存在。想法包括只拥有一个任何人都会等待的对象,强制执行一条规则,即进程从不等待任何东西,同时保留任何其他人曾经等待过的任何东西,或者最常见的做法是对进程等待的东西强加一个顺序,

Algorithm 重新构造O(n^2)中省略的空白字符串

我想检查我的算法是否正确 给定一个n个字符的字符串,其中所有空格都被省略 Ex: "itwasthebestoftimes" 给出一个动态规划算法,该算法确定字符串是否可以分解为有效的单词序列,并在On2中用空格重新构造有效字符串 我的想法是: 首先在2上找到字符串的所有子字符串,并为每个子字符串映射其在空间中的位置和作为间隔的长度 Ex: "it was the best" [] [-] [-] [--] [---] [] [] 添

Algorithm 改进OpenGL中的绘图对象(目前速度非常慢)

简介: 我有一个类似.obj格式的文件,长话短说意味着: 我有一个数组,里面充满了潜在顶点的坐标 一个包含三个索引的数组(对应于坐标数组) 索引定义了一个三角形,因此整个数组将定义形状 我的方法: 为每个面创建9个浮动的数组,其中包含每个顶点的坐标 对于每个面,我都会运行以下(简化)代码: 问题是,当我接触到有很多面孔的大文件时,速度非常慢。。。例如,5000张脸的形状每帧大约需要5秒 我正在考虑将文件转换为一个大网格,然后绘制它,但我不知道如何解决这样的问题,我也不知道这是否能解决我

Algorithm 基于动态规划的游乐场游乐设施调度

您到达瓦尔多世界游乐园,离公园关闭还有T分钟。公园有n个游乐设施,您的目标是在公园关闭前完成尽可能多的游乐设施。(对于这个问题,乘坐同一辆车两次算作两次乘坐。)您将得到一个表W,以便W(i,t)给出在时间t时乘坐i的等待时间。为方便起见,假设t表示为公园关闭前的分钟数。骑乘i本身需要ri分钟,所有时间都以整数分钟计量 我尝试用类似于01背包问题的方法来解决它。但是,表W(其中包含行驶i的等待时间)随时间t而变化。这到底是一个背包加活动选择的组合问题吗?这有什么意义吗?让f(t)代表在t时最可实现

Algorithm 感知器算法-调整

我在学院上数据挖掘课。我真的不明白这个问题。有人能帮我理解吗 重要性权重让您了解在采样时找到特定数据点的频率。您可以使用它来增加训练数据集。例如,如果只有两个数据点: (1, 1, 0.7) (0, 3, 0.3) 这相当于有一个如下形式的培训数据集: (1, 1) (1, 1) (1, 1) (1, 1) (1, 1) (1, 1) (1, 1) (0, 3) (0, 3) (0, 3)

Algorithm &引用;“超级丑陋的数字”;澄清

编写程序查找第n个超级丑陋的数字。 超级丑陋数是正数,其所有素数因子都在给定的k大小素数列表中。例如,[1,2,4,7,8,13,14,16,19,26,28,32]是给定大小为4的素数=[2,7,13,19]的前12个超级丑陋数字的序列。 我不明白这个问题。这就是我需要帮助/澄清的内容: 在上面的陈述中,为什么[1,2,4,7,8,13,14,16,19,26,28,32]是前12个超级丑陋的数字?这与给定的输入有什么关系 2 -> 2 4 -> 2 * 2 7 -> 7 8

Algorithm 01背包算法的改进

如果我们有可以多次拾取的物品,我们将如何处理01背包问题。例如,我们有5个项目的权重为6、5、4、2、1,它们各自的权重为6.59、6.49、6.39、6.29、6.16。现在允许增加的重量是10 不同的是,我们可以选择任何项目,任何时间,然后最大化的价值。我们如何处理这个问题。?任何建议或文章都非常感谢 我已经用遗传算法解决了0/1背包问题,这将介绍本主题,包括一个示例(用C++编写),让您开始学习 如果您想了解如何解决上述问题,可以尝试以下链接: 您可以使用其他技术来解决这个问题,但

Algorithm 如何获得无限循环算法的预期执行时间和最坏情况?

我对算法的预期执行时间和最坏情况下的执行时间有一个疑问,我认为这是一个简单的算法,但它包含一个无限循环,我不知道如何解释预期执行时间?。我总是可以用停止条件来确定到达算法的时间 这是我的例子(我只知道,超过n/2可以给出正确的答案): 这似乎取决于最终决定是否属实的可能性。 所以在这种情况下,决策需要n个步骤。 这意味着运行时是O(n), 现在我们假设决策为真的概率为50%,这意味着在平均值上,每个循环需要2n步(求和(prob^x*n),x=0..无穷大,prob=0.5)。 即使O随决策概率

Algorithm 用大数求大数的模

我有一个数字n和m。它们都非常大,超过了C++长的限制。如何准确地找到n mod m Naive n%m最多只能起到2^63-1的效果,在在线评委中得到9分 一次添加一位n并使用%m适用于小m,但速度非常慢,并且对于m=1的特殊情况,没有硬编码,它超过了这样小m的时间限制。在线评委会得到37分 那么,有没有一种计算n mod m的方法,将它们作为字符串给定 问题:假设m被限制为小于10!也就是3628800,你可以用一种简单的方法一次处理一个数字 如果n的数字是d[i],其中i从0到n-1,d[

Algorithm 在允许的权重范围内配对2个对象的算法?

我正在寻找一种方法,将两个具有一定重量的对象配对,以创建尽可能多的配对。示例:我有100个上述对象,都在1-100磅的范围内,并且允许配对时减去当前重量+-5磅。如何才能最有效地创建最多对。我有一个唯一的标识符和它们的权重,我将它们都与同一组进行比较。我研究了匈牙利语的一些算法,但不确定哪种算法可以应用于这个问题,以及如何应用,所以任何帮助都将非常感谢 按重量对对象进行排序。重复上述步骤,直到没有物体残留:如果最轻的两个物体在5磅以内,配对并移除它们。否则,请移除最轻的 这种贪婪算法可以证明是最

Algorithm 随机快速排序划分概率

我正在阅读,问题5.2说明: 设α为常数,与输入数组长度n无关, 严格介于0和1/2之间。如果有一个 随机选择的pivot元素,分区子例程生成 两个结果子问题的大小至少为 ⑩乘以原始数组的大小 答案如下: ɑ 1 - ɑ 1 - 2ɑ 2 - 2ɑ 我不知道如何回答这个问题。有什么想法吗?让数组中有N个元素。如果拾取的轴是数组中最小的[Nα]元素之一,则左侧分区的大小将小于Nα。类似地,如果拾取的轴是数组中最大的[Nα]元素之一,则右侧分区的大小将小于Nα 因此,您可以选择N-2*[Nα]元素,

Algorithm 堆排序的时间复杂性

我到处都读到heapsort的时间复杂性只是在最坏的情况下。但我们也到处看到,在Onlogn中构建堆是一种常见的误解。相反,您可以在上创建一个堆。因此,考虑到堆可以在On中生成,请查看下面的排序算法,并告诉我在分析其时间复杂性时的错误之处 将n个元素放入堆时间:On 直到堆为空,弹出每个元素并将其复制到数组中。时间:开。为什么?因为以相同的方式,所有元素都可以放在On中的堆中,所以所有元素也可以在On中提取。正当 总之,复杂性是开着的。但在这里,我们还需要一个额外的On内存 我知道传统的heap

Algorithm 网格中点与点之间距离的优化算法

在像素网格中,我希望计算从一个选定像素到所有其他像素的欧几里德距离 这也可以被认为是在二维网格坐标系中的一个点和所有其他点之间找到欧氏距离 现在,简单的解决方案是在网格上迭代,并使用毕达哥拉斯加法(两个平方和的平方根)计算每个像素和所选像素之间的距离: for (int y = 0, x; y < gridHeight; ++y) { for (x = 0; x < gridWidth; ++x) { dist[x][y] = sqrt((chosenPixe

Algorithm T(n)>=O(n^2)意味着T(n)应该大于集合O(n^)中的任何函数,或者仅仅大于集合中的一个成员就可以了

如果我们说算法A的运行时间至少在^2上或Tn>=在^2上,这是否意味着Tn应该大于^2上集合的任何成员,或者仅仅大于^2上集合的至少一个成员就足够了? 换句话说,它是否意味着对于^2上的任何成员fn,Tn>=fn,或者在^2上的集合中应该有一些函数fn,Tn>=fn?根据O的定义,否。假设算法A的复杂性为n^2/2。因此,A满足下限,但对于fn=n^2,对于n>1,fn>Tn 此外,对于^2上的Tn>=语句,等效的定义是Tn=\Omegan^2。根据O的定义,否。假设算法A的复杂度为n^2/2。

Algorithm 找到圆内的坐标以形成三角形

我有一个给定的问题:我在圆圈外有一个点,橙色的点在2,3,根据一个数学公式,我找到了圆圈内最接近橙色点的坐标,这是蓝色的点 我现在怎么画一个等边三角形,蓝点是三角形顶点之一,每边的长度是0.02个单位?蓝色点的坐标为3.50502525253169417、1.4949747468305832,圆的半径为0.7 要生成所需的三角形,我需要另外两个顶点坐标?如何找到它们 有人能帮我写下这个问题的伪代码吗? 等边三角形的高度是其边长的3/2倍。对距离b-a进行规格化,以获得同一方向上的单位向量。将其添

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 1075 页