相关疑难解决方法(0)

打印背包中的麻袋

假设你是一个小偷,你入侵了一所房子.你在里面找到了以下物品:

一个重3磅的花瓶,价值50美元.
一块重6磅的银块,价值30美元.
一幅重4磅,价值40美元的画作.
重量为5磅,价值10美元的镜子.

这个尺寸为10磅的背包问题的解决方案是90美元.

由动态编程制成的表格是: -

在此输入图像描述

现在我想知道我使用这张表放入麻袋的哪些元素然后如何回溯?

algorithm knapsack-problem dynamic-programming

10
推荐指数
1
解决办法
8006
查看次数

查找字符串句子的组合 - 频率表与目标频率表的组合

该问题将在下面的文章中进行解释。

\n

我有一个句子列表,例如 1000 个句子的列表。

\n

我想找到一个句子组合来匹配/“匹配最接近”某个频率表:

\n

[a:100,b:80,c:90,d:150,e:100,f:100,g:47,h:10 ..... z:900]

\n

我考虑过使用像 in\n这样的组合从句子列表中找到所有可能的组合(所以将comb(1000, 1);改为comb(1000, 1000);),然后将每个组合与频率表进行比较,这样距离是最小值。因此,将可能组合中的所有频率表相加,并将该总和与目标进行比较,应记录与目标差异最小的组合。可能有多种最接近的组合。

\n

问题是所有组合的计算需要很长时间才能完成,显然需要几天的时间。是否有一种已知的算法可以有效地解决这个问题?最好最多几分钟?

\n

输入句子:

\n
\n

停车场里的房车比露营地里的房车还要多。

\n
\n
\n

她尽力帮助他。\n曾经有几天我希望与我的身体分离,但今天不是这样的日子之一。

\n
\n
\n

漩涡棒棒糖与冰糖有问题。

\n
\n
\n

两人沿着狭缝峡谷走下去,没有注意到远处的雷声。

\n
\n
\n

州际公路两旁种植着数英亩的杏树,与疯狂的驾驶狂相得益彰。

\n
\n
\n

他不是詹姆斯·邦德;他不是詹姆斯·邦德。他的名字叫罗杰摩尔。

\n
\n
\n

风滚草拒绝翻滚,但却非常愿意跳跃。

\n
\n
\n

她很反感他无法区分柠檬水和柠檬水。

\n
\n
\n

他不想去看牙医,但他还是去了。

\n
\n

查找与以下频率表最接近的句子组合:

\n

[a:5、b:5、c:5、d:5、e:5、f:5、g:5、h:5 ..... z:5]

\n

例子:

\n

第六句频数表

\n
\n

他不是詹姆斯·邦德;他不是詹姆斯·邦德。他的名字叫罗杰摩尔。

\n
\n

是 [a:2、e:5、g:1、h:1、i:3、j:1、m:3、n:3、o:5、r:3、s:4]

\n

频数表上下相等,排除特殊字符。

\n

c++ string algorithm computer-science data-structures

8
推荐指数
1
解决办法
755
查看次数

如果我的资金有限,我如何在DAG中找到最便宜的方式?

所以,如果我有一个定向非循环图,其中每个边的成本为0或大于0,如果它大于0它将具有负重量(所以你可以用它5美元它将缩短你的方式例如-20).

我知道我们可以在DAG中轻松找到最短/最便宜的方式,但如果我们的资金有限呢?

想象一下下一个情况:

DAG

我们有8个钱.算法会找到最短路径-10 + -3 = -13,但它会花费12但我们只有8个钱,所以它不是一个选项.理想的路径是-10 + 0,只需7美元.有没有一种算法可以用来解决这个问题?

c c++ algorithm graph directed-acyclic-graphs

4
推荐指数
1
解决办法
413
查看次数

找到在工人之间分配不同工作任务的最有效方法的算法

假设我有一组需要完成的任务。我有两个相同的工作人员来处理它们,并且(为了简单起见)让我们假设我对任务的复杂性有完整的信息:没有我不知道的任务,并且我确切地知道每个任务将花费多长时间采取来完成。(但不同的任务需要不同的时间。)每个工人一次只能处理一项任务,并且一旦开始,就必须继续处理该任务,直到任务完成。任务之间没有依赖性,因此必须先完成一项任务,然后才能处理另一项任务。

考虑到这些限制,是否有任何已知的最佳算法可以在两个工作人员之间分配工作,以便最小化完成所有任务的总时间?显而易见的、天真的解决方案是,每次工作人员空闲时,总是为其分配最长(或最短)的剩余任务,但是有没有更有效的方法呢?

algorithm concurrency

4
推荐指数
1
解决办法
775
查看次数

取最好的一组数字求和的算法

我试图找到算法来将表格/列表中的少量资金加起来等于或可能最接近(但不大于)ceratin 数。

让我通过例子来解释它。我有一个数字列表:
{ 1.23 ; 3.45 ; 20.11 ; 100.13 ; 200.08 }

我想得到的数字是 123.69

所以应该采取 { 3.45 ; 20.11 ; 100.13 } = 123.69

如果数量是122它不应该采取相同的,但{ 20.11 ; 100.13 ; 1.23 } = 121.47

有什么想法如何写这样的东西吗?

algorithm numbers sum

3
推荐指数
1
解决办法
1868
查看次数

找到数字的最短平方和

查找并输出给定​​数字的最短平方和.

例: 12 = 2^2 + 2^2 + 2^2 (not 3^2 + 1^2 + 1^2 + 1^2)

输出: {2 2 2}

algorithm math

-1
推荐指数
1
解决办法
918
查看次数