首先是的,这是我的Perl类的一个家庭作业项目。我不是在寻找答案(虽然这将是甜蜜的)。据我了解,我需要使用BFS和正则表达式来组织我的数据以供使用。我需要这方面的一些指导。我如何使用BFS?我是否使用大量堆栈并遍历堆栈中的每个项目?我应该使用一个巨大的散列表吗?有没有人在解决这个问题?你是怎么做的?我只需要一些方向。这与BST类似吗?这可能没有使用图形模块?这可能使用散列值?六度Perl的凯文培根
2
A
回答
5
这不是一个答案,但它是对你的答案提示。
您最好先查找图中的宽度优先搜索。
另外,如果你还没有得到一个正则表达式,你可以考虑标记问题,然后看看。可能不需要。检查作业,看看你是否可以在某些信息中只需slurp。
6
请参阅Graph。
#!/usr/bin/perl
use autodie;
use strict; use warnings;
use Graph;
use Graph::TransitiveClosure::Matrix;
my $dat = 'kevin-bacon.dat';
my $kbg = Graph->new(undirected => 1);
open my $kbf, '<', $dat;
my %movies;
while (my $line = <$kbf>) {
last unless $line =~ /\S/;
chomp $line;
my ($u, $m, $v) = split /;/, $line;
$kbg->add_edge($u, $v);
$movies{"$u|$v"} = $movies{"$v|$u"} = $m;
}
my $tcm = Graph::TransitiveClosure::Matrix->new($kbg,
path_length => 1,
path_vertices => 1,
);
my ($u, $v) = ('Kevin Bacon', 'Yelena Maksimova');
if (my $n = $tcm->path_length($u, $v)) {
printf "%d degrees of separation between %s and %s\n", $n, $u, $v;
}
my @path = $tcm->path_vertices($u, $v);
for my $i (0 .. @path - 2) {
my ($u, $v) = @path[$i, $i + 1];
print qq{$u - $v: $movies{"$u|$v"}\n};
}
来自Boost项目中使用kevin-bacon.dat
:
3 degrees of separation between Kevin Bacon and Yelena Maksimova Kevin Bacon - Elisabeth Shue: Hollow Man (2000) Elisabeth Shue - Lev Prygunov: Saint, The (1997) Lev Prygunov - Yelena Maksimova: Bezottsovshchina (1976)
相关问题
- 1. SQL查询/程序查找六度凯文培根数字
- 2. Neo4j Cypher凯文培根2的数字
- 3. 培根游戏Java程序?
- 4. 凯拉斯LSTM的输入维度
- 5. 如何在凯拉斯的培训课程中保留指标值?
- 6. 麦凯布圈复杂度在Java
- 7. 根据列ID解析文件:perl
- 8. perl十六进制()模拟python
- 9. 培训doc2vec公司名称相似度
- 10. 如何培养深度学习网络
- 11. Perl 5.6.1与Perl 5.14 - 将十进制转换为十六进制
- 12. 根据perl中的一列合并多个文本文件
- 13. 培训OpenNLP文档分类
- 14. 的iOS:UIButton的根据文本长度
- 15. 有琐碎的属性曾经保存你的培根?
- 16. 在Perl中将原始十六进制转换为可读的十六进制?
- 17. 凯撒密码使用文件
- 18. 凯特(文本编辑器)缩进,C++
- 19. Python凯撒Cypher分析输入文件
- 20. 带有培根的项目输出列表
- 21. Perl,根据预告片
- 22. f中的凯撒密码#
- 23. 在凯拉斯CRF的LSTM
- 24. Python凯撒密码
- 25. Java凯撒密码
- 26. htaccess凯蒂重写
- 27. 凯撒密码,Python
- 28. Perl的线长度读
- 29. Perl的长度函数
- 30. 根据文档的高度设置IFRAME的高度(跨域)
...为什么你必须使用'丑陋的正则表达式'?你不能用一个漂亮的吗? – pavium 2009-11-06 02:54:00
你可能真的很喜欢用OReily的Perl掌握算法。 http://oreilly.com/catalog/9781565923980 – daotoad 2009-11-06 08:12:57