加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

用Perl解决一道高中数学题

发布时间:2020-12-16 00:23:27 所属栏目:大数据 来源:网络整理
导读:背景:在微博上见到一道简单的数学题 ,最近一直在学Perl编程,用Perl实现之,在代码中应用了几个高级技巧,加深了对Perl数组的理解。 问题: 一个将字符串“ A B C D E F G ”变成字符串“ C D A B F G E ”的置换定义为一次运算,则从字符 “一行白鹭上青天

背景:在微博上见到一道简单的数学题 ,最近一直在学Perl编程,用Perl实现之,在代码中应用了几个高级技巧,加深了对Perl数组的理解。


问题: 一个将字符串“ ABCDEFG ”变成字符串“ CDABFGE ”的置换定义为一次运算,则从字符 “一行白鹭上青天”开始,经过? 2011 ?次运算后得到的字符串为

  • ?
  • ?
  • ?
  • ?

Perl代码:

 
 
#######################################
# Desc: 用Perl解一道高中数学题(函数) #
# Author: thinkhy #
# Date: 05/26/2012 Sat #
# Reference:
#######################################
use strict ;
use utf8 ;

my $str = "一行白鹭上青天" ;
my @fun = ( 2 , 3 ,153)">0 ,153)">1 ,153)">5 ,153)">6 ,153)">4 );
my @tran = ( split "" , $str )[ @fun ];

my @tranArray ;
push @tranArray , $str ;

while ( $str ne ( join @tran ))
{
???? ( @tran );
???? @tran = @tran [ @fun ];
}
binmode ( STDOUT , ':encoding(gb2312)' );
print "n" ,128)">@tranArray ;
my $cnt = 2011 % @ tranArray ;
print "nFinal: " . $tranArray [ $cnt ] . "n" ;


程序输出如下:

? ?一行白鹭上青天

白鹭一行青天上
一行白鹭天上青
白鹭一行上青天
一行白鹭青天上
白鹭一行天上青
Final: 白鹭一行青天上

???


Reference:

? ? 1. 善科题库?http://www.mysanco.com/tiku/index.php?class=index&action=special_subject&tid=13997&rid=10

? ? 2. 《Perl高效编程》 ?http://book.douban.com/subject/6146346/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读