algorithm相关内容

对JS数组进行概率置乱

假设我有一个这样的数组: const alphabet = ['a', 'b', 'c', 'd']; 这代表4名政治候选人和一张等级选择票,其中候选人a是第一选择,b是第二选择,依此类推。 我希望将其随机排列成一组顺序,但在本例中,我希望a以可能60%的概率出现在第一位,b以20%的概率出现在第二位,c以10%的概率出现在第三位,所有其他顺序可能以10%的概率出现。是否有一些loDa ..
发布时间:2022-08-04 15:02:50 前端开发

仅使用A乘以2的最小步数,或将A除以2或将A加1以从A数变为B数

给定两个数字A和B,将数字A转换为数字B的最少步骤是多少? 当且仅当A为偶数时,步骤可以是A *= 2、A++或A /= 2。 实现这一目标的最有效算法是什么? 假设A和B可以是非常大的数字。 推荐答案 这是我用C#完成的摘录。 var a = 2; var b = 15; var found = new HashSet() { a }; var operat ..
发布时间:2022-08-02 18:03:28 其他开发

时间复杂性和运行时间有什么不同?

时间复杂性和运行时间的区别是什么?它们是相同的吗? 推荐答案 运行时间是程序运行所需的时间。时间复杂性是对输入大小趋于无穷大时运行时间的渐近行为的描述。 您可以说运行时间“是”O(n^2)或其他任何东西,因为这是描述复杂类和大O符号的惯用方式。事实上,运行时间不是一个复杂的类,它要么是一个持续时间,要么是一个给你持续时间的函数。“为O(n^2)”是该函数的一个数学性质,而不是它的 ..
发布时间:2022-08-02 17:41:45 其他开发

从Python中长度为n的列表中获取n*k个唯一的2集合

我有以下的Python智囊团:我们安排了一个为期30天的计划,有48名参与者。在这个项目中,每一天的参与者都是成对的。参与者不能有两次相同的合作伙伴,所有参与者都必须每天配对。附言:我希望我的数学题是对的。 我已经完成了一个实现,但感觉非常笨重。有没有一种有效的方法来做到这一点?也许是在使用笛卡尔的乘积?非常感谢所有反馈和提示。 # list of people: 48 # list ..
发布时间:2022-07-25 12:45:03 Python

如何实现中间元素为轴心的快速排序?

有许多不同版本的快速排序以不同的方式选择透视表。 始终选择第一个元素或最后一个元素作为轴心 选择一个随机元素作为枢轴。 选择中位数作为枢轴。 我已经使用 the last element as the pivot实现了所有功能,但当我尝试对中间元素实现相同的逻辑时,它不能正常运行。 以下是我的python代码: import random import time sta ..
发布时间:2022-07-20 17:20:00 Python

用R编写自己的KMeans算法

我正在尝试用R编写我自己的第一个KMeans算法。我在这个领域是新手,所以请不要因为我看不到明显的东西而评判我。 在当前状态下,该算法取两个向量x,y,计算每个数据点到簇中心的距离,并分配从其中心到数据点距离最小的簇。当分配没有变化,因此聚类中心没有变化时,算法停止。 # Sample data set.seed(100) xval ..
发布时间:2022-07-20 17:03:31 AI人工智能

求任意图的最大权独立集的启发式算法

MWIS(最大权重独立集)是一个NP-完全问题,因此如果P!=NP,我们无法在足够好的时间复杂度内找到解决方案。 我正在寻找一种算法,可以在一个良好的时间复杂性内在任意图形中找到MWIS的近似值。我当前正在处理一个具有128个节点和3051条边的连通图。 我找到了this paper,但它似乎只适用于具有唯一MWIS的二部图。 如果有人能帮我一些参考,或者更好的工作算法的伪代码, ..

在最多包含两条红边的图中寻找最短路径

问题是: 我知道我们应该将图形复制到G1和G2中,并可能使用Dijstra算法。我不确定我应该如何将G1和G2联系起来,这样我才能获得此问题的正确解决方案。 推荐答案 您几乎得到了答案: 再复制两份图表,这样就有了G、G1和G2。 删除G2中的红色边,将G1中的每条红色边更改为指向G2中的对应顶点,而不是G1,并将G中的每条红色边更改为指向G1中的相应顶点。 现在,每条 ..
发布时间:2022-07-16 22:11:13 其他开发

求和等于k的子集的个数

谁能给我解释一下动态算法,它找出了sum等于k的子集的数目。 我在谷歌上搜索,但找不到任何简单的解释!对不起,我的英语很差! 代码如下: int numbers[MAX]; int GetmNumberOfSubsets() { int dp[MAX]; dp[0] = 1; int currentSum = 0; f ..
发布时间:2022-07-04 11:36:00 C/C++开发

有没有什么算法可以解决每个字符具有不同权重的最长公共子序列问题?

我正在寻找一种算法来解决具有以下条件的两个字符串的LCS问题: 每个字符串都由英文字符组成,每个字符都有一个权重。例如: 序列1(S1):带权重的ABBCD[1,2,4,1,3] 序列2(S2):“tbdc”,权重为[7,5,1,2] 假设MW(s, S)被定义为字符串S中的子序列s相对于相关权重的最大权重。最重的公共子序列(HCS)定义为: hcs=argmin(mw( ..
发布时间:2022-07-04 11:32:16 其他开发

嵌套的for循环总是O(n^2)吗?

我正在努力想出这段代码的复杂性(这不是一个家庭作业问题,我只是试图理解这个概念): public static boolean boxesHaveItem(List boxes, Item object) { for (Box box : boxes) { for (Item item : box.getItems()) { if ( ..
发布时间:2022-07-01 09:00:42 其他开发

无信息迷宫出口的优化算法

我必须确定一种让机器人走出迷宫的方法。问题是,迷宫的布局未知,出口位置也未知。机器人还会从迷宫中一个未知的位置开始。 我找到了3个解决方案,但我很难知道我应该使用哪一个,因为最终似乎这些解决方案都是纯粹随机的。 我有三个解决方案: 1)基本的“人”策略(?),你把手放在墙上,如果需要的话,穿过所有的迷宫。我还保留了一个变量“Turn Counter”,以避免机器人循环的情况。 2)深度优先搜索 ..

查找列表中的第二大元素(对于重复元素)

我正在尝试查找数组中的第二大元素。我的代码对大多数输入都有效,但对于某些输入,它却失败了。 另外,如果我输入[6, 6, 6, 5],程序应该输出5作为第二大数,而不是6。 对于[6,6,6,6,6,6,6,6,6,5],打印的是6而不是5。 对于重复的元素,它会给出错误的结果。 # Given the participants' score sheet for your Univer ..
发布时间:2022-06-27 11:00:45 Python

计算嵌套循环的大O

我在计算以下代码的大O时遇到问题。我从来都不是最聪明的饼干。 有谁能解释一下吗。由于嵌套循环,我在这里的猜测是O(N^2),但我知道还有更多原因。 static inline int f1 (int a, int b) { for (int c = 0; c ..
发布时间:2022-06-26 19:45:49 C/C++开发

路径压缩和按等级合并如何相辅相成?

我一直在读有关工会发现问题的文章。两个主要的改进是路径压缩和按等级合并。据我所知,按等级合并是用来确定如何组合不相交的树的。如果我们有两棵不相交的树T1和T2,那么我们将排名较小的树的根附加到排名较高的树上。如果我们不使用路径压缩,那么排名就是树的深度。这是有意义的,因为我们不想增加Out树的深度,因为它直接影响Find和UNION。 我的问题是当我们也使用路径压缩时。我一直读到这两个优化是 ..
发布时间:2022-06-23 18:26:37 其他开发

如何在每个数组只能包含1、2、4、8、16或32项的情况下增量构建数组树?

在较高级别上,我要做的是构建一个树形数组和结构,与tree array structure in this answer中的完全相同,但有一个额外的限制:每个数组的长度只能是1、2、4、8、16或32个项目/数组。 从外部看,它的行为类似于一个数组(具有所有常规的数组方法),但它是由树构造的。增加了树中的每个节点只能有1、2、4、8、16或32个节点(2的幂)的约束。这些节点可以是内部(容器 ..
发布时间:2022-06-23 18:20:37 前端开发