【发布时间】:2018-03-06 17:04:02
【问题描述】:
我目前的查询结果如下
A、B、C、D、E = 项目
数字 = 重量
- A 15
- B 23
- C 10
- D 8
-
E 88
use Algorithm::Bucketizer; my $b = Algorithm::Bucketizer->new( bucketsize => 30); for my $i (1..10) { $b->add_item($i, 30+$i); } for my $bucket ($b->buckets()) { for my $item ($bucket->items()) { print "Bucket ", $bucket->serial(), ": Item $item\n"; } print "\n"; }
http://search.cpan.org/~mschilli/Algorithm-Bucketizer-0.13/Bucketizer.pm
使用这个模块,我正在应用背包算法来尝试将物品的重量分配到桶中
my $bucketizer = Algorithm::Bucketizer->new(bucketsize => $size);
问题在于,当重量大于我正在搜索的重量时,该重量会被排除在外。
例子:
桶大小 => 30
- E 88 这将被排除在外
是否有另一种算法可以解决这种情况?或者有没有办法修改这个不排除大于尺寸的重量?
是否可以将其调整为这样工作?
如果重量 > 尺寸,则只用该重量填充一个桶
【问题讨论】:
-
这个问题令人困惑。也许我缺少背景信息。你想要什么输出?
-
对不起,我试图不排除大于桶大小的权重。如果权重大于桶大小,则排除该权重。我尽量不排除那个重量,而是只用那个重量装满一个桶。
-
这没有帮助。我仍然不知道你想要什么输出。你想解决什么问题?这很像是一个 XY 问题:xyproblem.info
-
提示:避免使用
$b以避免与sort和类似的 subs 冲突。
标签: algorithm perl knapsack-problem