裏 RjpWiki

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

ラズベリーは何個ある?(awk)

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

言語によって,gsub の仕様が少し変わるが基本は同じ。

BEGIN {
str = "1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989"
gsub("(..)", "&,", str)
print gsub("00|01|04|15|17|18|24", "@", str)
}

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

ラズベリーは何個ある?(3)

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

(2)と似ているが

str = "1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989"
length(grep("00|01|04|15|17|18|24", unlist(strsplit(gsub("(..)", "\\1,", str), ","))))

また,以下のようにも

nchar(gsub("[^@]", "", gsub("00|01|04|15|17|18|24", "@", gsub("(..)", "\\1,", str))))

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

2番目以降の四つ子素数

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

計算時間を贅沢に

> library(gmp)
> n = 30*0:10000
> n = n[isprime(n+11) > 0 & isprime(n+13) > 0 & isprime(n+17) > 0 & isprime(n+19) > 0]
> t(sapply(n, "+", c(11, 13, 17, 19)))
        [,1]   [,2]   [,3]   [,4]
 [1,]     11     13     17     19
 [2,]    101    103    107    109
 [3,]    191    193    197    199
 [4,]    821    823    827    829
 [5,]   1481   1483   1487   1489
 [6,]   1871   1873   1877   1879
 [7,]   2081   2083   2087   2089
 [8,]   3251   3253   3257   3259
 [9,]   3461   3463   3467   3469
[10,]   5651   5653   5657   5659

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

ラズベリーは何個ある?(2)

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

文字列操作で書いてみる(題意通りの解が得られる区切り方)

str = "1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989"
str = gsub("(..)", "\\1,", str)
nchar(str)-nchar(gsub("00|01|04|15|17|18|24", "*", str))

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

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

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