[過去ログ]
プログラミングのお題スレ Part16 (1002レス)
プログラミングのお題スレ Part16 http://mevius.5ch.io/test/read.cgi/tech/1573948822/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
554: デフォルトの名無しさん [sage] 2020/01/05(日) 15:25:24 ID:+tGOF19X >>544 Python def reverse(s): return s[::-1] http://mevius.5ch.io/test/read.cgi/tech/1573948822/554
555: デフォルトの名無しさん [] 2020/01/05(日) 16:01:41 ID:8nvrboOv >>540 こういうのを見ると我々は離散数学についてはほぼ無力と思う。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/555
556: デフォルトの名無しさん [sage] 2020/01/05(日) 17:02:46 ID:x729cdax >>555 勉強しとけ http://mevius.5ch.io/test/read.cgi/tech/1573948822/556
557: デフォルトの名無しさん [] 2020/01/05(日) 21:49:56 ID:2Fq0AHrI >>544 R https://ideone.com/mfvWPO >>546のPowerShellと違って、U+10000以上の文字が含まれていても正しく逆順にできる。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/557
558: デフォルトの名無しさん [] 2020/01/05(日) 21:52:10 ID:2Fq0AHrI >>542 仮数部も指数部も間違っている。整数で1の位まで正確に求められるよ。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/558
559: デフォルトの名無しさん [sage] 2020/01/05(日) 22:31:31 ID:h+ccWvVu >>540 サンクス >>532 の解 {13, 11, 8} {15, 9, -4} {8, 1, -2} * 2 {9, -2, -6} * 2 {16, -6, -15} * 2 {74, -23, -73} {43, -27, -39} * 2 {171, -75, -166} {169, 64, -172} * 2 {516, 93, -517} {414, 385, -504} * 2 {530, 337, -572} {1098, 939, -1291} {1290, 171, -1291} {1626, -957, -1507} {2251, -712, -2227} {3107, -587, -3100} {3299, 1018, -3331} {3509, -2525, -3004} {4022, -3163, -3221} {2673, 1114, -2736} * 2 {13571, -9259, -11948} {15291, -8419, -14388} {10102, 674, -10103} * 2 {43943, 28524, -47631} {23689, -3382, -23666} * 2 など。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/559
560: デフォルトの名無しさん [sage] 2020/01/05(日) 22:41:01 ID:h+ccWvVu >>533 の解 {8, 1, -2} {9, -2, -6} {16, -6, -15} {43, -27, -39} {169, 64, -172} {414, 385, -504} {530, 337, -572} {2673, 1114, -2736} {10102, 674, -10103} {23689, -3382, -23666} ・・・ ・・・ {830541, 220347, -835679} など。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/560
561: デフォルトの名無しさん [sage] 2020/01/05(日) 22:48:30 ID:bLPoA6E7 >>541 C++ https://ideone.com.VJk9QA 倍精度だと微妙に精度が足りないので 擬似4倍精度で計算してみた 4倍精度や多倍長が使える言語やライブラリを使えば一瞬で書けるんだけど http://mevius.5ch.io/test/read.cgi/tech/1573948822/561
562: デフォルトの名無しさん [sage] 2020/01/05(日) 22:49:34 ID:bLPoA6E7 ↑ https://ideone.com/VJk9QA でした http://mevius.5ch.io/test/read.cgi/tech/1573948822/562
563: デフォルトの名無しさん [] 2020/01/05(日) 23:29:51 ID:2Fq0AHrI >>562 正解。 Rには多倍長浮動小数点パッケージRmpfrがあるので、120ビット精度での計算をさっと書ける。 多倍長整数パッケージgmpにはフィボナッチ数列の第n項を求める関数があるので、第80項を 自分で求める必要すらない。 https://ideone.com/VcxXIm C/C++にもlong double型があるので楽勝!と思っていると罠に嵌まる。Visual C++では long doubleは移植性(単にコンパイルが通るという意味で)のために定義されているだけで、 double精度しかないので使えない。GNU C++ではlong doubleが本当のlong doubleなので使える。 https://ideone.com/3puKYQ これをVisual C++やGNU Cで実行すると、1の位が2大きい不正確な値が表示されてしまう。 https://ideone.com/Md5qZz http://mevius.5ch.io/test/read.cgi/tech/1573948822/563
564: デフォルトの名無しさん [] 2020/01/05(日) 23:41:09 ID:2Fq0AHrI GNU C++にも罠があって、https://ideone.com/3puKYQ はideoneでは結果が正しく 表示されているが、Windows版でコンパイルすると「-0桁」になってしまう。 printfの%Lf書式指定子が何故か正常に機能しないようなので、long longに変換して %lld書式指定子を使う必要がある。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/564
565: デフォルトの名無しさん [sage] 2020/01/05(日) 23:58:45 ID:Z3Lsb/Mg >>562は擬似4倍精度の四則演算やルートがコンパクトにまとまっており参考になるかと思います logは手抜きですが http://mevius.5ch.io/test/read.cgi/tech/1573948822/565
566: デフォルトの名無しさん [sage] 2020/01/06(月) 00:24:13 ID:MKFPBGLf x87の80bit形式久々に聞いた intelの失敗仕様 本当のlong doubleって言ったら128bitの事だと思う http://mevius.5ch.io/test/read.cgi/tech/1573948822/566
567: デフォルトの名無しさん [] 2020/01/07(火) 12:16:08 ID:lAASQTDH 本当の? http://mevius.5ch.io/test/read.cgi/tech/1573948822/567
568: デフォルトの名無しさん [] 2020/01/07(火) 13:02:38 ID:PuPIfAOU 大きさと精度が一致しないということでは。 例えば、16ビット整数の加算において255+1で桁あふれが発生するのは、勘弁してほしい。 16ビット整数であれば精度も16ビットあってほしい。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/568
569: デフォルトの名無しさん [sage] 2020/01/07(火) 13:13:00 ID:4oL1Xwrc intelの拡張小数は箱も中身も80bitだぞ 隠れた1bitも隠さないから中身は79bitとも言えるかもしれないけど http://mevius.5ch.io/test/read.cgi/tech/1573948822/569
570: デフォルトの名無しさん [] 2020/01/07(火) 13:43:12 ID:PuPIfAOU GCCのlong doubleは128ビットあるから。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/570
571: デフォルトの名無しさん [sage] 2020/01/07(火) 22:24:41 ID:Y9qs9jpB ひさびさにx87命令を使ってみた masm形式なのでideoneでは動作しませんが https://ideone.com/CdzenK http://mevius.5ch.io/test/read.cgi/tech/1573948822/571
572: デフォルトの名無しさん [sage] 2020/01/07(火) 22:38:44 ID:Y9qs9jpB ↑の出力結果 4893806799921043 (4893806799921042 + 0.855469) 丸める前の正確な値は 4893806799921042.8564973677594677.... なので小数第二位まで合っています 80bitでもギリギリって感じ 2進数だと 上位62bitまで正確、下位2bitが計算誤差 ということになります http://mevius.5ch.io/test/read.cgi/tech/1573948822/572
573: デフォルトの名無しさん [sage] 2020/01/07(火) 23:09:32 ID:Y9qs9jpB https://pc.watch.impress.co.jp/docs/article/toku0101/plan8.htm http://mevius.5ch.io/test/read.cgi/tech/1573948822/573
574: デフォルトの名無しさん [sage] 2020/01/08(水) 17:55:41 ID:E2HYW9Z+ お題 フィボナッチ数列のn番目をF(n)とした時 F(F(F(80)))の下位4桁を求めよ フィボナッチ数列は以下で定義される数列である F(1)=1 F(2)=1 F(n)=F(n-2)+F(n-1) http://mevius.5ch.io/test/read.cgi/tech/1573948822/574
575: デフォルトの名無しさん [sage] 2020/01/08(水) 18:47:53 ID:bVQLyL/p フィフィフィボナッチ数列はお腹いっぱい http://mevius.5ch.io/test/read.cgi/tech/1573948822/575
576: ◆QZaw55cn4c [sage] 2020/01/08(水) 19:48:23 ID:npJkZznC >>571 x87 すごくいいです!私も 9801FA に i487SX をようやく搭載して準備完了です! http://mevius.5ch.io/test/read.cgi/tech/1573948822/576
577: デフォルトの名無しさん [] 2020/01/08(水) 20:00:11 ID:naqRCa+g お前は昭和何年からタイムスリップしてきたんだ http://mevius.5ch.io/test/read.cgi/tech/1573948822/577
578: デフォルトの名無しさん [] 2020/01/08(水) 20:33:31 ID:DEoUiUkq >>574 R https://ideone.com/lpnhLq http://mevius.5ch.io/test/read.cgi/tech/1573948822/578
579: デフォルトの名無しさん [sage] 2020/01/08(水) 21:16:17 ID:E2HYW9Z+ 正解 C++ https://ideone.com/iSMABZ http://mevius.5ch.io/test/read.cgi/tech/1573948822/579
580: デフォルトの名無しさん [sage] 2020/01/08(水) 23:38:33 ID:3Vg9kR1l >>544 Perl5 use feature qw{say signatures}; sub reverse($s) { map {substr $s, -$_, 1} 1..length $s; } say &reverse('reverse'); http://mevius.5ch.io/test/read.cgi/tech/1573948822/580
581: デフォルトの名無しさん [sage] 2020/01/10(金) 10:41:25 ID:lJ/gG0sx お題:自分用expm1()的なもの。底はe以外でも良い。不正な引数でのエラー処理は 考慮しなくても良い。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/581
582: デフォルトの名無しさん [sage] 2020/01/10(金) 13:20:18 ID:KXQq2+DU 目的が高精度なのかSIMDなのか単に出題者が勉強したいだけなのか もしかしてx87命令を使わせたい? http://mevius.5ch.io/test/read.cgi/tech/1573948822/582
583: デフォルトの名無しさん [] 2020/01/10(金) 20:53:23 ID:1usNcOvE >>581 expm1()って何? http://mevius.5ch.io/test/read.cgi/tech/1573948822/583
584: デフォルトの名無しさん [age] 2020/01/10(金) 21:01:53 ID:jjOShzcG エキスペディション・マグニチュードワンのことやろな http://mevius.5ch.io/test/read.cgi/tech/1573948822/584
585: 581 [sage] 2020/01/10(金) 22:06:13 ID:lJ/gG0sx >>582 SIMDやx87命令は考えてませんでした。 四則演算とexpm1()以外のライブラリ関数は使用可って事で。 やっぱし無難にテイラー展開で求めるのが楽? >>583 例えば ttps://linuxjm.osdn.jp/html/LDP_man-pages/man3/expm1.3.html http://mevius.5ch.io/test/read.cgi/tech/1573948822/585
586: デフォルトの名無しさん [sage] 2020/01/10(金) 22:10:45 ID:lApN4p1F 四則演算も使ったらダメなのかい http://mevius.5ch.io/test/read.cgi/tech/1573948822/586
587: 581 [sage] 2020/01/10(金) 22:42:31 ID:lJ/gG0sx >>586 訂正: 四則演算と、「expm1()以外の」ライブラリ関数は使用可 http://mevius.5ch.io/test/read.cgi/tech/1573948822/587
588: デフォルトの名無しさん [sage] 2020/01/11(土) 06:32:12 ID:wIXPHQcF 出題者が方法を知りたいだけだよね? なら質問スレ/宿題スレの方が適切 http://mevius.5ch.io/test/read.cgi/tech/1573948822/588
589: デフォルトの名無しさん [] 2020/01/11(土) 09:22:26 ID:R1f0qLP3 お題 素数番目の素数をスーパー素数と言う。 スーパー素数の最初の100個を求める。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/589
590: デフォルトの名無しさん [sage] 2020/01/11(土) 10:27:02 ID:LQrvWU7L >>589 Ruby 2.7.0 require 'Prime' p Prime.take(100).then{|p| Prime.take(p.last).select.with_index{p.include?(-~_2)}} # => [3, 5, 7, [中略], 3761, 3911] http://mevius.5ch.io/test/read.cgi/tech/1573948822/590
591: デフォルトの名無しさん [sage] 2020/01/11(土) 10:31:32 ID:LQrvWU7L typo # => [3, 5, 11, 17, 31, [中略], 3733, 3761, 3911] http://mevius.5ch.io/test/read.cgi/tech/1573948822/591
592: デフォルトの名無しさん [sage] 2020/01/11(土) 10:52:09 ID:VG9fEjGe お題 5の倍数の素数を5の倍数素数という 5の倍数素数を全て求めよ http://mevius.5ch.io/test/read.cgi/tech/1573948822/592
593: デフォルトの名無しさん [sage] 2020/01/11(土) 11:10:43 ID:V+Dyph4l 5の倍数の素数ってどういうことですか? 文字通りの意味なら5だけだと思うんですけど http://mevius.5ch.io/test/read.cgi/tech/1573948822/593
594: デフォルトの名無しさん [sage] 2020/01/11(土) 13:10:43 ID:JM9/51Sk >>544 Perl4 use feature qw{say signatures}; sub rev($s) { $s ne '' and substr ($s, -1, 1, '') . rev($s) } say rev('string'); てす http://mevius.5ch.io/test/read.cgi/tech/1573948822/594
595: デフォルトの名無しさん [sage] 2020/01/11(土) 13:14:26 ID:JM9/51Sk >>594 Perl5 だった…orz しかし、このソースの「substr (」のrと(の間のスペース文字を省くと スレへの書き込みで HTTP/1.1 403 Forbidden が起きて書き込めなかったのは謎… http://mevius.5ch.io/test/read.cgi/tech/1573948822/595
596: デフォルトの名無しさん [sage] 2020/01/11(土) 14:01:21 ID:M68szGrA >>592 echo 5 http://mevius.5ch.io/test/read.cgi/tech/1573948822/596
597: デフォルトの名無しさん [] 2020/01/11(土) 20:08:39 ID:go77StkR お題 20200111の階乗を素因数分解したとき、すべての因数の積は20200111の階乗だが、 すべての因数の和は何か。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/597
598: デフォルトの名無しさん [] 2020/01/11(土) 20:55:04 ID:r5wulSj/ ナベアツ理論か。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/598
599: デフォルトの名無しさん [sage] 2020/01/12(日) 00:39:46 ID:PW2KE/yt >>595 書き込めないコマンドは、一杯ある。 「ls −l」とか 5ch は、特定の命令によって、表示の見た目を変えることができるから、 単に、表示する文字列に変換するだけじゃなくて、 投稿されたテキストから、命令を抽出したりしているから、 バグりそうなテキストを排除しているのだろう http://mevius.5ch.io/test/read.cgi/tech/1573948822/599
600: デフォルトの名無しさん [sage] 2020/01/12(日) 10:30:24 ID:Cuf7XVQy >>597 C++ https://ideone.com/30RQZF http://mevius.5ch.io/test/read.cgi/tech/1573948822/600
601: デフォルトの名無しさん [sage] 2020/01/12(日) 16:28:53 ID:Svv4a/Ag お題: バイナリ―サーチを実装せよ(自分の記憶だけで書かなければならない) http://mevius.5ch.io/test/read.cgi/tech/1573948822/601
602: デフォルトの名無しさん [] 2020/01/12(日) 16:52:57 ID:qRMFtMw7 >>601 Java https://paiza.io/projects/y4RxMakkRM6x88qm5GGMvA http://mevius.5ch.io/test/read.cgi/tech/1573948822/602
603: デフォルトの名無しさん [sage] 2020/01/12(日) 17:33:54 ID:kqg5PnqA >>601 Ruby def bs(ary, &cond) return ary[0] && cond.call(ary[0]) ? ary[0] : ary[1] && cond.call(ary[1]) ? ary[1] : nil if ary.size < 3 mid = ary.size / 2 bs(ary[cond.call(ary[mid]) ? 0..mid : mid + 1..-1], &cond) end p bs([1,3,5,7,9]){|i| i > 0} # => 1 p bs([1,3,5,7,9]){|i| i > 3} # => 5 p bs([1,3,5,7,9]){|i| i > 9} # => nil http://mevius.5ch.io/test/read.cgi/tech/1573948822/603
604: ◆QZaw55cn4c [sage] 2020/01/12(日) 17:39:35 ID:ZvwnN6DP >>601 C++ https://mevius.5ch.net/test/read.cgi/tech/1434079972/33 std::set<int> の再実装にて、内部にバイナリーサーチを含んでいます http://mevius.5ch.io/test/read.cgi/tech/1573948822/604
605: ◆QZaw55cn4c [sage] 2020/01/12(日) 17:41:03 ID:ZvwnN6DP >>601 >(自分の記憶だけで書かなければならない) これは重要かつ役に立つ訓練のしかたですね、この前は pthread の mutex と cond が理解できているかどうかを、この縛りのもとにコードを書いて試みました http://mevius.5ch.io/test/read.cgi/tech/1573948822/605
606: デフォルトの名無しさん [sage] 2020/01/12(日) 18:20:53 ID:Xff8C4Cf >(自分の記憶だけで書かなければならない) お題は全てそういうものだと思ってたが みんなカンニングして回答してるの? http://mevius.5ch.io/test/read.cgi/tech/1573948822/606
607: デフォルトの名無しさん [] 2020/01/12(日) 19:59:45 ID:qRMFtMw7 お題1 10ビットの乱数を10個作成して 2進数に変換して出力してください 10ビットに満たない数は0埋めしてください 例) 1101101110 1000100011 0100111001 1110000001 1001001100 0010001111 1111001000 1010110111 1100001001 0100110111 お題2 縦方向、または、横方向に1が連続しているところを調べて 最も1が連続しているところの1の数を出力してください ビット数や乱数の数が増えてもちょっぱやで処理できるとなお良いです http://mevius.5ch.io/test/read.cgi/tech/1573948822/607
608: デフォルトの名無しさん [] 2020/01/12(日) 20:38:11 ID:xWFTg64o >>600 正解。あなたには簡単すぎただろうが。 Rで書いた解答例はPCでは2秒台で実行できたのに、ideoneでは制限時間5秒以内に 終わらなかったので、C++で書いた方を貼る。https://ideone.com/DFDdtr >>600とほぼ同じだが、掛け算が減る分だけ速いな。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/608
609: デフォルトの名無しさん [] 2020/01/12(日) 21:27:08 ID:xWFTg64o >>607 R https://ideone.com/iTihQo http://mevius.5ch.io/test/read.cgi/tech/1573948822/609
610: デフォルトの名無しさん [] 2020/01/12(日) 21:44:57 ID:qRMFtMw7 >>609 ありがとうございます、そして申し訳ないです 11 11 こうなってたら4と出力してほしくて 連続じゃないですね、隣接といえばよかったかもしれません 縦方向、横方向に1が隣接してる領域のうち最大の領域の1の数を出力して欲しいのです http://mevius.5ch.io/test/read.cgi/tech/1573948822/610
611: デフォルトの名無しさん [] 2020/01/12(日) 21:45:02 ID:xWFTg64o >>607 ビット数と乱数の数を別々に指定できるように訂正 https://ideone.com/cYMlMO http://mevius.5ch.io/test/read.cgi/tech/1573948822/611
612: デフォルトの名無しさん [] 2020/01/12(日) 21:48:51 ID:qRMFtMw7 すみません・・・平にご容赦いただきたく http://mevius.5ch.io/test/read.cgi/tech/1573948822/612
613: デフォルトの名無しさん [] 2020/01/12(日) 21:48:57 ID:xWFTg64o >>610 隣接している領域は矩形でなければいけないのか、そうでなくても良いのか。例えば、 1110 0110 0111 は前者なら6個で、後者なら8個になる。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/613
614: デフォルトの名無しさん [] 2020/01/12(日) 21:52:58 ID:qRMFtMw7 >>613 矩形じゃなくていいです8個パターンです! http://mevius.5ch.io/test/read.cgi/tech/1573948822/614
615: デフォルトの名無しさん [sage] 2020/01/13(月) 04:22:53 ID:5GjUS2iX 質問なら質問スレに 宿題なら宿題スレに 回答を用意してない出題は禁止 http://mevius.5ch.io/test/read.cgi/tech/1573948822/615
616: デフォルトの名無しさん [sage] 2020/01/13(月) 04:47:28 ID:5GjUS2iX 昔ながらのPAINTアルゴリズム 検索すれば色々と出てくるよ http://mevius.5ch.io/test/read.cgi/tech/1573948822/616
617: デフォルトの名無しさん [] 2020/01/13(月) 05:51:52 ID:9cAJpR6a >>589 J smoutput 10 10 $ p: <: p: i.100 実行結果 3 5 11 17 31 41 59 67 83 109 127 157 179 191 211 241 277 283 331 353 367 401 431 461 509 547 563 587 599 617 709 739 773 797 859 877 919 967 991 1031 1063 1087 1153 1171 1201 1217 1297 1409 1433 1447 1471 1499 1523 1597 1621 1669 1723 1741 1787 1823 1847 1913 2027 2063 2081 2099 2221 2269 2341 2351 2381 2417 2477 2549 2609 2647 2683 2719 2749 2803 2897 2909 3001 3019 3067 3109 3169 3229 3259 3299 3319 3407 3469 3517 3559 3593 3637 3733 3761 3911 http://mevius.5ch.io/test/read.cgi/tech/1573948822/617
618: デフォルトの名無しさん [sage] 2020/01/13(月) 09:11:38 ID:a0NWv3WS >>607はAOJにあった島の数の問題じゃないの そうじゃなくてもぷよぷよは大抵コレでしょ http://mevius.5ch.io/test/read.cgi/tech/1573948822/618
619: デフォルトの名無しさん [] 2020/01/13(月) 12:20:35 ID:AM9JqLhx >>607 >>615だそうだが、既にほぼ書いてしまっていたから、完成させたのを載せる。 R https://ideone.com/eECxW1 http://mevius.5ch.io/test/read.cgi/tech/1573948822/619
620: デフォルトの名無しさん [] 2020/01/13(月) 14:02:08 ID:7B3b+WrT >>607 Java https://paiza.io/projects/qWcc4EhNNSHq8Jono0wgNg 回答は一応用意してました みんなUnionFind大好きだと思ったんだけど http://mevius.5ch.io/test/read.cgi/tech/1573948822/620
621: デフォルトの名無しさん [sage] 2020/01/13(月) 18:55:55 ID:7n+Qr/32 >>566 >>569 8087は、第3の実数フォーマット、一時実数を許している点でユニークである。 このフォーマットは、(符号が1ビット)、指数が15ビットで、有効数字が64ビットである。 このフォーマットで格納されている数値は、拡張精度数と言われている。 単精度および倍精度実数と異なり、一時実数は入力および出力値を表わすことを意図していない。 ・・・・(中略)・・・・・ それでは、何故80ビットではなく4倍精度すなわち128ビットを一時実数に使わなかったのか。 1つの理由は、4倍精度は少なくとも性能(速度)が半分になることである。 他の理由は、4倍精度を基本フォーマットとして用いると、中間結果のためにより長いフォーマットが必要となることである。 (後略) ・出典 J.F.パーマー・S.P.モース(著)「8087入門」啓学出版 (1985/Feb) 御牧 義 (訳) 2900円 第2章 データフォーマット、p.19-20 http://mevius.5ch.io/test/read.cgi/tech/1573948822/621
622: デフォルトの名無しさん [sage] 2020/01/13(月) 19:02:27 ID:7n+Qr/32 John F. Palmer, Ph.D. は8087の設計者、 Stephen P. Morse, Ph.D. は8086の設計者だそうな。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/622
623: デフォルトの名無しさん [sage] 2020/01/13(月) 19:38:23 ID:cBNIohlK x87で遊んでた頃は 将来は4倍精度とか8倍精度とかが当たり前になると思ってたけど まさか単精度や半精度の時代になるとは http://mevius.5ch.io/test/read.cgi/tech/1573948822/623
624: デフォルトの名無しさん [sage] 2020/01/14(火) 21:06:38 ID:vjAz2zAO >>581 AVX2 & FMA で作ってみました https://ideone.com/j44H0T 範囲チェックはしてません http://mevius.5ch.io/test/read.cgi/tech/1573948822/624
625: デフォルトの名無しさん [sage] 2020/01/14(火) 21:13:25 ID:vjAz2zAO 20命令で4個のdoubleのexpm1の計算が出来ます 8パラにしてレイテンシを隠蔽すれば 1個あたり2.5クロックくらい http://mevius.5ch.io/test/read.cgi/tech/1573948822/625
626: デフォルトの名無しさん [sage] 2020/01/15(水) 12:05:09 ID:z1LU+PP1 将来、行列演算もFPU化されると、逆行列の桁落ちが問題になるだろうな・・・・ それを見越して、入出力は64bitのまま内部演算だけ80bitにしたんぢゃね? http://mevius.5ch.io/test/read.cgi/tech/1573948822/626
627: デフォルトの名無しさん [sage] 2020/01/15(水) 13:12:03 ID:BnAK3ul/ 思想がどんなに優れてても使われなきゃしょうがない レジスタが8個しか無いから内部だけ80bitでもほとんど精度改善にならないし メモリに80bit保存するのも使いにくい 互換性の問題もあって コンパイラや最適化で値がかわってしまうのも都合が悪い だから演算にx87命令を使ったとしても内部64bit精度がデフォ x87全盛期に作られたSuperPIも64bit精度の演算を使ってる 80bit精度で計算すれば速度アップ出来るにも関わらず http://mevius.5ch.io/test/read.cgi/tech/1573948822/627
628: デフォルトの名無しさん [] 2020/01/15(水) 17:38:16 ID:xp2qVCg5 >>589 Ruby require 'prime' a=Prime.take(100) p ([0]+Prime.take(a.last)).values_at(*a) http://mevius.5ch.io/test/read.cgi/tech/1573948822/628
629: デフォルトの名無しさん [sage] 2020/01/15(水) 21:04:20 ID:/kpg6gtq お題: 9つの物がある。 重さが20以下で価値の合計が最大になる組み合わせを求めなさい。 (Part7から再出) [重さ, 価値] [ [3, 5], [5, 6], [6, 3], [3, 5], [5, 9], [2, 1], [7, 5], [4, 6], [8, 3], ] http://mevius.5ch.io/test/read.cgi/tech/1573948822/629
630: デフォルトの名無しさん [sage] 2020/01/15(水) 21:18:06 ID:1ZW9vAE3 ナップサック問題か http://mevius.5ch.io/test/read.cgi/tech/1573948822/630
631: デフォルトの名無しさん [sage] 2020/01/15(水) 21:27:46 ID:woCrNz65 重さ < 価値 となる物を集めると丁度重さが20だから これが解 http://mevius.5ch.io/test/read.cgi/tech/1573948822/631
632: デフォルトの名無しさん [] 2020/01/16(木) 21:02:25 ID:ZS18thyn 【お題】以下の31個の数の下6桁を求めよ。 20200101の1, 2, 3, ..., 20200101乗の総和 20200102の1, 2, 3, ..., 20200102乗の総和 20200103の1, 2, 3, ..., 20200103乗の総和 : 20200131の1, 2, 3, ..., 20200131乗の総和 http://mevius.5ch.io/test/read.cgi/tech/1573948822/632
633: デフォルトの名無しさん [sage] 2020/01/17(金) 06:54:23 ID:bFwt3c1k >>626 逆行列の計算は避けた方がいいってえらいひとがゆってた ttps://www.kyoritsu-pub.co.jp/bookdetail/9784320013438 http://mevius.5ch.io/test/read.cgi/tech/1573948822/633
634: デフォルトの名無しさん [] 2020/01/17(金) 12:14:19 ID:onsz9c/m >>629 16, 7: 0 0 1 0 0 1 0 0 1 17, 9: 0 0 0 0 0 1 1 0 1 18, 26: 1 1 0 1 1 1 0 0 0 19, 27: 1 1 0 0 1 1 0 1 0 20, 31: 1 1 0 1 1 0 0 1 0 http://mevius.5ch.io/test/read.cgi/tech/1573948822/634
635: デフォルトの名無しさん [sage] 2020/01/17(金) 18:26:22 ID:KcAYJrW8 >>632 C++ https://ideone.com/A0BeSs http://mevius.5ch.io/test/read.cgi/tech/1573948822/635
636: デフォルトの名無しさん [] 2020/01/17(金) 20:33:32 ID:VgNyCBhj >>635 正解。 Rによる2種類の解答例 (1) https://ideone.com/7B7IhY (2) https://ideone.com/Y8jx8o (1)は等比数列の総和の公式を利用しているので分かりやすいが、途中計算の最大値が (20200130 * 1000000 - 1) ^ 2 ≒ 2 ^ 88.4 になるかも知れず、64ビット整数の 範囲に収まらないため、Cでは手軽に書けない。Rでは多倍長整数パッケージgmpを 使って書ける。 (2)は部分和をちまちま足していく方式で、途中計算の最大値が (1000000 - 1) ^ 2 ≒ 2 ^ 39.9 で済むため、Cでも64ビット整数で計算できる。Rでも多倍長計算が必要な (1)より速い (正味の実行時間が(1)は0.016秒、(2)は0.004秒)。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/636
637: デフォルトの名無しさん [sage] 2020/01/17(金) 21:12:46 ID:KcAYJrW8 お題 f(n) = n^1 + n^2 + ... + n^n の時 f^20200117 (20200117) の下9桁を求めよ ※ f^n (x) = f(f(f(....f(x)))...) 【fがn個】 http://mevius.5ch.io/test/read.cgi/tech/1573948822/637
638: デフォルトの名無しさん [] 2020/01/18(土) 00:45:25 ID:meR2Lc88 >>629 Java https://paiza.io/projects/Qbx2Q0ZIlXetvF51BwoF_w http://mevius.5ch.io/test/read.cgi/tech/1573948822/638
639: デフォルトの名無しさん [] 2020/01/18(土) 05:21:08 ID:et7QELfi >>589 octave a=primes(5000); a(a(1:100)) http://mevius.5ch.io/test/read.cgi/tech/1573948822/639
640: デフォルトの名無しさん [] 2020/01/18(土) 22:25:47 ID:uIn7pF9I >>637 https://ideone.com/WvoPeq Rでは時間が掛かりすぎるのでコンパイラ言語を使うが、C/C++だと出題者と同じで つまらないから、Fortranで書いてみた。nが奇数の場合にしか求められないし、 合っているかどうか分からない。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/640
641: デフォルトの名無しさん [sage] 2020/01/18(土) 23:02:35 ID:/9q/+LXn >>640 正解 C++ https://ideone.com/09pUlf 312500はどうやって求めました? http://mevius.5ch.io/test/read.cgi/tech/1573948822/641
642: デフォルトの名無しさん [sage] 2020/01/18(土) 23:12:37 ID:/9q/+LXn >>641だと偶数でもOKです http://mevius.5ch.io/test/read.cgi/tech/1573948822/642
643: デフォルトの名無しさん [] 2020/01/18(土) 23:31:05 ID:uIn7pF9I >>641 時間は掛かるがRで下9桁の値を順々にいくつか求めて配列rに記録してから、 プロンプトで any(duplicated(r)) や which(duplicated(r)) と入力して 周期性を見つけただけ。理論的な根拠はない。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/643
644: デフォルトの名無しさん [sage] 2020/01/18(土) 23:34:38 ID:/9q/+LXn thx 周期が既知なら mod(20200117, 312500) 回だけで済むのでは? http://mevius.5ch.io/test/read.cgi/tech/1573948822/644
645: デフォルトの名無しさん [] 2020/01/18(土) 23:45:49 ID:uIn7pF9I >>644 まあそうだが、それではあまりにもマジックナンバーすぎるので、周期が本当に 312500であるかチェックするコードを31行目に念のため入れた。周期性が 確認できなければ、STOP Errorと表示してプログラムを中断する。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/645
646: デフォルトの名無しさん [sage] 2020/01/19(日) 00:38:02 ID:msO9WicL 【お題】 無向グラフGが入力として与えられ、Gがサイクルを持てば、 Gの中の最小サイクルの経路とそのコストを出力するプログラムをかけ *条件 ・グラフサイズ(頂点数)は10頂点程度(任意でよい) ・各辺の重みはランダムとする ・入力は隣接行列表現とする http://mevius.5ch.io/test/read.cgi/tech/1573948822/646
647: デフォルトの名無しさん [sage] 2020/01/19(日) 08:33:00 ID:r8dbXOf2 お題: 文字列aの真ん中に文字列bを挿入する関数chopを定義しなさい http://mevius.5ch.io/test/read.cgi/tech/1573948822/647
648: デフォルトの名無しさん [sage] 2020/01/19(日) 08:40:19 ID:dOSa/ZjO >>647 Ruby def chop(str); str.tap{|s| s[s.size / 2, 0] = ?b}; end puts chop('hogefuga') # => hogebfuga http://mevius.5ch.io/test/read.cgi/tech/1573948822/648
649: デフォルトの名無しさん [sage] 2020/01/19(日) 08:42:44 ID:dOSa/ZjO 問題誤読してた def chop(a, b) a.tap{|s| s[s.size / 2, 0] = b} end puts chop('hogehoge', 'HOGE') # => hogeHOGEhoge http://mevius.5ch.io/test/read.cgi/tech/1573948822/649
650: デフォルトの名無しさん [sage] 2020/01/19(日) 10:33:55 ID:9NcxNk8h お題 (>>346) 1〜1000 の整数の内、3の倍数または5の倍数であるものだけを選んで、その合計を求めよ。 http://mevius.5ch.io/test/read.cgi/tech/1573948822/650
651: デフォルトの名無しさん [sage] 2020/01/19(日) 10:37:40 ID:9NcxNk8h 3の倍数 [1000/3] = 333個 S(3) = 3+6+9+・・・・+999 = 333 * (3+999)/2 = 166833, 5の倍数 [1000/5] = 200個 S(5) = 5+10+15+・・・・+1000 = 200 * (5+1000)/2 = 100500, 3の倍数かつ5の倍数 (15の倍数) [1000/15] = 66個 S(15) = 15+30+45+・・・・+990 = 66 * (15+990)/2 = 33165, ∴ S(3) + S(5) - S(15) = 100500 + 166833 - 33165 = 234168. http://mevius.5ch.io/test/read.cgi/tech/1573948822/651
652: デフォルトの名無しさん [sage] 2020/01/19(日) 13:04:07 ID:CR4NZ4aH 15の倍数含めないんじゃないの? https://paiza.io/projects/EeMOFbswluii2y-uytbeqA http://mevius.5ch.io/test/read.cgi/tech/1573948822/652
653: デフォルトの名無しさん [sage] 2020/01/19(日) 18:23:22 ID:t01ujcAX >>629 Perl5 use List::Util qw{max}; $W = 20; $n = @wv = ([3, 5],[5, 6],[6, 3],[3, 5],[5, 9],[2, 1],[7, 5],[4, 6],[8, 3]); @w = map{$$_[0]} @wv; @v = map{$$_[1]} @wv; $wt[$n][$_] = 0 for 0..$W; for ($i = $n - 1; $i >= 0; $i--) { for $j (0..$W) { $ws = $wt[$i + 1][$j]; $ws = max($wt[$i + 1][$j - $w[$i]] + $v[$i], $ws) if $j >= $w[$i]; $wt[$i][$j] = $ws; } } print "価値合計最大: $wt[0][$W]\n"; $j = $W; for $i (0..$n-1) { $ws = $wt[$i][$j]; if ($wt[$i + 1][$j] != $ws) { print "[$w[$i], $v[$i]] "; $ws -= $v[$i]; for (; 0 <= $j; $j--) { last if $wt[$i + 1][$j] == $ws; } } } $ perl 16_629_nsp_dp.pl 価値合計最大: 31 [3, 5] [5, 6] [3, 5] [5, 9] [4, 6] http://mevius.5ch.io/test/read.cgi/tech/1573948822/653
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 349 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s