裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ラズベリーは何個ある?

2014年10月12日 | ブログラミング

> 最初の2桁は 14 なので、アルファベット・インデックス表の 「o」 にあたり、カウントしません。 > 次の2桁は 15 なので、アルファベット・インデックス表の 「p」 にあたり、カウントします。

以下のプログラムは,要求されている仕様と異なる。以下のプログラムでは,14, 41, 15  のようにして二桁ずつ区切る。ははは。

この解は,βバージョン

str = "1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989"
str1 = unlist(strsplit(str, ""))
str2 = str1[2:1000]
str1 = str1[1:999]
func = function(x, y) {
    (x == 0 && y == 0)  || # a
    (x == 0 && y == 1)  || # b
    (x == 0 && y == 4)  || # e
    (x == 1 && y == 5)  || # p
    (x == 1 && y == 7)  || # r
    (x == 1 && y == 8)  || # s
    (x == 2 && y == 4)     # y
}
    
system.time(print(sum(mapply(func, str1, str2))))

[1] 63
   ユーザ   システム       経過  
     0.030      0.001      0.037

題意どおりに解く場合は,str1, str2 をちょっと変えればよい。答えは 31 になるはず。hahaha...

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村