A Simple Example of Dynamic Programming using perl scripts
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了A Simple Example of Dynamic Programming using perl scripts,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3722字,纯文字阅读大概需要6分钟。
内容图文
![A Simple Example of Dynamic Programming using perl scripts](/upload/InfoBanner/zyjiaocheng/1243/48ec993c52364925ba11dbe505142d2f.jpg)
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @stations = ([2,7,9,3,4,8,4,3], [4,8,5,6,4,5,7,2] ); # 0,1,2,3,4,5,6,7
my @transfer = ([2,3,1,3,4], [2,1,2,2,1] ); # 0,1,2,3,4,5
my (@fastway, @line);
($fastway[0][0], $fastway[0][1]) = ($stations[0][0], $stations[0][0]+$stations[0][1] );
($fastway[1][0], $fastway[1][1]) = ($stations[1][0], $stations[1][0]+$stations[1][1] );
($line[0][0], $line[0][1]) = (0,0);
($line[1][0], $line[1][1]) = (1,1);
for( my $i=2; $i<=6; $i++ ){
# for line one
if( $fastway[0][$i-1] <= $fastway[1][$i-1] + $transfer[1][$i-2] ){
$fastway[0][$i] = $fastway[0][$i-1] + $stations[0][$i];
$line[0][$i] = 0;
}else{
$fastway[0][$i] = $fastway[1][$i-1] + $transfer[1][$i-2] + $stations[0][$i];
$line[0][$i] = 1;
}
# for line two
if( $fastway[1][$i-1] <= $fastway[0][$i-1] + $transfer[0][$i-2] ){
$fastway[1][$i] = $fastway[1][$i-1] + $stations[1][$i];
$line[1][$i] = 1;
}else{
$fastway[1][$i] = $fastway[0][$i-1] + $transfer[0][$i-2] + $stations[1][$i];
$line[1][$i] = 0;
}
}
$fastway[0][7] = $fastway[0][6] + $stations[0][7];
$fastway[1][7] = $fastway[1][6] + $stations[1][7];
my $line = 0;
$line[$line][7] = $line;
$line[$line][7] = $line = 1 if( $fastway[0][7] >= $fastway[1][7] );
print "StepMarker\tStations\tTimeCost\n";
for( my $i=0; $i<8; $i++ ){
my $index;
if( $i==0 ) {
$index = "EnterTimeCost";
}elsif( $i==7 ) {
$index = "TotalTimecost";
}else{
$index = "FinishStation";
}
print join("\t", "$index$i", $line[$line][$i]+1, $fastway[$line][$i], "\n" );
}
stations = [[2,7,9,3,4,8,4,3], [4,8,5,6,4,5,7,2]] transfer = [[2,3,1,3,4], [2,1,2,2,1]] fastway = [ [stations[0][0], stations[0][0]+stations[0][1]], [stations[1][0], stations[1][0]+stations[1][1]] ] line = [ [0,0], [1,1] ] for i in range(2,7): # for line one if fastway[0][i-1] <= (fastway[1][i-1] + transfer[1][i-2]): fastway[0].append( fastway[0][i-1] + stations[0][i] ) line[0].append( 0 ) else: fastway[0].append( fastway[1][i-1] + transfer[1][i-2] + stations[0][i] ) line[0].append( 1 ) #for line two if fastway[1][i-1] <= (fastway[0][i-1] + transfer[0][i-2]): fastway[1].append( fastway[1][i-1] + stations[1][i] ) line[1].append( 1 ) else: fastway[1].append( fastway[0][i-1] + transfer[0][i-2] + stations[1][i] ) line[1].append( 0 ) fastway[0].append( fastway[0][6] + stations[0][7] ) fastway[1].append( fastway[1][6] + stations[1][7] ) li = 0 line[li].append( 0 ) if fastway[0][7] >= fastway[1][7]: li = 1 line[li].append( 1 ) print "StepMarker\tStations\tTimeCost" for i in range(8): if i==0: index = "EnterTimeCost" elif i==7: index = "TotalTimecost" else: index = "FinishStation" print ‘%s%d\t%d\t%d‘ % (index, i, line[li][i]+1, fastway[li][i])
原文:http://blog.csdn.net/bangemantou/article/details/20210705
内容总结
以上是互联网集市为您收集整理的A Simple Example of Dynamic Programming using perl scripts全部内容,希望文章能够帮你解决A Simple Example of Dynamic Programming using perl scripts所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。