裏 RjpWiki

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

どこまで自力で書くかが試されるんだろうなあと

2012年09月08日 | ブログラミング

はてなユーザしかコメントできないなどという,馬鹿げた仕組み のようなので,こちらへ

Googleの入社問題をR解いてみたよ!」だけど,

> 自然対数を文字列として認識して、strsplitで一文字ずつ分割。返り値がlist形式になっているので、unlistしてからas.integerで数値として認識させる必要があります。

なんて,不要でしょう。substring で先頭から順に10文字ずつとって,それを as.numeric して,素数判定をすればよいだけ。素数判定も gmp ライブラリの isprime を使えば, 0.001 秒程度で答えが出る

追記:後になって,プログラムが添付されたが,実質的には substr を使ったものになっている。
strsplit は別の目的で使う(不要だが)ベクトルを作るために使っている。

ちなみに,件のリンク先の divisor の 3 つ上にある,「多倍長精度による計算」で,e を計算することもできる。

この問題は,そんな解があるんだろうか,あるとしても見つけるのは難しいんだろうなあと思うかも知れないが,解は意外と早い内に見つかる。以下に,「n 桁の連続する数字が素数である解を求めよ」として,n=1~50 まで求めて見た結果である。ほとんどが小数点以下 100 桁以内から始まる。そして,全部計算が終わるまで 0.06 秒しかかからない

 n   何桁目から始まる数字か  および,その素数
 1    1 7

 2    1 71
 3    4 281
 4   14 4523
 5   24 74713
 6   12 904523
 7   20 6028747
 8   64 72407663
 9   19 360287471
10   99 7427466391
11   37 75724709369
12   53 749669676277
13    7 8284590452353
14   47 99959574966967
15   39 724709369995957
16   40 2470936999595749
17    8 28459045235360287
18   82 571382178525166427
19  151 5956307381323286279
20   18 53602874713526624977
21   51 957496696762772407663
22    5 8182845904523536028747
23   15 52353602874713526624977
24   65 240766303535475945713821
25    3 8281828459045235360287471
26    3 82818284590452353602874713
27   68 766303535475945713821785251
28   24 7471352662497757247093699959
29   27 13526624977572470936999595749
30    6 182845904523536028747135266249
31   96 6427427466391932003059921817413
32  173 90763233829880753195251019011573
33    3 828182845904523536028747135266249
34   47 9995957496696762772407663035354759
35  126 35966290435729003342952605956307381
36   10 459045235360287471352662497757247093
37   39 7247093699959574966967627724076630353
38   57 69676277240766303535475945713821785251
39   47 999595749669676277240766303535475945713
40   68 7663035354759457138217852516642742746639
41   44 93699959574966967627724076630353547594571
42   39 724709369995957496696762772407663035354759
43   33 2497757247093699959574966967627724076630353
44  118 92181741359662904357290033429526059563073813
45    5 818284590452353602874713526624977572470936999
46    6 1828459045235360287471352662497757247093699959
47   91 52516642742746639193200305992181741359662904357
48   60 762772407663035354759457138217852516642742746639
49    1 7182818284590452353602874713526624977572470936999
50   39 72470936999595749669676277240766303535475945713821

ちなみに,500 けたの素数が,1461 文字目から始まる。500桁までで,110秒かかった。

87211725563475463964479101459040905862984967912874068705048958586717
47985466775757320568128845920541334053922000113786300945560688166740
01698420558040336379537645203040243225661352783695117788386387443966
25322498506549958862342818997077332761717839280349465014345588970719
42586398772754710962953741521115136835062752602326484728703920764310
05958411661205452970302364725492966693811513732275364509888903136020
57248176585118063036442812314965507047510254465011727211555194866850
800368532281831521960037

追記:

その後,google で検索して,出てきたページを斜め読みすると,やれ, Excel だと半日ぐらいでできそうだとか,途中で投げたとかいう記事が。また,自分でやることもなく,さすが google すごい。などという記事が多くて,嘆かわしい。数個読んで,反吐が出そうになったのでやめた。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« markdown::markdownToHTML が... | トップ | google 謎の人材募集広告 その2 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事