1 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 13:53:46 ID:jW5p6F/e.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part17 https://mevius.5ch.net/test/read.cgi/tech/1584031367/
577 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 06:23:31.29 ID:QICqPxzN.net] >>565 行末が数字のときに対応できない perl -pe 's/(\d+)(\D*)$/($1+1).$2/e' のほうがよくないかな
578 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 06:53:31.48 ID:5l49iFOd.net] >>520 その場合の良いアルゴリズムって 「素因数分解を早く解くアルゴリズム」 よね。 それがもし思いついたらフィールズ賞ものではw
579 名前:デフォルトの名無しさん [2020/09/18(金) 21:10:31.47 ID:JxxZTRpA.net] >>562 Java https://paiza.io/projects/X0KHD9cQEH8LTka6nmDd_w
580 名前:デフォルトの名無しさん [2020/09/18(金) 21:36:05.11 ID:JxxZTRpA.net] >>553 Java https://paiza.io/projects/ka8qfAJFIag1eovg263vzg
581 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:54:28.27 ID:WsEcPr9A.net] >>562 haskell theStr = "B0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO7PVcUS" f x = let (a,b) = span (\x-> (x<'0') || (x>'9')) $ reverse x c = show $ (+1) $ read $ return $ head b in reverse $ a++c++(tail b) main = do print $ f theStr
582 名前:デフォルトの名無しさん [2020/09/18(金) 23:21:52.09 ID:hhldwLbP.net] >>567 そうだった。 + じゃなくて * だったな。
583 名前:253 mailto:sage [2020/09/18(金) 23:34:45.95 ID:/yEGF/vF.net] >>568 素因数分解まで行かない。 素でなくてもいいので因数のうちイチバン大きいもの。 なんかいい解法見つけられないか、考えているけどいまのところ見出せていない
584 名前:253 mailto:sage [2020/09/18(金) 23:36:27.35 ID:/yEGF/vF.net] いや、違うな… 因数のうちイチバン大きいものでは、ダメだわ
585 名前:デフォルトの名無しさん [2020/09/19(土) 00:05:40.30 ID:HLFklpM8.net] >>562 C https://paiza.io/projects/IEDhYc83EDXZuCbsxf_QUg 正規表現を使わずに行末から一文字づつ行頭に向かって検索してやっている。
586 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 00:59:21.89 ID:HX0Lirqs.net] √n以上の最小の約数
587 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 12:14:05.54 ID:iLwsU5Ay.net] 初出題 数学板の問題より 5つのサイコロの1〜6の面がそれぞれ赤白黄青緑にそれぞれ ["byrbwg", "yrgwbb", "gbrwwy", "gyrbww", "gbrybw"] と塗り分けられている この状態では1-6を天地の軸として2〜5の側面にはそれぞれ ["yrbyb","rgrrr","bwwby","wbwwb"] となっている それぞれのサイコロを適当に回転させて全ての側面にrwybgがちょうど一回ずつとなるようにしたい そのような回転の組み合わせは何通りか 本質的に同じものを重複して数えるのを避けるために最初のサイコロの回転は ・動かさない ・1→2,2→3,3→1,4→6,5→4,6→5 ・1→3,2→1,3→2,4→5,5→6,6→4 の3つのうちどれかのみを許すとする (出力) ["yrbgbw","gbybrw","bgwryw","bygwwr","bwrygb"] ["yrbgbw","gbybrw","wywrgb","rwgwyb","bgrywb"] ["rbywgb","gyrbbw","wwgyrb","ygbrww","brwgyb"] ["rbywgb","wybrbg","wwgyrb","wgrbwy","brwgyb"]
588 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 15:12:41.86 ID:BWMKzapi.net] https://rio2016.5ch.net/test/read.cgi/math/1598637093/133- わけわからん問題文にするなよ・・・
589 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 16:07:21.18 ID:wSOXcncc.net] 全然違って草
590 名前:デフォルトの名無しさん [2020/09/19(土) 16:29:35.90 ID:HLFklpM8.net] >>577 君が何を言わんとしているのかが全くわからない。
591 名前:253 mailto:sage [2020/09/19(土) 17:15:41.66 ID:6KnxgpBj.net] >>518 Perl5、>>576 にヒントを貰った通り√を使ってnaiveに書くと… use POSIX 'ceil'; for $n (81, 87, 91) { $r = ceil sqrt $n; for ($r..$n) { $i = $_; last until $n % $_; } print "$n => $i\n" } 実行結果 ~ $ perl 18_509_99_naive.pl 81 => 9 87 => 29 91 => 13 計算量の少ないもう少しカッチョイイ方法を見出せればなぁ…
592 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 21:37:57.70 ID:HX0Lirqs.net] >>577 です やはりちょっと伝わらないですね >>577 は取り下げます
593 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 21:39:46.15 ID:HX0Lirqs.net] >>581 計算量減らすなら√n以下の最大の約数d求めてn/dを出力すれば計算量は減るな
594 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 21:40:46.29 ID:wSOXcncc.net] 減るというかそもそも計算量が同じというか
595 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 21:46:21.17 ID:HX0Lirqs.net] イヤnが素数の場合に√nから上むきに探索すると計算量はnになるけど下向きなら√nになる √n以上の約数と√n以下の約数は同数だけど整数そのものは下側には√nしかなく、上にはn-√nあるので下向きに探していった方が速い
596 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 00:25:54.87 ID:ZGoKBb8Y.net] ポラード・ロー法使えばもっと計算量は減る 素数判定と組み合わせればモンテカルロ法ではなくラスベガス法になるから、正当性も担保される
597 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 01:39:54.18 ID:wHMtOvf4.net] 素因数分解利用するなら素因数分解そのものが手早くできてもダメでしょ? それを何個か使って最も√nに近いもの探すのはかなり難しいんじゃなかったっけ? つまり素因数分解n=Πpi^eiが与えられたとして、つぎは 0≦xi≦eiを動かすときΣxi log(pi) が1/2 log(n)に最も近くなるものを決定しなければならない コレなんか名前ついてる問題で指数オーダーのアルゴリズムしか見つかってないんじゃなかったっけ? 素因子の数はlog(n)のオーダーで増えていくから、結局exp(c log(n)) のオーダーになって、cがどれくらいに収められるか、そもそも指数オーダー必要なのかも未解決なんじゃなかったっけ?
598 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 06:22:49.81 ID:OZ4qNDWZ.net] >>585 素数判定はそもそも計算量少ない
599 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 10:19:03.22 ID:mk/D54YH.net] >>588 √n以上の最小の約数をdとして上むき探索に必要な時間はすうがく/d-√n\、下向き探索のそれは\√n-n/d/ (/〜\と\〜/はfloorとceiling) 差は/d-√n\-\√n-n/d/ =\d+n/d-2√n/はam≧gmと\〜/の広義単調性から0以上で上むき探索は素数であるか否かに限らず常に計算量は同じかそれ以上 素数であるか予備検査しても結局上向きに探索したら計算量は同じ以上かかる
600 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 10:50:48.99 ID:g28HruB5.net] あ、間違えた 上向き探索の探索量はd-/√n\+1=/d-√n+1\で/~\はceiling 下向き探索の探索量は\√n/-n/d+1=\√n-n/d+1/で\~/はfloor まぁ常に上向きの方が計算量は増える まぁもちろんnをまともに素因数分解して>>587 みたいな方法で√nオーダーより真に早いのがあるなら上向きも下向きもないけど、もうそこまで行ったら研究者レベルの話でしかない気がする
601 名前:デフォルトの名無しさん [2020/09/20(日) 11:23:17.24 ID:MLu0Cj9r.net] >>559-560 短いこの間でダークサイドに堕ちてて草
602 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 11:58:05.82 ID:FaUtZa6z.net] >>591 お詫び→弁解→言い訳→逆ギレ 冷静に書いてたつもりが書いてくうちに興奮して見事なコンボを決めたようだ
603 名前:デフォルトの名無しさん [2020/09/20(日) 12:47:09.77 ID:MLu0Cj9r.net] 感情豊かでかわいいw
604 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 12:59:00.77 ID:wHMtOvf4.net] 気分を変えてまた数学板より 自然数nに対して格子点の集合{(a,b) | a,bは1〜nの整数}の中の相異なる4点の組みで同一円周上に並ぶものの個数を数え上げよ n:1〜8では [0,1,14,194,826,2491,6364,14564] のハズ
605 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 13:05:52.02 ID:wHMtOvf4.net] >>594 ちなみにn=3の場合の14個は 1×1の正方形:4個 2×2の正方形:1個 √2×√2の正方形:1個 2×1の長方形:4個 4辺が1,1,√2,2√2の等脚台形:4個 の14個
606 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 18:36:43.29 ID:XyOg3AIQ.net] >>594 https://ideone.com/L3IoWm {0,1,14,184,762,2257,5704,13040}と出たんだが どっちが合ってる?
607 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 18:44:44.75 ID:XyOg3AIQ.net] 一直線上にある4点の組を余分に数えたところ >>594 の解と一致した https://ideone.com/GUZoZL
608 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 18:56:48.73 ID:wHMtOvf4.net] あ、ホントだ失礼しました
609 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 19:10:27.22 ID:wHMtOvf4.net] [0,1,14,184,762,2257,5704,13040] が正解ですね https://ideone.com/YULQQ4
610 名前:デフォルトの名無しさん [2020/09/20(日) 22:46:33.41 ID:9sb+TTLg.net] >>594 問題がわからない。
611 名前:デフォルトの名無しさん mailto:sage [2020/09/21(月) 00:11:09.46 ID:ZXxiMs6i.net] >>600 n=3だと ●●◯ ◯●● ◯◯◯ ◯◯◯ ●●◯ ◯●● ●●◯ ◯●● ◯◯◯ ◯◯◯ ●●◯ ◯●● ●◯● ◯◯◯ ●●◯ ◯●● ●◯● ●◯● ◯◯◯ ◯◯◯ ◯◯◯ ●◯● ●●◯ ◯●● ●●◯ ◯●● ◯◯● ●◯◯ ◯◯● ●◯◯ ◯◯● ●◯◯ ◯◯● ●◯◯ ●●◯ ◯●● ●◯● ◯●◯ ◯◯◯ ●◯●
612 名前: ●◯● ◯●◯ の14通り [] [ここ壊れてます]
613 名前:デフォルトの名無しさん mailto:sage [2020/09/21(月) 11:36:08.07 ID:VFD1LGbi.net] >>594 のお題は、 平面上に4点を選んだとき、その4点をすべて含む円周が存在する場合としない場合がある xy平面上に、x,yの各座標が1〜nの整数であるような、互いに異なる点を4つ選んだとき、4点すべてを含む円周が存在するものがいくつあるか? n=1〜8についてそれぞれ数え上げよ (註:n=1のときは異なる4点を選べないので、解は0でよい) ってことでいいかな?
614 名前:デフォルトの名無しさん mailto:sage [2020/09/21(月) 13:45:14.08 ID:tVxoOCVr.net] >>601 n=4 のときの184通り imgur.com/GNuPa4z.png
615 名前:デフォルトの名無しさん mailto:sage [2020/09/21(月) 14:54:29.54 ID:/KyZWHiy.net] >>603 正解だと思う おそらくn=9までは [0,1,14,184,762,2257,5704,13040,25996] 今作ってるのはC[n^2,4]を全数検査してるのでO(n^8)で計算量増えるので二桁以上はしんどいorz
616 名前:デフォルトの名無しさん [2020/09/22(火) 00:03:46.43 ID:jIz1rAqD.net] 誰かフォルダにパスワード駆ける方法教えてくれ
617 名前:253 mailto:sage [2020/09/22(火) 02:15:18.79 ID:jDcMk3G3.net] 対象性を考慮する以外の計算量の削減手段はないのかねこの手の問題は 解決すべき課題は計算量の削減ばかりではないだろうけれどさ
618 名前:デフォルトの名無しさん mailto:sage [2020/09/22(火) 09:28:15.64 ID:yucbsR+t.net] まぁ何に重きを置くかですな 数学板でこの手のプログラムが必要になるのは誰も答え持ってなくて、一応答えは出てるけど確認したいときとか その時は速度より“確実に正しい”事の方が重要になる この場合も対称性やら、明らかに無駄な可能性を排除すれば速度は上がるけど“確実に正しい”のかは怪しくなってしまう 実務でプログラム使う人もその辺のtpoは意識してるのでは?、 コード汚くても高速な奴も募集中
619 名前:デフォルトの名無しさん mailto:sage [2020/09/22(火) 11:56:55.93 ID:LgsCAwYw.net] >>603 に挙げられている184通りのうち、その3/4にあたる138通りが、直径が√10のものである そのうち、円の中心が図の中央にあるものは、候補となる点が8個あるので、8C4 = 70 通りある。 図の中央から(±1,0)または(0,±1)ずれたものは、候補となる点が6個なので4×(6C4)=60通り 図の中央から(±2,0)または(0,±2)ずれたものが、候補となる点が4個なので4×(4C4)=4通り 図の中央から(±1,±1)ずれたものが、候補となる点が4個なので4×(4C4)=4通り 合わせて 70+60+4+4=138 通りと数え上げることができる 図の中央を基準にすることができるものばかりとは限らないところには注意が必要だが 総当たりよりは効率化が見込めると思われる。
620 名前:253 mailto:sage [2020/09/28(月) 22:51:28.57 ID:mT2w1+AU.net] >>518 Python3, >>585 を参考に計算量を√nに減らした解法 import math for n in [81, 87, 91, 13]: s = math.sqrt(n) f = n for i in reversed(range(2, 1 + math.floor(s))): q, m = divmod(n, i) if m == 0: f = q; break print(n, '=>', f) 実行結果 ~ $ python 18_509_99_rootn.py 81 => 9 87 => 29 91 => 13 13 => 13 もっとスマートな解法を考えていると双曲線を意識した解法を意識してしまうが、 簡単には解けない数学の問題に突き当たると思う
621 名前:253 mailto:sage [2020/09/28(月) 22:53:47.02 ID:mT2w1+AU.net] >>609 × 意識した解法を意識してしまうが、 ○ 意識した解法を思い浮かべてしまうが、
622 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 18:23:40.44 ID:TPx3FsW2.net] お題: バブルソートを実装せよ
623 名前:253 mailto:sage [2020/09/29(火) 23:24:18.49 ID:219xwwXO.net] >>611 プログラミングのお題スレ Part13 mevius.5ch.net/test/read.cgi/tech/1549160513/231
624 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 20:15:38.19 ID:rtPyMlCZ.net] 古参はここで「番兵おけやボケェ!」と言う
625 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 01:25:55.75 ID:cJ6xF5hb.net] お題: アッカーマン関数の引数が与えられるので、計算過程を1ステップずつ出力してください 入力: 2 1 出力: A(2, 1) A(1, A(2, 0)) A(1, A(1, 1)) A(1, A(0, A(1, 0))) A(1, A(0, A(0, 1))) A(1, A(0, 2)) A(1, 3) A(0, A(1, 2)) A(0, A(0, A(1, 1))) A(0, A(0, A(0, A(1, 0)))) A(0, A(0, A(0, A(0, 1)))) A(0, A(0, A(0, 2))) A(0, A(0, 3)) A(0, 4) 5
626 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 11:20:33.49 ID:iee67Noq.net] >>614 Haskell astr m n = "A(" ++ m ++ "," ++ n ++ ")" ack' 0 n = (n+1, [astr (show 0) (show n), (show $ n+1)]) ack' m 0 = let (val, ss) = ack' (m-1) 1 in (val, (astr (show m) (show 0)) : ss) ack' m n = let (val1, ss1) = ack' m (n-1) (val2, ss2) = ack' (m-1) val1 ss = [astr (show $ m-1) s | s <-ss1] ++ (tail ss2) in (val2, (astr (show m) (show n)):ss) ack m n = map (++"\n") $ snd $ ack' m n main = do [x,y]<-(return.(map read).words)=<<getLine mapM_ putStr $ ack x y
627 名前:デフォルトの名無しさん [2020/10/01(木) 12:09:11.51 ID:OaA9a4hN.net] Haskellでもこんな長くなるの?
628 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 12:15:24.40 ID:O+PWz9pR.net] >>616 いや、上手な人ならもっと上手くやるはず アホほどライブラリがあってそれ使えば楽々のハズだけど修行中の身ではこんなもんorz
629 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 14:04:34.18 ID:Am+nhG+G.net] >>615 ちょっとチューンナップ 達人なら***とか>>>とか意味わからん演算子使ってもっとスッキリ書くんだろうけどアホほどあって使いこなせんorz haskell ---- astr m s = "A(" ++ (show m) ++ "," ++ s ++ ")" ack 0 n = [astr 0 $ show n, show $ n+1] ack m 0 = (astr m $ show 0) : ack (m-1) 1 ack m n = let ss1 = ack m (n-1) in [astr m $ show n] ++ (map (astr (m-1)) ss1) ++ (tail $ ack (m-1) (read $ last ss1)) main = do [x,y]<-(return.(map read).words)=<<getLine mapM_ ((putStr).(++"\n")) $ ack x y
630 名前:蟻人間 mailto:sage [2020/10/02(金) 19:50:35.06 ID:gQLwfaGp.net] お題: 野球のボールの動きを物理シミュレートして、ピッチャーの投げてきたボールをより遠くにかっ飛ばすバッターAIを開発せよ。
631 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 20:54:50.29 ID:tP403VLl.net] カーブやシュートも再現しろよ
632 名前:253 mailto:sage [2020/10/02(金) 21:41:56.95 ID:kl4hmyt8.net] >>619 ─┼─┐─┼─ / ,. `゙''‐、_\ | / / │ │─┼─/| _,.イ,,.ィ' ─────‐‐‐ * ←>>蟻人間 │ |ツ │ | | | イン /´⌒`ヽ // | \ {, リ) / ./ | \ __ /}从、 リ( / / | ,. ,. -‐===‐- `つ/ ,.イ ’^ソハノリ / ∵|:・. 〃〃〃〃 //ミノ__ /´ /∴・|∵’ ヽ_I__I__I__I__I_I __ノ_/ / ヽミ、、 .∵.;|∵’:; ー{____,,二二二ニ) ノΘ(__ ) ゙ 、∵.;|∵’, /I I I I I I .^^^' \ !  ̄フ ゙ 、 |∴ ソ / ` ノ⌒ヽ') / ノ/ / /\/ ∧/ / ', / / ノ./ ./ ', ノ/ ヘ__、 ./ / ̄ ̄ ̄ヽ .', ヘ_'_, / \ / ', / \/ ', ゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙ ゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙
633 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 21:46:15.88 ID:JDxjQVnw.net] ナイス
634 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 22:04:39.76 ID:jsz+6t1Q.net] >>621 くっそワロタ
635 名前:253 mailto:sage [2020/10/03(土) 01:10:19.52 ID:io8Ij0O0.net] >>614 Perl5 use feature qw{signatures say}; no warnings 'experimental'; sub A($m, $n, $l, $r) { say "${l}A($m, $n)$r"; $m ? $n ? A($m-1, A($m, $n-1, "${l}A(".($m-1).', ', ")$r"), "${l}A(".$m.', ', ")$r") : A($m-1, 1, "${l}A(".($m-1).', ', ")$r") : $n + 1; } say A(2, 1, '', ''); 実行結果 ~ $ perl 18_605_Ackermann_func.pl A(2, 1) A(1, A(2, 0)) A(1, A(1, A(1, 1))) A(1, A(1, A(0, A(1, 0)))) A(1, A(1, A(0, A(0, A(0, 1))))) A(1, A(1, A(1, A(0, 2)))) A(2, A(1, 3)) A(2, A(0, A(1, 2))) A(2, A(0, A(0, A(1, 1)))) A(2, A(0, A(0, A(0, A(1, 0))))) A(2, A(0, A(0, A(0, A(0, A(0, 1)))))) A(2, A(0, A(0, A(1, A(0, 2))))) A(2, A(0, A(1, A(0, 3)))) A(2, A(1, A(0, 4))) 5
636 名前:253 mailto:sage [2020/10/03(土) 01:13:51.37 ID:io8Ij0O0.net] なんかBugってる…orz
637 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 12:07:42.48 ID:xbar0BlH.net] >>614 perl5 https://ideone.com/pRMAjA s///e でいける
638 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 12:20:08.70 ID:nr2+4P+J.net] perlの正規表現マジック恐ろしや
639 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 12:37:17.41 ID:MOu6VxbM.net] >>626 すげえな ほとんどワンライナーだ
640 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 12:46:20.34 ID:ul2MWjNf.net] そうなのよね 入力もらって表示→ワンステップだけ展開して戻る の繰り返しが1番楽なんだけどなぁ
641 名前:253 mailto:sage [2020/10/03(土) 14:01:25.06 ID:5WkJC33J.net] >>614 Perl5、>>624 を修正。 >>626 あら正規表現で書けちゃうのかイナ… use feature qw{signatures say}; no warnings 'experimental'; sub A($m, $n) { $m ? $n ? do{ my ($m2, $n2) = ($m-1, $n-1); push @$l, "A($m2, "; push @$r, ')'; say @$l, "A($m, $n2)", @$r; A($m2, A($m, $n2)) } : do{ my ($m2, $n2) = ($m-1, 1); say @$l, "A($m2, $n2)", @$r; A($m2, $n2)} : do{ my $s = $n + 1; say @$l, $s, @$r; pop @$l; pop @$r; $s }; } ($m, $n) = (2, 1); say "A($m, $n)"; A($m, $n); 実行結果 $ perl 18_605_Ackermann_func.pl A(2, 1) A(1, A(2, 0)) A(1, A(1, 1)) A(1, A(0, A(1, 0))) A(1, A(0, A(0, 1))) A(1, A(0, 2)) A(1, 3) A(0, A(1, 2)) A(0, A(0, A(1, 1))) A(0, A(0, A(0, A(1, 0)))) A(0, A(0, A(0, A(0, 1)))) A(0, A(0, A(0, 2))) A(0, A(0, 3)) A(0, 4) 5
642 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 18:00:38.18 ID:WWjeAKvH.net] >>614 ocaml https://ideone.com/dqTO60 let (>>) f g x = g (f x) let rec a m n p = let () = p (Printf.sprintf "A(%d, %d)" m n) in if m = 0 then n + 1 else if n = 0 then a (m - 1) 1 p else a (m - 1) (a m (n - 1) (Printf.sprintf "A(%d, %s)" (m - 1) >> p)) p let () = print_int (a 2 1 print_endline) ↓ A(2, 1) A(1, A(2, 0)) A(1, A(1, 1)) A(1, A(0, A(1, 0))) A(1, A(0, A(0, 1))) A(1, A(0, 2)) A(1, 3) A(0, A(1, 2)) A(0, A(0, A(1, 1))) A(0, A(0, A(0, A(1, 0)))) A(0, A(0, A(0, A(0, 1)))) A(0, A(0, A(0, 2))) A(0, A(0, 3)) A(0, 4) 5
643 名前:デフォルトの名無しさん mailto:sage [2020/10/07(水) 20:33:26.90 ID:0TsEuxhN.net] >>614 octave https://ideone.com/50i12U function c = a(m, n, p) p(sprintf('A(%d, %d)', m, n)); if m == 0 c = n + 1; elseif n == 0 c = a(m - 1, 1, p); else c = a(m - 1, a(m, n - 1, @(s) p(sprintf('A(%d, %s)', m - 1, s))), p); end end disp(a(2, 1, @disp));
644 名前:253 mailto:sage [2020/10/08(木) 02:27:24.66 ID:Gy7CYzaJ.net] 藻前ら、なかなかやるなー 気に入った。
645 名前:蟻人間 mailto:sage [2020/10/08(木) 13:59:34.65 ID:N89hoMl4.net] お題: ax**2+b*x+c==0という形の二次方程式を解き、全ての実数解と実数解の個数を表示する。
646 名前:デフォルトの名無しさん mailto:sage [2020/10/08(木) 15:03:23.36 ID:eK30Q5Ei.net] 実数解はルートを含んだ形でいいのか? あるいは小数点以下何桁まで正確に求めるのか?
647 名前:蟻人間 mailto:sage [2020/10/08(木) 15:04:48.84 ID:N89hoMl4.net] >>635 浮動小数点数でいいよ。
648 名前:デフォルトの名無しさん mailto:sage [2020/10/08(木) 21:36:29.64 ID:Q4ykcHSC.net] >>633 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( ´∀`)< オマエモナー ( ) \_____ | | | (__)_)
649 名前:蟻人間 mailto:sage [2020/10/09(金) 13:26:20.64 ID:pUAVGuih.net] お題:計算ができる文章テンプレートを実装し、つるかめ算を自動生成せよ。 文章テンプレートの例: 「ツルとカメが合わせて{$(ツルの数)+$(カメの数)}います。 足の合計本数が{$(ツルの数)*2+$(カメの数)*4}本です。 カメは何匹いますか。」 変数は「$(変数名)」のように表し、その具体的な値は入力として与えられる。 計算式は{ }で囲って表す。 計算式は変数や定数、加減乗除の演算子、または丸カッコを含むことができる。 入力の例:「ツルの数=3, カメの数=4」
650 名前:デフォルトの名無しさん [2020/10/09(金) 14:02:14.80 ID:/NdRCF04.net] >>634 js function quadraticWithCount(a, b, c) { const inSqrt = b ** 2 - 4 * a * c if (inSqrt < 0) return [[], 0] const l = - b / (a * 2) if (inSqrt === 0) return [[l], 1] const r = Math.sqrt(inSqrt) / (a * 2) return [[l - r, l + r], 2] } console.log(quadraticWithCount(3, -2, -1)) console.log(quadraticWithCount(3, 6, 3)) console.log(quadraticWithCount(1, 2, 3)) // [ [ -0.3333333333333333, 1 ], 2 ] // [ [ -1 ], 1 ] // [ [], 0 ]
651 名前:蟻人間 mailto:sage [2020/10/09(金) 14:14:06.07 ID:LR5flFjI.net] >>638 追記: パーサーを作れない人はevalを用いても構わない。
652 名前:デフォルトの名無しさん [2020/10/09(金) 14:14:59.57 ID:/NdRCF04.net] >>634 js 改善 function quadratic(a, b, c) { const rt = Math.sqrt(b ** 2 - 4 * a * c) return [(-b + rt) / (2 * a), (-b - rt) / (2 * a)] } function quadraticReal(...abc) { const ans = quadratic(...abc) const [a1, a2] = ans if (isNaN(a1)) return [] if (a1 === a2) return [a1] return ans } const quadraticRealWithCount = (...abc) => addCount(quadraticReal(...abc)) const addCount = a => [a, a.length] console.log(quadraticRealWithCount(3, -2, -1)) // [ [ 1, -0.3333333333333333 ], 2 ] console.log(quadraticRealWithCount(3, 6, 3)) // [ [ -1 ], 1 ] console.log(quadraticRealWithCount(1, 2, 3)) // [ [], 0 ]
653 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 17:52:52.10 ID:gniylpO4.net] >>638 Ruby ツルの数 = 3 カメの数 = 4 Template =<<_EOT_ 「ツルとカメが合わせて{$(ツルの数)+$(カメの数)}います。 足の合計本数が{$(ツルの数)*2+$(カメの数)*4}本です。 カメは何匹いますか。」 _EOT_ puts Template.gsub( /\{(.*?)\}/ ){ eval $1.gsub( /\$\((.*?)\)/ ){ $1 } }
654 名前:253 mailto:sage [2020/10/09(金) 22:43:14.04 ID:/QeZd0d9.net] >>638 Perl5 use utf8; no warnings 'utf8'; $ツルの数 = 3; $カメの数 = 4; print <<EOF 「ツルとカメが合わせて@{[${ツルの数}+${カメの数}]}います。 足の合計本数が@{[${ツルの数}*2+${カメの数}*4]}本です。 カメは何匹いますか。」 EOF 実行結果 ~ $ perl 18_633_ツルの数+カメの数.pl 「ツルとカメが合わせて7います。 足の合計本数が22本です。 カメは何匹いますか。」
655 名前:蟻人間 mailto:sage [2020/10/09(金) 23:14:45.18 ID:LR5flFjI.net] お題: 2つのRGBカラーが#RRGGBB形式で与えられる(RRGGBBは六桁の十六進数とする)。 2つの中間色を#RRGGBB形式で出力せよ。 可能ならばこれら3つの色をカラーバーとして表示せよ。
656 名前:蟻人間 mailto:sage [2020/10/09(金) 23:26:06.11 ID:LR5flFjI.net] >>644 入力例1: #112233, #99AAFF 入力例2: #AD03ff, #a39e75
657 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 23:55:14.23 ID:ACx6TREf.net] >>644 ,645 自明な入力例だけを示しても、出力例も出さないと意味ないだろう。 2色の中間色ってのが曖昧じゃね? 単にR,G,Bそれぞれの平均を取るだけなのか、赤と紫の中間が赤紫になるように循環する色相で中間をとるのかとか。
658 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 02:56:37.74 ID:KFXrJR76.net] 問題が玉石混合だなぁ
659 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 07:06:51.16 ID:PdovQueR.net] >>643 >変数は「$(変数名)」のように表し、
660 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 07:45:17.48 ID:nh4sk35x.net] お題: 20201010と出力してください。ただしコードに使っていい数字は1のみです。
661 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 08:25:49.31 ID:qt6u2bFw.net] >>649 python a=1;b=a+a;c=a-a print(b,c,b,c,a,c,a,c,sep='') #出力20201010
662 名前:デフォルトの名無しさん [2020/10/10(土) 10:53:30.16 ID:nh4sk35x.net] >>649 自分で js const t = ` `.charCodeAt() console.log(t + t + "" + (t + t) + t + t) const m = "ϲ".charCodeAt() console.log(m + m + "" + m)
663 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 12:06:27.17 ID:0z4oJBva.net] >>649 js本日限定 new Date().toLocaleDateString().split(/-|\//).join`` //=> "20201010"
664 名前:デフォルトの名無しさん [2020/10/10(土) 14:54:47.61 ID:iOujIiR/.net] >>647 ×こんごう ○こんこう
665 名前:デフォルトの名無しさん [2020/10/10(土) 14:57:00.84 ID:iOujIiR/.net] >>649 Java https://paiza.io/projects/8QZuxNJ_iMGrfafT8HlLGw
666 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 15:40:40.94 ID:Duwb5Fsi.net] >>654 012にOIZ使うのセンスある
667 名前:デフォルトの名無しさん [2020/10/10(土) 18:37:22.80 ID:jNM1f0U4.net] >>649 C https://ideone.com/5BGavX
668 名前:デフォルトの名無しさん [2020/10/10(土) 18:54:45.98 ID:V01gi3BN.net] >>656 Windowsでもそのままでいけるのか?
669 名前:蟻人間 mailto:sage [2020/10/10(土) 19:24:31.52 ID:c6WyhNHP.net] お題: 振動数1000Hzの音を1秒間発振せよ。
670 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 19:32:24.80 ID:53GLINoh.net] >>649 c https://ideone.com/DbqsXs
671 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 19:46:18.01 ID:LCYuVeVr.net] haskell import Data.Maybe main = print $ product $ map ((fromJust).(flip lookup (zip ['\t'..] [1..]))) "&myC"
672 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 21:44:48.33 ID:0z4oJBva.net] >>658 js var ctx = new window.AudioContext var osc = ctx.createOscillator() osc.type = 'sine' osc.frequency.value = 1000 osc.connect(ctx.destination) osc.start() osc.stop(1)
673 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:07:21.98 ID:t1LUP7rm.net] >>649 haskell 改良 unicode = length . tail . (enumFromTo minBound) main = print $ product $ map unicode "ാᝇ"
674 名前:デフォルトの名無しさん [2020/10/10(土) 23:18:40.46 ID:iOujIiR/.net] >>644 Java https://paiza.io/projects/taHgDigIq_C5KjS66xaCfQ https://dotup.org/uploda/dotup.org2277678.png
675 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:16:06.04 ID:6GsmNhIZ.net] >>649 JavaScript [1+1,1-1,1+1,1-1,1,1-1,1,1-1].reduce((acc,n)=>acc+n,'')
676 名前:デフォルトの名無しさん [2020/10/11(日) 01:54:01.50 ID:eYi6TEVp.net] >>614 Java https://paiza.io/projects/IVaRnsx6lYLlO1CcbniO-Q
677 名前:デフォルトの名無しさん [2020/10/11(日) 08:58:57.96 ID:luIvAMCe.net] >>649 J smoutput ,&":/ 'amp' i. 'papamama'
678 名前:デフォルトの名無しさん [2020/10/11(日) 11:20:41.53 ID:eXVrSXVr.net] >>649 bash aa=1; bb=$((aa-aa)); cc=$aa$bb$aa$bb; printf "%d" $((cc+cc)) $cc; echo
679 名前:デフォルトの名無しさん [2020/10/11(日) 17:59:24.67 ID:/6XslNRS.net] >>638 Perl https://paiza.io/projects/wfQXB4arB2zbu4DNYEiU5w eval が使えて楽なので、つい。
680 名前:デフォルトの名無しさん [2020/10/11(日) 18:12:54.16 ID:eYi6TEVp.net] >>611 Java https://paiza.io/projects/2bTy71EhJJcVemamRx8IPA
681 名前:デフォルトの名無しさん [2020/10/11(日) 19:16:59.76 ID:/6XslNRS.net] >>644 Kotlin https://paiza.io/projects/O1eUwROYKRQepDq3N-VyUA paiza.io はHTMLで出力させてブラウザに表示できるのでカラーバーも出してみました。
682 名前:デフォルトの名無しさん [2020/10/11(日) 19:36:20.38 ID:eYi6TEVp.net] これは良いこと聞いた
683 名前:デフォルトの名無しさん [2020/10/11(日) 19:48:34.94 ID:ki6dTuuo.net] >>649 Common Lisp (SBCL, 処理系依存) https://ideone.com/nImAgj
684 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 20:05:13.72 ID:FQjAt+Dq.net] >>672 かわいい
685 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 20:30:57.80 ID:vt3DXswM.net] >>649 brainfuck >+++++++[<+++++++>-]<+.--.++.--.+.-.+.-.
686 名前: mailto:sage [2020/10/11(日) 23:30:32.44 ID:A2vGg89g.net] >>614 C(C++) https://mevius.5ch.net/test/read.cgi/tech/1434079972/70
687 名前:蟻人間 mailto:sage [2020/10/11(日) 23:57:26.40 ID:4cQ/GxGI.net] お題: 整数0〜10の一様分布の乱数を百回発生させて、その統計結果を基に各整数を横軸、回数を縦軸とする棒グラフ(ヒストグラム)を描画し(棒の最大幅32字)、ほぼ一様であることを確かめなさい。
688 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 23:59:14.77 ID:B+MSoWxK.net] paiza.io は、text, html, json で出力できるのか html も、部分的なタグだけを書いても動くのか
689 名前:蟻人間 mailto:sage [2020/10/12(月) 00:01:01.03 ID:rx5xRSFU.net] >>676 訂正。 (誤)各整数を横軸、回数を縦軸とする棒グラフ (正)各整数を縦軸、回数を横軸とする棒グラフ
690 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 01:06:07.97 ID:eqKg5iqj.net] haskell import Data.List import System.Random trial records = do x <- randomRIO (0, 1) :: IO Double return $ (truncate $ x * 11) : records experience = iterate (>>= trial) (return [0..10]) showrecord (x,y) = let clsstr = id $ reverse $ take 2 $ ( ++ (repeat '0')) $ reverse $ show x barstr = replicate y '*' in concat [ clsstr," ", barstr,"\n"] main = do records <- experience !! 100 putStr $ id $ concat $ map showrecord $ map (\x -> (head x, length $ tail x)) $ group $ sort $ records
691 名前:デフォルトの名無しさん [2020/10/12(月) 01:14:47.03 ID:hVCmG980.net] >>649 Kotlin https://paiza.io/projects/32aoQfPBUWZ0tnk2E5fg2g ちょっと変わった感じにしようと思ってこうした。
692 名前:デフォルトの名無しさん [2020/10/12(月) 08:18:41.49 ID:fHHXzdlp.net] >>676 二項分布になるんじゃないかなあ
693 名前:デフォルトの名無しさん [2020/10/12(月) 16:10:06.27 ID:Wx/lfAmjI] 「頭使えよ貧乏人」に思う、寝てても金入るシステムを作る人 https://www.youtube.com/watch?v=VEB6M_s6abs バカ不平多し★へつらい生きてるからリストラ対象 https://www.youtube.com/watch?v=carOYI-xNoI 勝ちは偶然、負けは必然★負けて消えた人に足りなかったものは? https://www.youtube.com/watch?v=agAQTF1OaBU&t=38s リーダー達の給料が高いのは単純労働者じゃないから https://www.youtube.com/watch?v=8o9il6dVXGk できません、自信がありません、無理です★ボンクラにしたのは誰? https://www.youtube.com/watch?v=54YNXSQsxuM 稼げない人へ★
694 名前:報商材こそ稼げない分野が分かる https://www.youtube.com/watch?v=x_2nSmlx3og 9割の人は、ただの作業員★自学自習こそ仕事の基本 https://www.youtube.com/watch?v=vIGKDmmBJcs サラリーマン、10年経てばボンクラ説 https://www.youtube.com/watch?v=QdfVJnVuLlY [] [ここ壊れてます]
695 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 15:32:12.46 ID:M1NONSBM.net] >>658 オーディオ系はシステム依存度が高いから余りサンプルが出てこないね。 WindowsやMacOSなら簡単そうだが 1kHz の音源ファイルを使うのは違反かな?
696 名前:蟻人間 mailto:sage [2020/10/14(水) 17:27:12.50 ID:TNR/wFHW.net] >>658 C/C++ with Win32 #include <windows.h> int main(void) { Beep(1000, 1000); }
697 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 17:57:41.59 ID:qOYZdiW9.net] 答え出てきても試しようがない
698 名前:蟻人間 mailto:sage [2020/10/14(水) 18:19:22.34 ID:TNR/wFHW.net] >>658 Python with Windows import winsound winsound.Beep(1000, 1000);
699 名前:蟻人間 mailto:sage [2020/10/14(水) 18:24:27.45 ID:TNR/wFHW.net] >>658 Python with Mac import os os.system('play -n synth 1 sin 1000');
700 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 18:36:34.21 ID:Azmo5ss/.net] シェル経由でSoX playコマンド呼んでるだけやんけ Pythonもmacも関係ねぇわ
701 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 19:17:28.35 ID:Y0U/d7P+.net] OSにつく前置詞はwithじゃなくてonだろハゲ
702 名前:デフォルトの名無しさん [2020/10/14(水) 19:30:29.09 ID:pZU5VHHG.net] 試すと音が出て煩そうだから試す気になれない。
703 名前:蟻人間 mailto:sage [2020/10/14(水) 19:50:02.82 ID:TNR/wFHW.net] テレビの自主規制音と同じ音だよ。 https://ja.wikipedia.org/wiki/%E8%87%AA%E4%B8%BB%E8%A6%8F%E5%88%B6%E9%9F%B3
704 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 00:45:55.69 ID:BUh584nA.net] >>688 iOS じゃ、play コマンドがなさそうなんだよな。
705 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 01:18:37.79 ID:fqrOjoDi.net] 結局このスレで盛り上がるのは環境によらず言語によらず、でも多少は骨のあるようなお題なんだよな へぇその言語ならそんなにキレイに書けるのかとか普段自分が使ってない言語ではどうやって実現できるのか眺めたりするのが面白い 音鳴らすなんてお題として面白いわけがない
706 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 01:40:28.46 ID:S6IC+plr.net] ヒント:出題者
707 名前:デフォルトの名無しさん [2020/10/15(木) 11:44:28.12 ID:cDg3UiVL.net] 蟻人間さんへのお題: 文字列を受け取って、RFC 5322にしたがってSubjectヘッダを出力してください(MUST、SHOULDを満たすこと) 文字コードはUTF-8、エンコーディングはBエンコードを使用してください
708 名前:蟻人間 mailto:sage [2020/10/15(木) 13:28:00.67 ID:s1gNbcw/.net] >>695 Python text = 'Re: Re: This is a subject text. This is a subject text. This is a subject text.' if text[0:4] == 'Re: ': __while text[0:4] == 'Re: ': ____text = text[4:] __text = 'Re: ' + text import base64 text = 'Subject: ' + base64.b64encode(text.encode('utf-8')).decode('ascii'); ary = [] while len(text) > 78: __ary.append(text[0:78]) __text = text[78:] ary.append(text) import platform if platform.system() == 'Windows': __for item in ary: ____print(item) else: __for item in ary: ____print(item, end="\r\n")
709 名前:蟻人間 mailto:sage [2020/10/15(木) 13:49:36.74 ID:IXtC9lOP.net] >>696 訂正。 (誤) while len(text) > 78: (正) while len(text) >= 78:
710 名前:デフォルトの名無しさん [2020/10/15(木) 14:30:46.93 ID:cDg3UiVL.net] >>696 いろいろ違うので・・・メールのソース眺めたが良いです
711 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 19:14:52.90 ID:QzXinxJa.net] 頭の悪いお題を連投してるやつはやっぱり頭悪いんだな
712 名前:デフォルトの名無しさん [2020/10/15(木) 19:22:03.88 ID:cDg3UiVL.net] そんなことないと思うけどな あまり他人の悪口言わない方が良いよ
713 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 19:28:33.00 ID:QzXinxJa.net] くっそみたいなお題延々と出し続けてウザいじゃん
714 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 19:29:59.48 ID:MTvivIgb.net] >>638 なんかはいいと思うんだけどな eval使えないHaskellerにはいい練習問題になってる
715 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 19:38:14.90 ID:QzXinxJa.net] ウェブアプリつくれだのGUIアプリつくれだの酷い事散々言いまくってるじゃん ◆QZaw55cn4cの方がまだマシ
716 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 19:40:03.02 ID:MTvivIgb.net] まぁ音出せとかカラーバー出せとかはクソお題だな
717 名前:デフォルトの名無しさん [2020/10/16(金) 19:48:26.76 ID:2tllxc0n.net] お題 自然数nを 2進数にした時、 1が連続する個数の最大値を求める。 例 20201016 -> 5
718 名前:デフォルトの名無しさん mailto:sage [2020/10/16(金) 20:25:28.88 ID:YQH8/KbW.net] haskell import Data.List maxConsOne = maximum . map length . filter ((==1).head) . group . unfoldr (\n ->if n == 0 then Nothing else Just (mod n 2, div n 2)) main = print $ maxConsOne $ 20201016 ---- 5
719 名前:デフォルトの名無しさん mailto:sage [2020/10/16(金) 21:03:20.03 ID:a9PKFHNt.net] >>705 ruby f = ->(n) {n.to_s(2).chars.chunk(&:itself).map {|k, a| k == '1' ? a.size : 0}.max}
720 名前:デフォルトの名無しさん mailto:sage [2020/10/16(金) 21:35:06.98 ID:XtprH8ZD.net] >>705 JavaScript const f = (n = 0) => Math.max(...(n.toString(2).match(/1+/g) ?? ['']).map(m => m.length)) console.log(f(20201016)) //=> 5
721 名前:253 mailto:sage [2020/10/16(金) 23:46:14.30 ID:5gS0lg4h.net] >>705 Perl5 use List::Util max; print max map{length} sprintf('%b', 20201016) =~ /(1+)/g; 実行結果 $ perl 18_695_bin1.pl 5
722 名前:デフォルトの名無しさん [2020/10/17(土) 00:12:43.05 ID:7ct7R1y+.net] >>705 Ruby p 20201016.to_s(2).split("0").max.size
723 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 00:24:53.85 ID:u2s9P3C4.net] haskell 無名関数というインチキ使ってしまったので再挑戦バージョン import Data.List main = print $ maximum . map sum . group . map (flip mod 2) . takeWhile (/=0) . iterate (flip div 2) $ 20201016
724 名前: mailto:sage [2020/10/17(土) 00:46:45.25 ID:4JRxXuyk.net] >>705 https://ideone.com/hQRZsi
725 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 01:58:38.41 ID:S6LboNFt.net] >>705 Ruby n = 20201016 nl = 0 while n > 0 nl = ((nc = (n.odd?)? nc + 1 : 0) > nl)? nc : nl n >>= 1 end puts nl
726 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 01:59:32.64 ID:u2s9P3C4.net] >>712 125の時1になった
727 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 02:41:53.51 ID:AbkDXvLA.net] これだからQZ
728 名前: mailto:sage [2020/10/17(土) 02:53:09.41 ID:4JRxXuyk.net] >>705 C++: https://ideone.com/7H5HBx >>712 にはロジックに欠陥がありました >>714 ご指摘ありがとうございます。
729 名前:703 mailto:sage [2020/10/17(土) 09:22:46.57 ID:S6LboNFt.net] >>714 自分の >>713 も - nl = 0 + nc = nl = 0
730 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 12:19:37.13 ID:a+zi+w45.net] >>705 C++ https://wandbox.org/permlink/udZVzwy6pQKbcPa5
731 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 13:46:27.15 ID:eBu6AjRf.net] >>705 C https://ideone.com/DwvfL2
732 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 18:57:16.23 ID:S6LboNFt.net] >>705 Ruby n = 20201016 i = 0 while n != 0 n &= n << 1 i += 1 end puts i
733 名前:デフォルトの名無しさん [2020/10/17(土) 19:11:03.54 ID:wXdm0x1E.net] >>720 うまいやり方だな。それには気付かなかった。
734 名前:デフォルトの名無しさん [2020/10/17(土) 19:29:10.40 ID:wXdm0x1E.net] >>705 Kotlin script 2進数文字列に変換してから 0 を区切り文字にして分割してその中の一番長い文字列の長さを出すというやり方。 fun max1(n: Int) = n.toString(2).split('0').map { it.length }.max() println(max1(20201016)) これで 5 が出る。 同じやり方を perl5 で(特にモジュール使わずに)やるとこんな感じ。 perl -e '$n=20201016; $m = (sort { $b <=> $a } map { length($_) } (split /0+/, sprintf("%b", $n)))[0]; print "$m\n"' 同じく5が出る。
735 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 20:05:12.33 ID:vimxgZ9f.net] >>705 JavaScript let num = 20201016 let ans = num.toString(2).split`0`.sort().pop().length console.log(ans) //=> 5
736 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 20:50:55.84 ID:w8j3NnhR.net] >>705 octave https://ideone.com/dO1WZp f = @(n) max(cellfun(@numel, strsplit(dec2bin(n), '0'))); f(20201016)
737 名前:デフォルトの名無しさん [2020/10/17(土) 20:54:06.81 ID:frzgm+pU.net] >>705 Perl https://paiza.io/projects/VO9_CFHPOVbO5iI8uDc__A
738 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 23:22:21.08 ID:P3PLPttw.net] いつもRubyの人からなにかしら学ぶことがある
739 名前:デフォルトの名無しさん [2020/10/18(日) 00:42:32.49 ID:nYmbGZmV.net] ハトにエサを与えないで下さい
740 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 01:06:12.01 ID:qT62bbHa.net] QZは自分の頭が悪いのをわざわざ周知してもらうためにクソコードを晒すのか ドMだな
741 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 03:42:01.18 ID:DpwMGaW+.net] >>720 なるほどな、感心した n>>1 でもいいわけだな
742 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 04:21:53.35 ID:xWXtsYNK.net] >>710 のほうが速いと思うが
743 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 04:36:21.54 ID:F/EhVBet.net] rubyよく分からないけど>>720 の方が100倍くらいは速そうに思える
744 名前:デフォルトの名無しさん [2020/10/18(日) 05:53:44.51 ID:28u9FaXE.net] うん。速そうだね。数値計算しかしてないし。
745 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 10:06:25.57 ID:ARbR7jXS.net] 20201016みたいに桁数が少ないならそうだけど桁数が増えるとルーブが答え×桁数回だからアルゴリズムそのものは遅い 桁数が少ないうちは内部関数しか使ってない利点で早いとは思うけど
746 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 12:07:22.14 ID:GUbLWvo/.net] >>733 >>710 ,720 をベンチマークで比較してみた https://ideone.com/t0ZYLg https://ideone.com/DUEWmC 20201016 では 5~6倍 巨大な数だと 7000倍以上
747 名前: mailto:sage [2020/10/18(日) 15:53:00.51 ID:xUpUEWAV.net] >>703 残念ながら、私の出題もイマイチ人気がありませんでした‥‥
748 名前:デフォルトの名無しさん [2020/10/18(日) 21:20:25.30 ID:wanN/5Zd.net] >>695 Java https://paiza.io/projects/frlfP3US1doeAO_HZBnLWQ
749 名前:デフォルトの名無しさん [2020/10/18(日) 21:43:52.67 ID:wanN/5Zd.net] >>678 Java https://paiza.io/projects/0xfQrdW_qpJoUbOO6ux6wg
750 名前:デフォルトの名無しさん [2020/10/18(日) 22:06:12.69 ID:wanN/5Zd.net] >>676 Java https://paiza.io/projects/x3j0kbjqsSoVGNJX5qun2g
751 名前:デフォルトの名無しさん [2020/10/18(日) 22:14:01.64 ID:wanN/5Zd.net] >>705 Java https://paiza.io/projects/Eo4-fSXmdnoqjyHOMsi92Q
752 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 22:45:56.62 ID:F/EhVBet.net] >>734 x = n while x != 0 x &= x << 1 i += 1 end ruby知らないから適当に書いたけど こんな感じにしないと二回目以降nが0でやってるっぽい こうすると22倍くらいの差だった
753 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 22:54:22.98 ID:F/EhVBet.net] 連続してるビット数が多いときはこの方が速くなったけど すごいごちゃごちゃになった i = 0 s = 1 x = n while x != 0 t = x & (x << s) if t == 0 then if s == 1 then i += 1 break end s = 1 else x = t i += s s = (s << 1) end end
754 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 22:56:30.98 ID:QW0aA1Hz.net] >>734 GJ
755 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 06:30:07.92 ID:8QFJcUQW.net] >>705 echo "obase=2; 20201016" | bc | sed 's/./&\n/g' | uniq -c | perl -lane 'if ($M < $F[0]) {$M = $F[0]}; END{print $M}' 5
756 名前:724 mailto:sage [2020/10/19(月) 15:26:08.35 ID:u+lqDWSF.net] >>740 ご指摘の通りでした https://ideone.com/DUEWmC を修正しました >>720 は 1の連続が多いと弱いですね
757 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 17:41:48.20 ID:Sd7Rn+fr.net] お題 2^(1/3)を百桁表示せよ 出力 1.2599210498948731647672106072782283505702514647015079800819751121552996765139594837293965624362550941543102560356156652593990240 参考 a(n+3) = 3*a(n+2) + 3*a(n+1) + an a(1) = 3, a(2)=3, a(3)=15 で決まる数列について min (a(n)/a(n+1), a(n+1)/a(n+2), a(n+3)/a(n+3) ) . < 2^(1/3)-1 . max (a(n)/a(n+1), a(n+1)/a(n+2), a(n+2)/a(n+3) ) で lim a(n)/a(n+1) = 2^(1/3)-1となる
758 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 21:36:44.38 ID:gq9726ze.net] >>743 echo "obase=2; 20201016" | bc | sed 's/0\+/\n/g' | wc -L でよくね?
759 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 22:00:17.27 ID:gq9726ze.net] >>745 Bash $ echo "scale=100;e(l(2) / 3)" | bc -l 1.25992104989487316476721060727822835057025146470150 79800819751121552996765139594837293965624362550940
760 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 22:30:56.87 ID:14xSvmON.net] >>745 dc dcには平方根の演算子はあるが立方根はないので c^(1/3) = sqrt(c/sqrt(c/sqrt(c/...))) と変形して適当に反復 100k[2z333>av/]dsaxp 1.2599210498948731647672106072782283505702514647015079800819751121552\ 996765139594837293965624362550941
761 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 23:54:32.40 ID:mPlPc+C9.net] >>745 参考を誰も参考にしてくれないのにワロタ 参考を元に作ったコード Haskell https://ideone.com/ywJPjx ちなみにrubyのpi.rbが同じテクニック使ってます そっちは定数係数でない三項間関係の漸化式パージョン
762 名前:デフォルトの名無しさん mailto:sage [2020/10/20(火) 02:36:31.61 ID:gFGmv7lM.net] >>746 たしかに
763 名前:デフォルトの名無しさん mailto:sage [2020/10/20(火) 04:08:13.14 ID:Mf7a0fdE.net] おっせえじゃん
764 名前:デフォルトの名無しさん mailto:sage [2020/10/20(火) 21:07:35.93 ID:hsuNVmIy.net] お題:ぼくがかんがえたさいきょうのちょうわへいきん 2変数調和平均 f(x, y) = 2 / (1 / x + 1 / y) 但し xまたはyがゼロの時、f(x, y) == 0 の計算を考える。 Cのdoubleに相当する精度で計算する際に、理論値(≒多倍長精度で計算したものを double相当に丸めたもの)と一致しない割合(エラー率)をモンテカルロ法で求めよ。 x, yは、正規分布N(0, 1)の絶対値に従うものとする。 発展的なお題: 前掲の調和平均の式を変形し、エラー率の変化を調べよ。例えば、 f(x, y) = 2 * x * y / (x + y) のエラー率は、前掲の式と比較してどうだろうか? また、2 / (1 / x + 1 / y)よりエラー率が低い式は在るだろうか? 発展的なお題その2: x, yがベンフォードの法則に従う場合はどうなるか。 正規分布N(0, 1)の絶対値の場合と比べて、エラー率の順位は入れ替わるだろうか?
765 名前:デフォルトの名無しさん mailto:sage [2020/10/22(木) 01:17:43.95 ID:rA+WIIWx.net] ...but nobody answered
766 名前:253 mailto:sage [2020/10/23(金) 09:17:13.74 ID:7L0FHKID.net] 正規乱数をモンテカルロ法で算出して doubleと多倍長浮動小数点でそれぞれ計差した2変数調和平均に 差がある率を求めれば良いの? 正規乱数なら書かなくともライブラリにあるんだよね。 あるいは誤り率の計算そのものにモンテカルロ法を使うようなやり方なのかな
767 名前:デフォルトの名無しさん mailto:sage [2020/10/23(金) 14:48:32.25 ID:oxO2c12D.net] 次のプリーズ
768 名前:デフォルトの名無しさん [2020/10/23(金) 20:02:36.14 ID:Vzf4XOui.net] お題 乱数を使ってシミュレーションしてください ジョーカーを除くトランプ52枚から1枚抜き取って箱に入れました その後、残った51枚から3枚引いて確認したら3枚ともダイヤでした では最初に抜き取った箱の中が1枚がダイヤである確率はいくらか?
769 名前:デフォルトの名無しさん mailto:sage [2020/10/23(金) 20:27:24.17 ID:LovVc5SM.net] >>756 Ruby DECK = [*0..51] def hoge a, *b = DECK.sample(4) until b&.all?{|v| v % 4 == 0} a % 4 == 0 end def fuga(n) 1.0 * n.times.count{hoge} / n end p fuga(1e6) # => 0.20414 p 10 / 59 # => 0.20408163265306123
770 名前:デフォルトの名無しさん mailto:sage [2020/10/23(金) 20:46:02.34 ID:LovVc5SM.net] 途中で送信してしまった 99%信頼区間は 0.20414±0.0010382 => [0.2031018, 0.2051782] 理論値は 10/49 = 0.20408163265306123
771 名前:デフォルトの名無しさん [2020/10/23(金) 20:49:11.91 ID:5NWyTruo.net] 確認前後での確率変動を出せ、っていうお題じゃねえのコレ
772 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 01:58:03.71 ID:6bv42JD2.net] お題 ジョーカー除く52枚のカードがある スートを表すS,H,D,Cと、A,K,Q,J,X,9,8,7,6,5,4,3,2との2文字からなる文字列でカードの柄を表すこととする。 当然ながら52枚のうちどの2枚も同じ柄でない この一組のカードを使ってポーカーゲームをする。 すなわち、初手のカード5枚を配られたプレイヤーは、そのうち0枚以上5枚以下のカードを場に捨てて、同じ枚数のカードを残りの山札47枚から引くことができる。 このときどのカードが選ばれるかは無作為であり、プレイヤーは選択できない。 さて、プレイヤーは、初手のカード5枚に対して、最終的に手に残る5枚のカードをポーカーのルールで評価して得られる配点の期待値が最も高くなるように捨て札を決めたい。 入力としてカード5枚が与えられたとき、そのような捨て札の組み合わせを求めるプログラムを記述せよ。 ここで、ポーカーの役と配点の対応はプログラムのパラメータとして組み込んで良い。
773 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:09:47.85 ID:xQuuF55s.net] >>760 // 任意の役の配点を0とする printf(0);
774 名前:デフォルトの名無しさん [2020/10/24(土) 23:43:41.92 ID:DlOr4HzX.net] >>756 Java https://paiza.io/projects/rAHsohR9Q8vhh4kLZnfKAw
775 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:27:41.37 ID:dKQi7OF0.net] >>760 Perl5 https://ideone.com/stLkXf 役のレートは某ゲームのものを使用 ノーペアのとき 全部変える
776 名前:謔1枚残したほうが有利という結果が出てちょっと驚いてる [] [ここ壊れてます]
777 名前:デフォルトの名無しさん [2020/10/25(日) 10:49:49.59 ID:zd7LSfWt.net] 3が1枚来てて、3が3枚残ってるなら、 ・手元の3を捨てると、3が来ても何も起こらない ・手元に3を残すと、3が来るとワンペアになる つまり、残りのカードを引けるかどうか、になる >>756 の亜種
778 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:44:16.63 ID:c/nOQwtG.net] 746はシミュレーションも何もただの引っ掛け問題でしょ モンティホール問題の方が引っ掛け問としては出来が良い
779 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 12:58:23.56 ID:vQGWPLvq.net] 引っかけも何も条件付確率の初歩の初歩の問題だろ
780 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 14:14:17.31 ID:tOCt4zCM.net] 52枚トランプの束で2枚目から4枚目までがダイアであるような場合に限定してその内先頭もダイアであるような場合は全体の何バーセントかを問う問題
781 名前:742 mailto:sage [2020/10/26(月) 01:17:42.67 ID:LimhPZzI.net] >>754 正規乱数自体は既存のライブラリで(Pythonならnumpy.random.randnとか)。 例えば、最初のお題(2/(1/x+1/y)で計算するやつ)は、34%位のエラー率になります。
782 名前:253 mailto:sage [2020/10/27(火) 00:51:04.61 ID:uqMOOUWw.net] そうすると俺にはモンテカルロ法をわざわざ使うところが どこかよく分からないんだよね…
783 名前:デフォルトの名無しさん mailto:sage [2020/10/27(火) 23:07:51.35 ID:9NNPSda/.net] 結局>>752 は数学的にはどういう意味なんやろ x,yがN(0,1)に従う独立確率変数、 ρ:R→RがDouble型に丸める関数(Doubleのレンジに入らない確率はほとんど0だから無視)、 h(x,y)=2xy/(x+y) としたとき P(ρ(h(ρ(x),ρ(y))) ≠ ρ(h(x,y))) ≒ 34% って事?
784 名前:253 mailto:sage [2020/10/28(水) 00:01:38.74 ID:Jno143Es.net] 面白い記号だなそれ。 だが、他の人にも伝わるように書いた方が話が広がってよいよ。 どんなに数学が得意な人でも本当に優秀な人はそうすることができると思う
785 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 00:17:22.90 ID:3yQQm3er.net] Φρズと書いてハイロウズと読みます
786 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 00:21:17.79 ID:n11gpLQR.net] 煽りでもなく素直に疑問なのだが>>770 のどこら辺がわからないんだ? 正規分布の下りか?
787 名前:253 mailto:sage [2020/10/28(水) 00:30:53.43 ID:Jno143Es.net] >>772 マジレスしようと思ったが、そういう問題じゃないんだよ 言葉で書きゃー2,3行のことなんだから 言葉で人に伝わるように書けばいいだろ と、突き放しちゃ実も蓋も無いので少しマジレスすると ρ:R→R が写像なのは分かる。 がしかしだ P(ρ(h(ρ(x),ρ(y))) ≠ ρ(h(x,y))) ≒ 34% って、お前の教室のホワイトボードじゃねんだぞ。 そんなんでどうっやって世の人と付き合ってんだか…
788 名前:253 mailto:sage [2020/10/28(水) 00:40:32.18 ID:Jno143Es.net] 大体、P()てのは何の関数だ。 どこにでもあるような関数名だが、一般的な関数か? いや、そんなことの説明は要らない お前の言いたいことはそんな自己流の式よりも 手短な読んで分かる日本語で書けるはずだ いいやP()に限らない、お前のレスは一事が万事そんな感じ 一からからやり直せ そしたら相手してやる
789 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 00:42:08.54 ID:n11gpLQR.net] >>775 文脈から明らかにP(A)はAが起こる確率でしょうが ちなみに俺は>>770 じゃないんで
790 名前:253 mailto:sage [2020/10/28(水) 00:43:23.90 ID:Jno143Es.net] >>776 それ関数じゃないだろ。何で関数として書くんだ。 どういう関数空間なんだ?
791 名前:253 mailto:sage [2020/10/28(水) 00:47:05.09 ID:Jno143Es.net] 簡単なことを わざわざ難しいことのように書くのは 有能な人のすることではない
792 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 00:51:02.28 ID:n11gpLQR.net] >>777 落ち着けよお前 P(事象A) := 事象Aが起こる確率 なんて高校数学の範疇だぞ >>770 が殊更ペダンチックには感じない
793 名前:253 mailto:sage [2020/10/28(水) 01:00:33.01 ID:Jno143Es.net] >>779 別に落ち着いているけど これか https://ja.wikipedia.org/wiki/%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E7%A2%BA%E7%8E%87 P()が確立っていつから? 俺が大学の頃まではこういう記法は見た記憶が無いんだけど P(ρ(h(ρ(x),ρ(y))) ≠ ρ(h(x,y))) ≒ 34% これは言葉で書いたらもっと分かりやすくならないのか?
794 名前:253 mailto:sage [2020/10/28(水) 01:15:04.26 ID:Jno143Es.net] 結局 >>770 は 2 / (1 / x + 1 / y)をdoubleで計算した値と倍長精度で計算したものをdouble相当に丸めたものが一致しない割合 この一行をわざわざ他の人に分かりにくい式で再度書いているだけのこと 繰り返しだし分かりにくいし 意味(doubleで計算した値と倍長精度で計算したものをdouble相当に丸めたものが一致しない割合) が欠落している そういうことに気づきな
795 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 01:17:27.13 ID:6h0Rpnv/.net] 多分ですけど、あなた以外はそこまでわかりにくい表現だとは感じていないのだと思いますよ
796 名前:253 mailto:sage [2020/10/28(水) 01:19:14.69 ID:Jno143Es.net] まじかw そしたら回答山盛りだ お前もさんも回答よろしくな
797 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 01:20:24.09 ID:6h0Rpnv/.net] >>752 の意味するところが数学的に自明になればおのずと回答も付くでしょう
798 名前:253 mailto:sage [2020/10/28(水) 01:20:47.31 ID:Jno143Es.net] 蛇足だが、あの式で意味がわかった上で まさか回答できなかったら、単なる無能だからな
799 名前:253 mailto:sage [2020/10/28(水) 01:27:14.39 ID:Jno143Es.net] >>784 参考までにあなたは今までどのような回答を投稿されましたか?
800 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 01:29:09.84 ID:3yQQm3er.net] >>771 > 面白い記号だなそれ。 で、結局面白い記号って何だったの?
801 名前:253 mailto:sage [2020/10/28(水) 01:30:24.94 ID:Jno143Es.net] ふふ、それは ヒ・ミ・ツ
802 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 01:43:43.54 ID:3yQQm3er.net] 教科書ないから高校数学 確率で一番上に出たやつ。 https://studysapuri.jp/contents/high/article/subject/sp/math00003.html やっぱ高校の教科書に載ってたよなあww 仮に載ってなかったとして大学で使う書籍にもP載ってないって?w > 俺が大学の頃まではこういう記法は見た記憶が無いんだけど
803 名前:253 mailto:sage [2020/10/28(水) 01:56:33.39 ID:Jno143Es.net] ゆとり以降だなそりゃ
804 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 02:11:35.07 ID:d52OC3St.net] 恥の上塗りするくらいなら黙ってればいいのに
805 名前:253 mailto:sage [2020/10/28(水) 02:16:39.09 ID:FRCNqyyj.net] じゃあ何か自慢の回答でもしてよ
806 名前:742 mailto:sage [2020/10/28(水) 05:10:48.17 ID:MEeLXnFm.net] >>770 2/(1/x+1/y) を 2*x*y/(x+y) と変形した場合だと、36%位です(100万回試行してみた)。
807 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 06:02:02.77 ID:W3KKdO+Q.net] >>752 C https://ideone.com/iPEwg8 2 / (1 / x + 1 / y) のエラー率は 38.5% 2 * x * y / (x + y) のエラー率は 40.4% と出た
808 名前:742 mailto:sage [2020/10/28(水) 12:23:39.00 ID:jim4KuYP.net] >>794 h0の計算は、xdやxdをlong doubleにcastする感じで! >double h0 = ( xl == 0. || yl == 0. ? 0. : 2. / (1.L / xd + 1.L / yd));
809 名前:742 mailto:sage [2020/10/28(水) 13:16:35.16 ID:jim4KuYP.net] 間違えました double h0 = ( xd == 0. || yd == 0. ? 0. : 2. / (1.L / xd + 1.L / yd));
810 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 00:16:48.93 ID:GFOWX4AY.net] お題:言語機能のみを使い単方向リストを実装しメソッドpush
811 名前:とpopを実装せよ pushはリスト末尾にノードをプッシュし、popはリスト末尾からノードをポップする ノードの持つ値は整数とする [] [ここ壊れてます]
812 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 00:52:01.80 ID:wtq/xrTf.net] 複数pushできるの? popも個数指定できるの?一個ずつ? pushの戻り値はリスト自身?入れた値?成否?
813 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 01:01:50.46 ID:GFOWX4AY.net] >>797 >>798 pushもpopも値は1つずつ pushの戻り値はなんでもいい
814 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 10:47:03.25 ID:jsAu6jIB.net] >>797 js 入出力のサンプルケース書いてないやつ絶対自分はやってないだろ class SinglyLinkedList { push(value) { this.head = { next: this.head, value } } pop() { if (!this.head) return this.head = this.head.next } str() { let { head } = this, s = "" while (head) { s += head.value + ", " head = head.next } return s } }
815 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:03:58.95 ID:GFOWX4AY.net] >>800 なんで>>797 ,799の仕様でこんな実装になるんだ? お題ちゃんと読んでる?
816 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:11:08.30 ID:moZIRBYC.net] >>801 「言語機能のみを使い」は引っかかる表現だったけどそれのことかい?
817 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:16:22.08 ID:95aSRVZj.net] オレもこの「言語機能のみを使い」がわからなかった 「ライブラリ関数使うな」か「文字列操作関数のみを使い」かどっちかかなと わからんから様子見
818 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:18:16.67 ID:GFOWX4AY.net] >>802 >>800 は787の仕様としてただしかったわ すまんな こっちのお題の定義があいまいすぎたらしい 言語機能は問題ない
819 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:21:59.18 ID:GFOWX4AY.net] >>803 ライブラリ使うなって言いたかった あとお題提出前の実装については>>800 に比べるとかなり冗長な実装をしてある ここに晒す気はないが
820 名前:デフォルトの名無しさん [2020/10/29(木) 12:33:09.26 ID:AOpu1Zek.net] stdlib.h使わずに作るの?
821 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:36:05.93 ID:jsAu6jIB.net] >>804 まあええわ 俺もclassは久々に使ったけどできれば使わずに実装したかったわ
822 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:50:57.59 ID:GFOWX4AY.net] >>807 こっちの実装したコードに比べるとそっちのコードはえらくシンプルなんだよな 軽くショックだわ >>801 みたいな口きいてすまんかったな
823 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 13:24:14.72 ID:GFOWX4AY.net] >>806 リスト以外の実装は自由の想定 stdio.hも使っておk
824 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 13:27:39.52 ID:GFOWX4AY.net] >>806 C/C++などの言語はmallocなどを使っても良いことにする
825 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 15:09:10.20 ID:dNWGwdex.net] Haskellみたいな純粋関数だとそもそも標準ライブラリだけだと“状態”を作るのも難しいんだよな 同じ表現は永遠に同じ答えを返すからスタックの“状態”を変化させるというのがそもそもできない それをなんとかするのに“モナド”というのがあるんだけど状態を処理する“ステートモナド”は標準ライブラリではないんだよな ほとんど“準標準”だけど
826 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 16:24:06.73 ID:95aSRVZj.net] State モナドを“準標準”と認めてもらえるなら簡単 Haskell import Control.Monad.State pop :: State [a] a pop = do a <- get modify tail return $ head a push :: a -> State [a] () push x = do modify ((x :)) return () test = do push 1 push 2 push 3 a <- pop b <- pop c <- pop return ([a,b,c]) main = print $ evalState test [] --- 出力 [3,2,1]
827 名前: mailto:sage [2020/10/29(木) 19:01:42.56 ID:7aED6VYA.net] >>797 双方向リストの方が、後々いろいろ流用できてありがたいんですけど、それでも端方向リストでインプリしないといけないのですか?
828 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 19:02:59.18 ID:c1P6mcgH.net] 持て余すくらいなら「なるべく使わない」とか評価基準を示すだけにしとけばいいのに
829 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 19:32:46.09 ID:EQ9lcE/o.net] >>803 全く同じこと思ってたわw
830 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 19:34:40.84 ID:EQ9lcE/o.net] >>807 どうでもいいけどお前のIDもjsだsな
831 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 19:40:10.12 ID:Pf0NRL7D.net] >>797 Brainfuck push: <[>], pop: <[>]<[-]<
832 名前:デフォルトの名無しさん [2020/10/29(木) 20:59:03.61 ID:zgfLAX1f.net] >>797 push,popってリストじゃなくてスタックの機能じゃ? リストにさせるなら、先頭に追加してく方が速くて楽なのに。 push xs a = a:xs pop (x:xs) = (xs,x) 反転させたいなら最後の最後にすべきだよ。 Haskell ― 使用例用main関数 main = do pushlist <- (return.push (Cons 1 (Cons 2 Null))) 3 (poplst, popval) <- (return.pop) pushlist print pushlist print popval print poplst ― ここからお題のコード(整数に限定じゃないとダメならdataのList a/Cons aのaをIntに) data List a = Null | Cons a (List a) deriving (Show) push xs a = xs +++ (Cons a Null) pop xs = (myinit xs, mylast xs) Null +++ ys = ys (Cons x xs) +++ ys = Cons x (xs +++ ys) myinit (Cons x Null) = Null myinit (Cons x xs) = Cons x (myinit xs) mylast (Cons x Null) = x mylast (Cons _ xs) = mylast xs
833 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:10:47.05 ID:wtq/xrTf.net] >>797 JavaScript class List { #data = [] push(n) { this.#data = [n, this.#data] return this } pop() { const [head, tail] = this.#data if (tail) this.#data = tail; return head } toArray() { return this.#data.flat(Infinity) } toString() { return String(this.toArray()) } toJSON() { return this.toArray() } } const list = new List list .push(0) .push(7) .push(2) console.log('文字列: ' + list) //=> 文字列: 2,7,0 console.log('JSON: ' + JSON.stringify(list)) //=> JSON: {"test":[2,7,0]} list.pop() //=> 2 list.pop() //=> 7 list.pop() //=> 0 list.pop() //=> undefined
834 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:13:39.21 ID:wtq/xrTf.net] うわ console.log('JSON: ' + JSON.stringify({'test': list})) //=> JSON: {"test":[2,7,0]} だった
835 名前:デフォルトの名無しさん [2020/10/29(木) 23:09:01.60 ID:MaNQDMIt.net] >>813 お題 双方向リストをC89で実装してください
836 名前:253 mailto:sage [2020/10/29(木) 23:20:15.73 ID:UgpGZWA4.net] >>817
837 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 23:24:39.19 ID:3o7XtB23.net] >>797 ocaml https://ideone.com/8ceFxk type 'a _list = Nil | Cons of 'a * 'a _list exception EmptyListException let push xs x = Cons(x, xs) let pop = function Nil -> raise EmptyListException | Cons (x, c) -> (x, c) let rec each f = function Nil -> () | Cons (x, xs) -> f x; each f xs let x, xs = pop (push (push (push Nil 1) 2) 3) let () = print_int x; each print_int xs
838 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 23:26:08.36 ID:GFOWX4AY.net] >>813 双方向書きたいってことなら書けば お題は単方向だけど
839 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 00:06:20.24 ID:aDtUVDPI.net] >>812 を改良? State [Int] だとあらかじめ用意した一個のstackしか使えない 噂に聞いたことあつたST monadで複数のスタック使えるように改造 Haskell import Control.Monad import Control.Monad.ST import Data.STRef data Stack a = Empty | N { car :: a, cdr :: Stack a } deriving (Show) push stk val = modifySTRef stk (N val) pop stk = car <$> readSTRef stk <* modifySTRef stk cdr main = print $ runST $
840 名前: do sA <- newSTRef Empty sB <- newSTRef Empty push sA 'o' >> push sA 'o' >>push sA 'f' push sB 'r' >> push sB 'a' >> push sB 'b' a1<-pop sA a2<-pop sA a3<-pop sA b1<-pop sB b2<-pop sB b3<-pop sB return [a1,a2,a2,b1,b2,b3] ---- 出力 "foobar" [] [ここ壊れてます]
841 名前:253 mailto:sage [2020/10/30(金) 00:07:47.66 ID:hMjmzAXb.net] >>797 Perl5 公式マニュアルに書かれている通りsplice関数を使ってpush, popを記述できる。 splice(@a,@a,0,$x); # push(@a, $x) splice(@a,-1); # pop(@a) なんだけどspliceを使わず言語のstatementだけでpush, pop関数を記述すると…こんな感じ use v5.18; use feature 'signatures'; no warnings "experimental::signatures"; sub Push($a, $x) { @$a = (@$a, $x); } sub Pop($a) { my @a = @$a; my $b = $a[-1]; @$a = @a[0..$#a-1]; $b; } my @s = (1,2,3); # test main Push(\@s, 4); say "@s"; my $y = Pop(\@s); say $y; 実行結果 ~ $ perl 18_787_push_pop.pl 1 2 3 4 4 1 2 3
842 名前:253 mailto:sage [2020/10/30(金) 00:09:56.81 ID:hMjmzAXb.net] >>826 say $y; の下に書いてあった最後の行 say "@s"; をコピペしそびれた…orz
843 名前:253 mailto:sage [2020/10/30(金) 00:22:38.86 ID:hMjmzAXb.net] >>826 Pop関数はこっちの方がいいな、無駄なコピーもないし。 sub Pop($a) { my $b = @$a[-1]; delete @$a[-1]; $b; }
844 名前:253 mailto:sage [2020/10/30(金) 00:32:51.98 ID:hMjmzAXb.net] >>828 deleteは削除したスカラー値を返すわ。だから以下でいいんだ sub Pop($a) { my $b = @$a[-1]; delete @$a[-1]; }
845 名前:253 mailto:sage [2020/10/30(金) 00:34:30.90 ID:hMjmzAXb.net] >>829 my $b = @$a[-1]; 不要だった…orz sub Pop($a) { delete @$a[-1]; }
846 名前:デフォルトの名無しさん [2020/10/30(金) 00:50:28.84 ID:9RgBA+ge.net] >>797 Java https://paiza.io/projects/JKwjWCxSc6dHv_ItEaqwlQ
847 名前:デフォルトの名無しさん [2020/10/30(金) 02:22:50.19 ID:9RgBA+ge.net] >>821 Java https://paiza.io/projects/wtaAasQr_Nu5Zw2D1KoPwg
848 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 07:07:30.18 ID:cChJ6BWU.net] >>822 あ?
849 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 23:30:40.86 ID:hYhF3+Ov.net] Brainfuck読めないわ 覚えようかな
850 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 13:49:55.42 ID:QnYm1bfS.net] お題 与えられた文字列を一文字ずつ見ていき"trick"と"treat"の5文字でどちらが先に揃うか判定してください(順序込み) どちらもヒットしないときは考慮しなくていいです treakOrTreat("trick or treat") // => trick treakOrTreat(". tr ick") // => trick treakOrTreat("ttrriecatk") // => treat treakOrTreat("tri kc eat") // => treat treakOrTreat("my money") // => none
851 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 13:51:26.24 ID:QnYm1bfS.net] >>835 js(self) function treakOrTreat(text) { const [tri] = /t.*r.*i.*c.*k/.exec(text) || [] const [tre] = /t.*r.*e.*a.*t/.exec(text) || [] if (!tri && !tre) return 'none' if (!tri) return 'treat' if (!tre) return 'trick' return tri.length < tre.length ? "trick" : "treat" }
852 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 14:54:50.69 ID:HHhQTZ6R.net] 関数名のミススペリングは修正していいですか
853 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 15:02:04.99 ID:QnYm1bfS.net] ごっつtypoしてたすまんFIXME
854 名前:デフォルトの名無しさん [2020/10/31(土) 15:07:31.21 ID:DmLmDhBA.net] >>835 Common Lisp https://ideone.com/L8wigO
855 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 15:33:31.91 ID:I05R+wBh.net] 相変わらずキモいなあ、いつもの勝手に認定キッズ ミュートにしてるという情報から相手が雑魚であるというぶっ飛んだ推論をする知性の欠片も持ち合わせない負け組
856 名前:デフォルトの名無しさん [2020/10/31(土) 15:36:09.16 ID:DmLmDhBA.net] >>835 Common Lisp https://ideone.com/qHuipq >>839 は無駄な条件判定(二つめの (null a))があったので修正
857 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 15:44:11.18 ID:pGrSKCPz.net] >>835 JavaScript function trickOrTreat(str = '') { const trick = [...'trick'] const treat = [...'treat'] let result = 'none' for (const c of str) { if (c === trick[0]) trick.shift() if (c === treat[0]) treat.shift() if (!trick.length || !treat.length) { result = trick.length ? 'treat' : 'trick' break; } } console.log(result) }
858 名前:デフォルトの名無しさん [2020/10/31(土) 15:54:22.22 ID:i0S/O8KX.net] >>797 C https://paiza.io/projects/7O3xqQfCoYOhAz-48TxxWw
859 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 16:42:52.45 ID:B0ELcd4k.net] >>835 Haskell https://ideone.com/2Rb2sz
860 名前:デフォルトの名無しさん [2020/10/31(土) 17:10:35.46 ID:M62mfk9p.net] >>797 Perl https://paiza.io/projects/E1ha4EgvaVhalIRuJ_To-g
861 名前:デフォルトの名無しさん [2020/10/31(土) 17:42:14.32 ID:/zmNVLOW.net] >>797 Kotlin https://paiza.io/projects/mB7s1uC_4FJk1MFTDpLYsA
862 名前:デフォルトの名無しさん [2020/10/31(土) 21:33:28.24 ID:g64iH70d.net] >>835 Java https://paiza.io/projects/jCNOEenrSmdOMXo6Fl2wyQ
863 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 21:58:58.47 ID:t2sIU1o6.net] >>835 Ruby def trickOrTreat( str ) trick = str.match( /\A.*?t.*?r.*?i.*?c.*?k/ ) treat = str.match( /\A.*?t.*?r.*?e.*?a.*?t/ ) return 'none' unless trick or treat return 'trick' unless treat return 'treat' unless trick return (trick[0].size < treat[0].size)? 'trick' : 'treat' end [ "trick or treat", ". tr ick", "ttrriecatk", "tri kc eat", "my money", "treat or trick", "treat or trick t", ].each{|s| puts trickOrTreat( s ) }
864 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 22:19:45.63 ID:B0ELcd4k.net] >>844 改定 やはりHaskellerがこのお題でparsec使わないのはダメという事で Haskell import Text.ParserCombinators.Parsec makeP cs = foldl1 (<>) $ map (\c -> (many $ noneOf [c]) <> (return <$> anyChar) ) cs :: Parser String first xs ys = case (runParser (makeP xs) () "" ys) of Left _ -> (1, 0) Right x -> (0, length x) trickOrTreat x = case compare (first "trick" x) (first "treat" x) of LT -> "trick" GT -> "treat" otherwise -> "Happy Halloween" main = do mapM_ (print.trickOrTreat) ["trick or treat", ". tr ick","ttrriecatk","tri kc eat","my money"]
865 名前:デフォルトの名無しさん [2020/10/31(土) 22:49:38.34 ID:pe+8/Oyn.net] >>835 C #include<stdio.h> char* trickOrTreat(char*s, char*tk, char*tt){ if(!*tk)return "trick"; if(!*tt)return "treat"; if(!*s) return "none"; if(*s == *tk)tk++; if(*s == *tt)tt++; return trickOrTreat(s+1, tk, tt); } int main(void){ char* str[] = {"trick or treat", ". tr ick", "ttrriecatk", "tri kc eat", "my money", "treat or trick", "treat or trick t",}; const int size = sizeof(str)/sizeof(str[0]); char tk[] = "trick"; char tt[] = "treat"; int i; for(i=0; i<size; i++){ printf("%s\n", trickOrTreat(str[i], tk, tt)); } return 0; }
866 名前:253 mailto:sage [2020/10/31(土) 22:58:55.98 ID:i+h07tFB.net] >>835 Perl5 for (<DATA>) { chomp; %h = map{$_ => [split'']} qw{trick treat}; $k = 'none'; for $c (split'') { for (keys %h) { $r = $h{$_}; shift(@$r) if $c eq $$r[0]; unless (@$r) { $k = $_; goto L } } } L: print "$_ -> $k\n"; } __DATA__ trick or treat . tr ick ttrriecatk tri kc eat my money 実行結果 ~ $ perl 18_825_trickOrTreat.pl trick or treat -> trick . tr ick -> trick ttrriecatk -> treat tri kc eat -> treat my money -> none
867 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 23:10:35.06 ID:8FYB/kmH.net] >>851 なんでお前ずっとコテハンつけてんの?
868 名前:253 mailto:sage [2020/10/31(土) 23:20:38.29 ID:i+h07tFB.net] >>852 IPアドレスがたまに変わるのと自分のレスを見分けやすくするため。固定ではなく番号はたまに変えてる 気にしないで
869 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 23:26:17.77 ID:OVAIfmUR.net] >>797 c https://ideone.com/9grZQe
870 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 23:27:34.12 ID:wd4K8eMC.net] >>853 専ブラ使えばいいのに
871 名前:253 mailto:sage [2020/10/31(土) 23:32:26.70 ID:i+h07tFB.net] >>855 IPアドレスが変わったり日にちがたった自分のレスを簡単に表示し分けられる専ブラで良いのある? 出来ればLinuxで。ちなStyleは好みではない
872 名前:253 mailto:sage [2020/10/31(土) 23:38:27.89 ID:i+h07tFB.net] >>854 教科書に載っているようなきれいなコード書くね
873 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 23:54:01.35 ID:OVAIfmUR.net] >>857 サンクスコ でも、引数の評価順については正直お行儀悪いんで 勉強してるみんなはそのへん各自ぐぐってみてね
874 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 00:59:27.52 ID:KABEK1ar.net] >>835 Ruby text = <<'TEXT' trick or treat . tr ick ttrriecatk tri kc eat my money TEXT # 配列化 Trick = "trick".chars Treat = "treat".chars 次へ続く
875 名前:849 mailto:sage [2020/11/01(日) 01:00:32.73 ID:KABEK1ar.net] >>859 の続き def find_index( str, original ) idx_2 = 0 str.each_char.with_index do |char, idx| # 1文字ずつ処理する idx_2 += 1 if char == original[ idx_2 ] return idx if idx_2 == original.length # すべての文字が一致 end nil end results = text.each_line.map do |line| trick = find_index( line, Trick ) treat = find_index( line, Treat ) if !( trick || treat ) then "none" elsif !trick then "treat" elsif !treat then "trick" elsif trick < treat then "trick" elsif trick > treat then "treat" else "same" end end p results #=> ["trick", "trick", "treat", "treat", "none"]
876 名前:デフォルトの名無しさん [2020/11/01(日) 01:29:12.30 ID:17LNcGyj.net] >>835 Kotlin https://paiza.io/projects/pLXGwy1V_3FlM4eqH2w5tg
877 名前:デフォルトの名無しさん [2020/11/01(日) 01:49:31.61 ID:17LNcGyj.net] >>835 C https://paiza.io/projects/hjm6unXa-mcUi6cx1mTJ9g
878 名前:838 mailto:sage [2020/11/01(日) 12:58:01.92 ID:g/v4ZA9S.net] >>835 Ruby 正規表現を捨てて index+inject に def trickOrTreat( str ) trick = 'trick'.chars.inject(-1){|r,ch| break r unless r = str.index( ch, r+1 ); r } treat = 'treat'.chars.inject(-1){|r,ch| break r unless r = str.index( ch, r+1 ); r } return 'none' unless trick or treat return 'trick' unless treat return 'treat' unless trick return (trick < treat)? 'trick' : 'treat' end [ "trick or treat", ". tr ick", "ttrriecatk", "tri kc eat", "my money", "treat or trick", "treat or trick t", ].each{|s| puts trickOrTreat( s ) }
879 名前:蟻人間 mailto:sage [2020/11/01(日) 14:40:36.23 ID:wOVD56Lv.net] お題:大阪都構想が実現すると、現在の大阪市は消滅すると予想される。都構想実現前の住所を実現後の住所に変換しなさい。
880 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 16:05:05.76 ID:+nQAPqAx.net] 次行ってみよう
881 名前:蟻人間 mailto:sage [2020/11/01(日) 16:41:27.74 ID:wOVD56Lv.net] 参考:https://www.asahi.com/articles/ASNBS733ZNBMPTIL00Q.html
882 名前:蟻人間 mailto:sage [2020/11/01(日) 16:44:49.88 ID:wOVD56Lv.net] これも:https://maidonanews.jp/article/13879682
883 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 16:51:14.83 ID:VQGUeFT5.net] お前らは競技プログラミングとかやってる?
884 名前:253 mailto:sage [2020/11/01(日) 16:54:48.84 ID:I8lyxV1q.net] >>868 やろうとしたことはあるがまだ未経験 何か受験勉強みたいになっちゃってるコンテストには魅力を感じない でも世界トップレベルは年間4000万くらい賞金稼ぐとい話をきいてそういうのにはちょっと惹かれる
885 名前:蟻人間 mailto:sage [2020/11/01(日) 17:00:25.77 ID:wOVD56Lv.net] >>865 あんまりバカにするなよ。住所変換できないと大坂大混乱になるよ。
886 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 17:18:29.18 ID:EgIfcLXC.net] バカにしてるのはおまえ 他所の住所変更地の状況知らんのか?50年前の住所でも年賀届くわ 数年〜十数年或いはそれ以上旧住所で配送可能。舐めすぎ
887 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 17:31:11.77 ID:+nQAPqAx.net] >>870 ここでそのお題といても大混乱が回避できるわけでもなし そういう問題じゃなくてそろそろ自分にいい問題作るセンスがない事自覚すべき
888 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 17:35:33.69 ID:S9fsJ+JS.net] データ引っ張ってくるだけじゃん ただの知識問題は悪問
889 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 18:32:31.31 ID:erpRcPg0.net] やってみたが 競技系はプログラミングのスキル向上には役立たんよ
890 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 18:50:53.93 ID:4+fLUvoM.net] >>867 このサイト気持ち悪いな
891 名前:蟻人間 mailto:sage [2020/11/01(日) 19:52:59.24 ID:wOVD56Lv.net] >>875 太陽風を読めよ。
892 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 19:57:24.03 ID:wWMHVvTS.net] >>876 消えろ
893 名前:蟻人間 mailto:sage [2020/11/01(日) 20:04:08.68 ID:wOVD56Lv.net] >>877 お前がえろ
894 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 00:22:13.64 ID:bEILeQs7.net] >>835 octave https://ideone.com/BkciwT
895 名前:デフォルトの名無しさん [2020/11/02(月) 04:28:03.49 ID:2/AbCXtL.net] >>835 Perl https://paiza.io/projects/Ol_sOAbb2ZYW4hIDFLj2wQ 正規表現使ってみました。
896 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 04:45:05.89 ID:BfD57ecO.net] "trick"と"treat"を受理するオートマトンを作って 入力文字列から1文字ずつ与えて状態遷移(または待機)させていく 末尾まで先に受理されたほうを答えとする みたいなことだけ考えた
897 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 04:48:28.19 ID:BfD57ecO.net] けど実装すると無駄にでかくなりそう
898 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 10:04:22.80 ID:/BOVDIIM.net] オートマトンって言語でなんか表現できる構造ある?
899 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 10:41:03.91 ID:5JhQS2vf.net] 正規表現で表現できる⇔オートマトンで受理できる でしょ? 今回なら入力xに対し出力がtrickである場合を [^t]*t[^r]*r[^ie]*i[^ce]*c[^ke]*k.* |[^t]*t[^r]*r[^ie]*i[^ce]*c[^ke]*e[^ka]*k.* ... (10パターン) .... と正規表現だけで表現できてしまう
900 名前:蟻人間 mailto:sage [2020/11/02(月) 12:23:25.05 ID:iXWhExA8.net] お題:パラボラアンテナが理論上の焦点に電波を集めることを示しなさい。 パラボラアンテナの半径を100とし、原点を中心にx軸上に焦点が来るように配置する。x軸と平行に電波がアンテナに入ってきて、入射角と反射角が等しくなるように電波が反射する。 このとき、どの場所で反射しても、反射した電波を表す直線が理論上の焦点に十分近づくことを示せ。
901 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 12:23:58.15 ID:UfGVYnOo.net] まじでセンスないな
902 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 12:36:09.22 ID:zo3ZJgwO.net] パラボラアンテナの半径ってどこのことだよ
903 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 13:43:55.18 ID:gftnEWfN.net] common lisp https://ideone.com/GZ8Wbt うーん微妙
904 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 14:26:45.62 ID:vIueiXdU.net] >>835 .bat @echo off &setlocal enabledelayedexpansion if "%~1"=="" echo none&exit /b set "STR=%~1" set TRICK=trick set TREAT=treat set /a n=0, k=0, t=0 :WHILE if /i "!STR:~%n%,1!"=="!TRICK:~%k%,1!" if %k% LSS 4 ( set /a k+=1 ) else echo trick&exit /b if /i "!STR:~%n%,1!"=="!TREAT:~%t%,1!" if %t% LSS 4 ( set /a t+=1 ) else echo treat&exit /b set /a n+=1 if not "!STR:~%n%,1!"=="" goto :WHILE echo none&exit /b
905 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 18:10:30.68 ID:Ac4tp6ZL.net] >>835 Haskell https://ideone.com/wg9JbO iimport Text.ParserCombinators.Parsec makeP = mconcat . map ( manyTill anyChar . char ) lastInd x s = case ( runParser ( makeP x ) () "" s ) of Left _ -> ( [ 2, 0 ] , x ) Right y -> ( [ 0, length $ x ++ y ], x ) trickOrTreat x = snd $ minimum [ lastInd "trick" x, lastInd "treat" x, ( [1,0], "Happy Halloween" ) ] main = mapM_ ( print . trickOrTreat ) [ "trick or treat", ". tr ick", "ttrriecatk", "tri kc eat", "my money" ]
906 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 19:01:54.49 ID:hORytTpS.net] >>835 #include <stdio.h> #include <string.h> static void tot (char *p) { int i = 0, j = 0; if ((p = strchr (p, 't')) && (p = strchr (p + 1, 'r'))) while (*++p && !(*p == "ick"[i] && ++i == 3) && !(*p == "eat"[j] && ++j == 3)) ; printf ("%s\n", (i == 3) ? "trick" : ((j == 3) ? "treat" : "none")); } int main () { tot ("trick or treat"); tot (". tr ick"); tot ("ttrriecatk"); tot ("tri kc eat"); tot ("my money"); }
907 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 19:55:30.38 ID:0Q72CsT7.net] お題 アスペクト比X:Y、L[inch]のディスプレイの 幅Wと高さHをcm単位でそれぞれ求めよ [入力] X Y L [出力] W H ※cm単位で小数第1位まで出力 [例] 16 9 40 => 88.6 49.8 64 27 29 => 67.9 28.6 3 4 10.2 => 15.5 20.7
908 名前:869 mailto:sage [2020/11/02(月) 20:41:57.79 ID:PEXljxha.net] >>835 octave https://ideone.com/TknUHT ・残り文字数数える関数fがガバガバだったので修正
909 名前:デフォルトの名無しさん [2020/11/02(月) 20:50:30.27 ID:LqVECFSh.net] >>892 Java https://paiza.io/projects/k8RErATdGPNrkP2gRrOmSw
910 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 20:55:38.75 ID:UfGVYnOo.net] >>892 実用的じゃん
911 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 21:39:44.31 ID:PEXljxha.net] >>892 octave https://ideone.com/un3EHy
912 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:00:22.68 ID:PEXljxha.net] >>892 octave https://ideone.com/kETWpz ・若干の変更
913 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:02:25.78 ID:i1cL0pVh.net] >>885 消えろ
914 名前:デフォルトの名無しさん [2020/11/02(月) 22:12:37.48 ID:2/AbCXtL.net] >>892 Perl https://paiza.io/projects/3i_gH0-CGf93OpsUWJzFVg
915 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 23:19:41.46 ID:ZpVsHyOp.net] >>892 JavaScript const f=(x, y, l) => [x, y].map(i => (i * 2.54 * l / Math.sqrt(x ** 2 + y ** 2)).toFixed(1)) console.log(...f(16, 9, 40)) console.log(...f(64, 27, 29)) console.log(...f(3, 4, 10.2))
916 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 00:18:12.81 ID:1BjkDVvF.net] >>892 Hadkell cmpin =2.54 r10 = (/10).fromInteger.round.(*10) toWH (x, y, sz) = let arg = atan2 y x diag = sz * cmpin in ( r10 $ (cos arg) * diag , r10 $ (sin arg) * diag ) main = mapM_ ( print . toWH) [ (16, 9, 40), (64,27,29), (3,4, 10.2) ]
917 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 01:33:31.56 ID:psuX0FGw.net] お題 {1,2,3,4,5,6,7,8} を幾つかの共通部分を持たない空でない集合にわけるやり方を完全列挙 例えば {1,6}+{2,8}+{3,4,5,7} と {2,8}+{1,6}+{3,4,5,7} は同じやり方になるので二重カウントしないこと
918 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 02:32:26.13 ID:yN+x511c.net] >>902 [1..8]は流石にtoo large haskell import Data.List parts [] = [ [ ] ] parts [x] = [ [ [x] ] ] parts ( x : xs ) = [ (x : ys) : zs | ys <- subsequences xs, zs <- parts $ xs \\ ys ] main = do print $ parts [2,3] print $ parts [1,2,3] print $ length $ parts [1..8] ---- [[[2],[3]],[[2,3]]] [[[1],[2],[3]],[[1],[2,3]],[[1,2],[3]],[[1,3],[2]],[[1,2,3]]] 4140
919 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 08:10:12.54 ID:WKYb8LN0.net] >>903 きれいだな
920 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 09:07:39.02 ID:psuX0FGw.net] A:={1,2,3,4,5,6,7,8}; A_1:={A}; A_2:={ {a,b} \subset 2^A | a+b=A,~a+~b=A }; A_3:={ {a,b,c} \subset 2^A | a+b+c=A,~a+~b+~c=A }; A_4:={ {a,b,c,d} \subset 2^A | a+b+c+d=A,~a+~b+~c+~d=A }; A_5:={ {a,b,c,d,e} \subset 2^A | a+b+c+d+e=A,~a+~b+~c+~d+~e=A }; A_6:={ {a,b,c,d,e,f} \subset 2^A | a+b+c+d+e+f=A,~a+~b+~c+~d+~e+~f=A }; A_7:={ {a,b,c,d,e,f,g} \subset 2^A | a+b+c+d+e+f+g=A,~a+~b+~c+~d+~e+~f+~g=A }; A_8:={ {a,b,c,d,e,f,g,h} \subset 2^A| a+b+c+d+e+f+g+h=A,~a+~b+~c+~d+~e+~f+~g+~h=A}; B:=A_1+A_2+A_3+A_4+A_5+A_6+A_7+A_8; count[expand B]; 1:{{1},{2},{3},{4},{5},{6},{7},{8}} 2:{{1},{2},{3},{4},{5},{6},{7,8}} 3:{{1},{2},{3},{4},{5},{7},{6,8}} 4:{{1},{2},{3},{4},{5},{8},{6,7}} 5:{{1},{2},{3},{4},{5},{6,7,8}} 6:{{1},{2},{3},{4},{6},{7},{5,8}} 7:{{1},{2},{3},{4},{6},{8},{5,7}} 8:{{1},{2},{3},{4},{6},{5,7,8}} 9:{{1},{2},{3},{4},{5,6},{7,8}} 10:{{1},{2},{3},{4},{7},{8},{5,6}} 11:{{1},{2},{3},{4},{7},{5,6,8}} 12:{{1},{2},{3},{4},{5,7},{6,8}} ...中略.... 4135:{{2,7,8},{1,3,4,5,6}} 4136:{{3,7,8},{1,2,4,5,6}} 4137:{{4,7,8},{1,2,3,5,6}} 4138:{{5,7,8},{1,2,3,4,6}} 4139:{{6,7,8},{1,2,3,4,5}} 4140:{{1,2,3,4,5,6,7,8}}
921 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 09:10:16.73 ID:psuX0FGw.net] 美しさだけなら某集合論用処理系に勝る ものはないと思うが.... >>901 の短時間回答能力とHaskelの潜在能力は 驚嘆すべきかも
922 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 09:15:47.91 ID:psuX0FGw.net] 間違ってたときのコード貼ってしまったw ~a+~b=A とかは要らなかったw a+b=A とかだけでよかった a \cup bが普通の和集合ね。
923 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 21:04:35.96 ID:eC8ouzxK.net] >>892 bat :: 引数は整数限定。結果は少数第2位を四捨五入。0〜0.04の時のみ少数第2位まで表示 :: 少し大き目の値を与えるとoverflow @echo off &setlocal enabledelayedexpansion set /a "x=%1*100, y=%2*100, z=0, d=%3*254, s=x*x+y*y, a=s>>1 " :WHILE if %a% NEQ %z% set /a "z=a, a=(a+s/a)>>1 " &goto :WHILE set /a w=x*d/a, h=y*d/a for %%G in (w h) do ( if !%%G:~-1! GEQ 5 set /a %%G+=10 if !%%G! GEQ 100 ( set %%G=!%%G:~0,-2!.!%%G:~-2,1! ) else if !%%G! GEQ 10 ( set %%G=0.!%%G:~-2,1! ) else if !%%G! GEQ 1 ( set %%G=0.0!%%G! ) else if !%%G! EQU 0 ( set %%G=0.00 ) else echo ERROR: %%G=!%%G! ) echo=%w% %h%
924 名前:デフォルトの名無しさん [2020/11/04(水) 00:20:20.72 ID:rxWDSDf0.net] >>892 Lua function f(x, y, l) local a =2.54 * l / (x * x + y * y)^0.5 return x * a , y * a end print(string.format("%.1f , %.1f", f(16, 9, 40))) 実行結果 88.6 , 49.8
925 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 00:20:22.20 ID:kNuSoIVx.net] windows知らんけど バッチ・ファイルすげぇなww
926 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 18:59:14.79 ID:M+x6liG8u] 【アフィリエイト】ブログで「月100万円稼ぐ方法」を初心者向けにプロブロガーが解説 https://www.youtube.com/watch?v=tnp0oUbg2uc 【実例有り】ブログで月1万円稼ぐまでの具体的な道筋を教える【プロが解説】 https://www.youtube.com/watch?v=S-pk5AmW3g8 【案件も公開】ブログで月20万円稼ぐ方法の全て。具体的な道筋や戦略も全て公開【雑記でもいけた】 https://www.youtube.com/watch?v=Jiujwjhe300 ブログ収益が大きく伸びた、たった1つのきっかけを話す【ネタバレ:人と会う】 https://www.youtube.com/watch?v=r5cutrq6GO4 ブログで稼ぐ仕組み徹底解説】初心者にもやさしく、丁寧に説明 https://www.youtube.com/watch?v=n4qF7xpL7-M 【ミスるとヤバい】特化ブログと雑記ブログ、どっちがいいの?おすすめの運営方法も解説! https://www.youtube.com/watch?v=sh2v5Uqlo1M 【危険】ブログで稼げずに「挫折」してしまう人の特徴【初心者は特に注意】 https://www.youtube.com/watch?v=W86zHTngRLE
927 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 20:24:03.31 ID:uO47xEs9.net] >>902 Ruby https://ideone.com/uEqDoX
928 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 03:19:19.40 ID:EuRO0zRP.net] >>902 C++ https://ideone.com/YmUte9
929 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 20:02:28.58 ID:pDv0veJc.net] お題 '□'(正方形)と'_'(空白)で表される図形を45度回
930 名前:転して描画せよ。 [例1] □ /\ \/ [例2] ___□ □□_□ _□□□ /\ \/\ /\/ /\ \/\/\/ \/\/ \/ [] [ここ壊れてます]
931 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 20:47:59.87 ID:uObXfCng.net] デカくなっててワロタ 良さげなお題
932 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 23:31:16.69 ID:5bWXoO+B.net] >>914 html <textarea style="transform:rotate(45deg)"> ___□ □□_□ _□□□ </textarea>
933 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 23:39:12.30 ID:W9kenpkY.net] >>916 すげぇな 今はCSSでこんなことまでできるのか
934 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 23:40:00.35 ID:uObXfCng.net] :scale(2)もしとけ
935 名前:デフォルトの名無しさん mailto:sage [2020/11/06(金) 01:21:28.35 ID:DUBJiW5Z.net] >>914 haskell https://ideone.com/VwHiJD
936 名前:デフォルトの名無しさん [2020/11/06(金) 03:01:56.79 ID:2mWV4tVe.net] >>902 Java https://paiza.io/projects/zGMV5xqRPjP1fxjo1Zu1Nw
937 名前:253 mailto:sage [2020/11/06(金) 13:23:23.40 ID:1EHNC/LO.net] >>902 Perl5 use feature qw{current_sub say}; use Data::Dump 'dump'; @a = sub{ my $l = pop; @_ ? ( map{ sub{ map{ sub{ sub{ push @{$_[$_]}, $l; [@_] }->(map{[@$_]} @_); }->(@_) } 0..@_ }->(@$_) } __SUB__->(@_) ) : [[$l]]; }->(1..8); say dump @a; say scalar @a; 実行結果 ~ $ perl 18_892.pl ( [[1 .. 8]], [[1 .. 7], [8]], … 中略 [[1], [2], [3], [4], [5], [6], [7, 8]], [[1], [2], [3], [4], [5], [6], [7], [8]], ) 4140
938 名前:デフォルトの名無しさん mailto:sage [2020/11/06(金) 13:24:39.43 ID:DUBJiW5Z.net] >>914 haskell 素直に内包表記使ったVer. https://ideone.com/gA63Fi
939 名前:デフォルトの名無しさん [2020/11/07(土) 15:16:17.29 ID:dGj5mxP2.net] sed 's/□/◇/g' あ、いや、なんでもないです。忘れてください。
940 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 15:50:17.56 ID:0+q2MsjY.net] >>914 bat @echo off &setlocal enabledelayedexpansion if "%~1"=="" set "this=%~0" &"%~0" "□" set /a n=0, Hmax=0 :GET_ARG set "arg%n%=%~1" set "arg%n%=!arg%n%:_=0 !" set "arg%n%=!arg%n%:□=1 !" shift if not "%~1"=="" set /a n+=1 &goto :GET_ARG for /L %%i in (0,1,%n%) do ( set h=0 for %%b in (!arg%%i!) do set /a a[%%i;!h!]=%%b, h+=1 if !h! GTR !Hmax! set /a Hmax=h ) set /a t=n+Hmax, Hmax-=1 for /L %%a in (0,1,%t%) do for /L %%b in (0,1,%t%) do set R[%%a;%%b]=0 for /L %%a in (0,1,%n%) do for /L %%b in (0,1,%Hmax%) do ( set /a A=%%a+%%b, B=a+1, C=n+%%b-%%a, D=c+1 set /a "R[!A!;!C!]|=a[%%a;%%b], R[!A!;!D!]|=a[%%a;%%b], R[!B!;!C!]|=a[%%a;%%b], R[!B!;!D!]|=a[%%a;%%b]" REM orをxorに替えればアウトライン表示 ) :: for /L %%A in (0,1,%t%) do (for /L %%B in (0,1,%t%) do set "P%%A=!P%%A!!R[%%A;%%B]!") &echo !P%%A! for /L %%A in (0,1,%t%) do ( for /L %%B in (0,1,%t%) do ( set /a "M=%%A+%%B, M%%=2" if "!R[%%A;%%B]!"=="0" (set "S%%A=!S%%A! ") else if "!M!"=="0" (set "S%%A=!S%%A!/") else set "S%%A=!S%%A!\" ) echo=!S%%A! ) endlocal if not "%~0"=="_□□□" "%this%" "___□" "□□_□" "_□□□" pause &exit /b
941 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 19:47:28.12 ID:/E6xY+R5.net] バッチでやるとかいい根性してる
942 名前:デフォルトの名無しさん [2020/11/07(土) 21:06:37.63 ID:anINQjB0.net] >>914 Common Lisp https://ideone.com/CMyiD0
943 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 22:21:52.44 ID:alCltY04.net] >>918 scale(1.41421356)でしょ
944 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 23:04:28.88 ID:zLEnd997.net] >>902 ビット操作で直接作れた https://paiza.io/projects/JwD_YC7dX2RRZz8G9ydnaA
945 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 00:05:04.78 ID:DLA7KrcO.net] >>924 バッチファイル兄貴いいぞ もっとやれ
946 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 00:15:55.29 ID:ct8WHwWl.net] バッチよくやってるな batにトランスパイルできるもっといい感じの構文の言語とかないの
947 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 02:24:23.73 ID:vLTv8mzL.net] バッチで>>902 やる猛者はいないのか? QZならできそうだがだんまりか?
948 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 02:34:25.46 ID:HKu5GaPi.net] >>928 このコードZen2までのAMDのCPUだと多分とんでもなく遅くなる ここで使ってるpdep命令がintelのやZen3と比べて100倍以上遅いから
949 名前: mailto:sage [2020/11/08(日) 03:02:51.65 ID:H3a4zXqH.net] >>931 私は C しか書けません
950 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:56:26.07 ID:YnyAcD/m.net] >>930 こんなのならあった https://github.com/imachug/BatchBuilder moduleサポート: export say_hello echo Hello, %1! end export でエクスポート import say_hello Takashi でインポート(というかecho Hello, Takashi!に置き換わる) 値返却 (return) サポート: export ask q set /p result=%q%? return %result% end export export delete_dir import -> agree ask "Delete %1" if "%agree%" == "yes" ( rmdir /S /Q %1 ) end export globalキーワード: module内の変数はデフォでlocal。 global変数にしたいときはglobalキーワードを使う。 global my_var=hogehoge
951 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:57:27.82 ID:YnyAcD/m.net] >>934 の続き 再帰サポートのための2つのディレクティブ: @safe_recursion @follow_local クラスとオブジェクト: クラス作成 class ClassTest export say_hello echo Hello, %1! end export export say_bye echo Bye, %1! end export end class オブジェクト生成 new -> my_class ClassTest メソッド呼び出し import %my_class%.say_hello Takashi import %my_class%.say_bye Takashi 他、クラスフィールドやマジックメソッドなど
952 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 04:20:05.05 ID:YnyAcD/m.net] >>930 もうひとつ。 https://github.com/kerrgavin/Transpiler-DSL-to-Windows-Batch-Script >>934 がbatの拡張といったおもむきなのに対して、こちらは専用DSLからのトランスパイラ。Python製。 二値の平均: avg(arg1, arg2, average) fun avg { num a = larg1 + larg2 num a = a/2 "echo" a } 以下にトランスパイルされる @echo off SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION call :avg %1,%2,%average% @EXIT /B 0 :avg set /a a=%~1 + %~2 set /a a=%a% / 2 echo %a% EXIT /B 0 0から9999まで表示: for (num i = 0;i < 10000;i+1){ "echo" i } トランスパイル結果略
953 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 05:03:48.08 ID:YnyAcD/m.net] >>930 シェルスクリプトからの変換系: https://github.com/daniel-sc/bash-shell-to-bat-converter https://github.com/sagiegurari/shell2batch あと専用言語からのトランスパイル系でもうひとつ凄いのがあった。 https://github.com/batsh-dev-team/Batsh タイプ的には >>936 と同じような感じなんだけどbatにもシェルスクリプトにもコンパイルできる。 こっちは凄いねスター4,000超えてるわ。 なんでこれが最初に見つからんのや… プレイグラウンド( https://batsh.org/ )もあってサンプルロード・コンパイルもできるから試してみて。 文法はオーソドックスなC系ですね。
954 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 05:16:53.07 ID:YnyAcD/m.net] >>937 moongiftに紹介記事があった。 https://www.moongift.jp/2019/08/batsh-bashbatchのスクリプトを生成するプログラミング言語/ …そしてアドレスバー見たら既にお気に入りに登録されていた…
955 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 08:18:54.23 ID:ct8WHwWl.net] >>937 これきれいだな
956 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 23:19:00.95 ID:biYC5NlX.net] もうすぐポッキーの日 [お題] 人口合計でオール1 URLのページに都道府県別の人口が載っている。 今回使用するのは、2019/10のデータ https://ideone.com/R4PCiQ 同じ県は一回のみで、異なる県を何県でも選んでよい。 (つまり選び方は全部で 2^47 種類) 人口合計が"1"のみの数字となる選び方は何種類あるか? (実質、1111万1111人, 1億1111万1111人になる選び方) ※一発正解問題、実行時間3秒程度。 同ページの他の年月人口でも計算できる程度のクオリティでok ※ちなみに 2015/10データだと916(40+876)種類だった。
957 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 23:52:24.94 ID:XExSNiE1.net] 11111111 は43? 111111111はオンラインコンパイラでタイムアウトorz
958 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:38:20.57 ID:duQVrAg3.net] 面白そうなお題
959 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:38:46.30 ID:qJS2/p90.net] 111111111 は650かな?
960 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:45:23.62 ID:qJS2/p90.net] とりあえず Haskell spp19 = (小さいもの順に並べた元データ) findSum :: Int -> [Int] -> Int findSum x ys = case ys of [] -> 0 ( z : zs ) | z > x -> 0 ( z : zs ) | z == x -> 1 ( z : zs ) | otherwise -> ( findSum x zs ) + ( findSum ( x - z ) zs ) main = do print $ findSum 15105031 spp19 print $ findSum 11111111 spp19 ---- 650 43
961 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 02:25:54.45 ID:903MPdZb.net] batコーイ!!
962 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 02:49:15.00 ID:VuEsWlWs.net] >>940 https://ideone.com/8nuT5d 力任せなコードだけどどうにか時間内に終わった
963 名前:デフォルトの名無しさん [2020/11/10(火) 13:44:24.83 ID:3xGJBleZ.net] 典型的なdp問題じゃねえの
964 名前:929 mailto:sage [2020/11/10(火) 17:29:30.75 ID:q5cN/btj.net] >>940 ・想定解はDPの数え上げ さすがに1.1億×47は苦しいので、 1.1億に関しては、(全人口 - 1.1億)で計算する。 そうすれば、1600万×47の計算量で済む。 https://ideone.com/R4PCiQ 下にpython(numpy)で想定解追加
965 名前:253 mailto:sage [2020/11/11(水) 00:47:47.87 ID:vox+S3u3.net] (´・ω・`)
966 名前:デフォルトの名無しさん mailto:sage [2020/11/11(水) 18:19:57.16 ID:NMl7/e2v.net] 暇つぶしに>>944 がどれくらい再帰呼び出し読んでるか数えてもらった findSum' x ys = let ( z : zs ) = ys in case ys of [ ] -> 0 _ | z >= x -> 0 otherwise -> ( findSum' x zs ) + ( findSum' ( x - z ) zs ) + 2 ---- 2021619696 20億回ちょい dpだと15,105,031×47=709,936,457で7億回ちょいだから35%ほどになるのか 勉強になった
967 名前:デフォルトの名無しさん [2020/11/12(木) 15:39:00.87 ID:VX9X1ew1.net] お題1 1〜nまでの偶数をランダムに出力してください お題2 [開始の数] [増分] [終了の数]を入力として受け取りランダムに出力してください 例 入力: 1 2 10 出力: 1 1 3 9 1 7 5
968 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 15:58:04.88 ID:uK53dAw4.net] >>951 を読んで、やっぱり日本語は非論理的な言語だな、と思った。
969 名前:デフォルトの名無しさん [2020/11/12(木) 16:04:34.29 ID:VX9X1ew1.net] 書き手の問題だと思うよ
970 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 18:42:17.55 ID:HU5jtk1k.net] オレは深まりゆく秋を感じた
971 名前:デフォルトの名無しさん [2020/11/12(木) 19:26:25.71 ID:VX9X1ew1.net] ふーけゆくー秋の夜ー
972 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 19:34:08.43 ID:nzp5rNOe.net] >>951 Ruby p rand(2..$_.to_i) & -2 # => 32 while gets -*- input -*- 2 10 100 -*- output -*- 2 6 78 p eval$_.gsub(/\s+/,'%s')%%w[.step(*[ , ].rotate).to_a.sample]while gets -*- input -*- 1 2 10 1 2 10 10 5 99 -*- output -*- 7 1 85
973 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 23:53:28.13 ID:HU5jtk1k.net] そゆいみか 入力パースするとこは略して Haskell import System.Random import Control.Monad randomABC a b c = let r = [ a, a+b .. c ] in ( r !! ) <$> ( randomRIO ( 0, length r - 1 ) :: IO Int ) main = do print =<< ( replicateM 20 $ randomABC 1 2 10 ) print =<< ( replicateM 20 $ randomABC 5 7 40 ) ---- [1,1,9,7,9,7,7,9,7,5,7,7,7,3,7,1,5,9,5,7] [33,26,26,26,12,19,40,40,12,33,19,26,19,26,26,33,19,5,5,33]
974 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 20:43:02.05 ID:3cTZftC0.net] >>951 bat @echo off &setlocal set /a n=8 &REM 出力個数 echo -3 9 for /L %%i in (1,1,%n%) do call :RAND_A2B -3 9 echo=&echo 3 -5 for /L %%i in (1,1,%n%) do call :RAND_A2B 3 -5 echo=&echo 4 4 for /L %%i in (1,1,%n%) do call :RAND_A2B 4 4 echo=&echo -5 2 2 for /L %%i in (1,1,%n%) do call :RAND_SiE -5 2 2 echo=&echo 2 -3 -12 for /L %%i in (1,1,%n%) do call :RAND_SiE 2 -3 -12 echo=&echo 2 3 -4 for /L %%i in (1,1,%n%) do call :RAND_SiE 2 3 -4 pause &exit /b :: 1〜n間の偶数をrandom出力 => a〜b間の偶数をrandom出力 :RAND_A2B set
975 名前:local set /a "f=%1&1" if %1 EQU %2 ( if %f% EQU 0 echo %1) &exit /b if %1 LSS %2 set /a a=%1+1, b=%2 if %1 GTR %2 set /a a=%2+1, b=%1 set /a "c=b-a+1, r=((%random%<<15)+%random%)%%c+a, r&=~1" echo %r%&exit /b :: [開始の数] [増分] [終了の数] を引数として条件を満たす値をrandom出力 :RAND_SiE setlocal if %2 NEQ 0 ( set /a "a=(%3-%1)/%2" ) else set /a a=0 if %a% LSS 0 set /a a=0 set /a "r=%random%%%(a+1)*%2+%1" echo %r%&exit /b [] [ここ壊れてます]
976 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 22:58:48.40 ID:ghr6tNw2.net] オンラインでbat動かせるサイトない? >>958 試して見たいんやけど
977 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 23:20:18.52 ID:a1Z/nYk3.net] bat兄貴天才やな
978 名前:デフォルトの名無しさん mailto:sage [2020/11/14(土) 00:46:02.44 ID:WHpB6hAc.net] >>959 それをお題にするのはありかも 947を読んで同じ動きをするプログラムを書け、とかね
979 名前:デフォルトの名無しさん mailto:sage [2020/11/14(土) 06:23:08.91 ID:rQXll7XK.net] 過疎るのもわかるわ
980 名前:デフォルトの名無しさん [2020/11/15(日) 04:26:34.92 ID:UMNa3GdF.net] >>951 Java https://paiza.io/projects/IUNanoZeum1nhkVUBUqXZA
981 名前:デフォルトの名無しさん [2020/11/15(日) 18:33:50.31 ID:UMNa3GdF.net] お題 天気のデータを読み取って翌日の天気は前日と同じと予測しそれが当たる確率を求めてください 入力: 曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴
982 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 18:40:06.62 ID:KOddDUPF.net] >>964 Ruby gets.split(?,).each_cons(2).tap{|a| p 1.0 * a.count{|b| !b.uniq[1]}/ a.size} # => 0.3333333333333333
983 名前:デフォルトの名無しさん [2020/11/15(日) 18:41:22.95 ID:UMNa3GdF.net] はやいな
984 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:20:51.56 ID:8j4ATkh0.net] >>964 JavaScript let hits = 0 const input = '曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴'.split `,` input.reduce((acc, v) => (hits += acc == v ? 1 : 0, v)) console.log(hits / (input.length - 1)) //=> 0.3333333333333333
985 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:22:58.52 ID:KOddDUPF.net] >>967 .split(`,`) では
986 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:23:55.05 ID:KOddDUPF.net] すまん。バッククウォートだった。
987 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 00:51:51.08 ID:lyH8UsEw.net] >>958 @echo off &setlocal enabledelayedexpansion for /f "delims=:" %%A in ('findstr /en ARGS "%~0"') do set /a L=%%A, n=12 &REM nは出力個数 for /f "usebackq skip=%L% delims=" %%A in ("%~0") do set "i="&(for %%B in (%%A) do set /a i+=1)&echo %%A&set "S="&(for /L %%D in (1,1,%n%) do call :RAND!i! %%A&(if defined r set "S=!S! !r!" &set "r="))&echo=!S!&echo= set /p<nul=終了&pause >nul &exit /b :: a〜b間の偶数をrandom出力 :RAND2 setlocal &REM VAR= a b c r f if %1 NEQ %2 ((if %1 LSS %2 (set /a a=%1+1, b=%2) else set /a a=%2+1, b=%1) &set /a "c=b-a+1, r=((%random%<<15)+%random%)%%c+a, r&=~1") else set /a "f=%1&1" &if !f! EQU 0 set r=%1 endlocal &set "r=%r%" &exit /b :: [開始の数] [増分] [終了の数] を引数として条件を満たす値をrandom出力 :RAND3 setlocal &REM VAR= a r if %2 NEQ 0 set /a "a=(%3-%1)/%2" &if !a! LSS 0 set "a=" &REM [ else set "a="] 省略:上位環境でaが使用されている場合には必要 set /a "r=((%random%<<15)+%random%)%%(a+1)*%2+%1" &REM set /aでは存在しない変数は0として扱われる endlocal &set "r=%r%" &exit /b :: ARGS -3 9 3 -5 4 4 5 5 1 0 2 -5 2 2 2 -3 -12 2 3 -4 -256 040 0x100 0400 ~0x1F ~0xff
988 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 03:31:51.13 ID:apQPm4KR.net] >>965 haskell import Data.List str = "曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴" accuracy x = let pairs = id . map ( take 2 . reverse ) -- [ "BA", "CB", "DC",..] . drop 2 -- [ "AB", "ABC",..] . inits -- [ "", "A", "AB",..] . filter ( /= ',' ) -- "ABCD.." $ x successes = filter ( \x -> head x == last x ) pairs nP = genericLength pairs nS = genericLength successes in nS / nP main = print $ accuracy str
989 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 03:32:04.47 ID:lyH8UsEw.net] >>964 bat @echo off &setlocal enabledelayedexpansion set /a i=-1, match=0 for %%A in (曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴) do ( set /a i+=1 if "!S!"=="%%A" set /a match+=1 set s=%%A ) :: echo 一致数/比較回数 : %match%/%i% set /a a=match, b=i :EUCLID_GCD if %a% NEQ 0 set /a "c=a, a=b%%a, b=c" &goto :EUCLID_GCD set /a match/=b, i/=b if %match% NEQ 0 (echo 確率 : %match%/%i%) else echo 確率 : 0 pause
990 名前:デフォルトの名無しさん [2020/11/20(金) 19:52:50.75 ID:HawO8Ftl.net] >>951 Kotlin https://paiza.io/projects/AeE4_7EmFluzVxuefBJmDw
991 名前:とくめい mailto:kakeruyamasato@gmail.com [2020/11/24(火) 01:34:45.23 ID:SQQDs1Pp.net] kakeruyamasato@gmail.comこのメアドを悪用してみせて
992 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 08:07:25.33 ID:aaTbFie9.net] 通報しますた
993 名前:デフォルトの名無しさん [2020/11/25(水) 01:49:24.25 ID:O2Mln20T.net] >>964 Kotlin https://paiza.io/projects/-bhKDI048mc0kOJzIFqOHA
994 名前:デフォルトの名無しさん mailto:sage [2020/11/26(木) 19:02:45.00 ID:ACzSTlzf.net] >>951 a,b,c = [1,2,10] puts ((a..c) % b).to_a.shuffle
995 名前:デフォルトの名無しさん [2020/11/27(金) 01:08:20.91 ID:bIFui41M.net] >>977 なんていう言語?
996 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 02:57:17.73 ID:ocMZsxYX.net] >>978 rubyでしょ
997 名前:デフォルトの名無しさん [2020/11/27(金) 19:31:40.66 ID:Pnsgs34G.net] rubyだったか。
998 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 00:37:28.60 ID:PcPNtVOH.net] %がわからないって怒られた
999 名前:デフォルトの名無しさん [2020/11/28(土) 07:20:49.13 ID:mYohOVrw.net] お題 以下を表示する Monday Tuesday Wednesday Thursday Friday Saturday Sunday
1000 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 07:34:45.42 ID:CtkueG9H.net] >>982 bat @echo.以下を表示する @echo.Monday @echo.Tuesday @echo.Wednesday @echo.Thursday @echo.Friday @echo.Saturday @echo.Sunday
1001 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 08:05:44.72 ID:nEfgRBi9.net] 意外と難しいな
1002 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 08:40:11.81 ID:wyvnQiBB.net] >>982 Ruby puts Date::DAYNAMES.rotate # => Monday Tuesday Wednesday Thursday Friday Saturday Sunday
1003 名前:デフォルトの名無しさん [2020/11/28(土) 09:00:26.43 ID:2Muxtrov.net] >>977 問題の解釈違わねえ?
1004 名前:デフォルトの名無しさん [2020/11/28(土) 09:12:26.58 ID:nEfgRBi9.net] >>982 js const range = v => [...Array(v).keys()] const DAY_MS = 24 * 60 * 60 * 1000 const weekday = d => d.toLocaleString('en', { weekday: 'long' }) console.log(range(7).map(i => weekday(new Date((i + 4) * 24 * 60 * 60 * 1000))).join("\n"))
1005 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 11:36:22.72 ID:FGpMIdZG.net] >>981 ( 1..10 ) % 2 range に、% というメソッドは無い!
1006 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 12:27:13.39 ID:GOv1h+p2.net] >>988 NEWS for Ruby 2.6.0 2.5.0 以降の変更 https://docs.ruby-lang.org/ja/2.6.0/doc/news=2f2_6_0.html > Range > 新規メソッド > Range#% が追加されました。 [feature#14697]
1007 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 12:38:57.57 ID:L52xXSLK.net] 予想通りの流れになってくれて何より
1008 名前:977 mailto:sage [2020/11/28(土) 14:12:40.28 ID:FGpMIdZG.net] ruby -e 'p ( ( 1..5 ) % 2 ).to_a' #=> [1, 3, 5] 2 は、各ステップの大きさ
1009 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 16:09:49.88 ID:myGQAvEM.net] ダメだ オンラインでRuby 2.6使えるとこ見つからない どっかない?
1010 名前:デフォルトの名無しさん [2020/11/28(土) 16:34:18.46 ID:gB71rnHS.net] >>992 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux] https://www.jdoodle.com/execute-ruby-online/ ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux] https://techiedelight.com/compiler/ ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux] https://paiza.io/en/projects/new?language=ruby
1011 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 16:39:08.00 ID:nEfgRBi9.net] jdoodle初めて知った 手元の汚い環境にもrepelにもpaizaにもなかったとき使おう
1012 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:26:12.48 ID:FGpMIdZG.net] paiza は、いつも新しい codepad は、古いような気がする
1013 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:30:47.77 ID:FGpMIdZG.net] 漏れは、Windows 10, WSL, Ubuntu 18.04 で、 VSCode の拡張機能、Remote WSL も使う Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、 ruby 2.6.6, node 12.16.2 を入れた 対応している言語を表示すると、 anyenv install --list Renv, crenv, denv, erlenv, exenv goenv, hsenv, jenv, jlenv, luaenv nodenv, phpenv, plenv, pyenv, rbenv sbtenv, scalaenv, swiftenv, tfenv Julia のjlenv も追加された。 anyenvと同様のツールに、asdf もある
1014 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:57:16.56 ID:myGQAvEM.net] >>993 thx でもiphoneでどのサイトもコピペができないorz なんでなんだろう?
1015 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 18:01:21.11 ID:myGQAvEM.net] とりあえず自分で打ち込んで試した shuffleはランダムに並べ替えみたいだからちょっと違うかな
1016 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 22:44:23.07 ID:wyvnQiBB.net] >>998 shuffleの代わりにsampleを使うといい
1017 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 06:10:23.39 ID:LsAPFm47.net] >>982 bat :: 年月日を元に曜日を返す。 No args validation. 引数が無ければシステム時間 @echo off &setlocal enabledelayedexpansion if not "%~1"=="" set "date=%~1" :: set "date=2020.09.09" set i=0 for %%a in (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Y,M,D) do set "wd!i!=%%a"&set /a i+=1 set i=7 for /f "tokens=1-3 delims==/-.:,;()_・年月日 " %%a in ("%date%") do for %%d in (%%a %%b %%c) do for /f "tokens=* delims=0" %%e in ("%%d") do for /f %%i in ("!i!") do set /a !wd%%i!=%%e,i+=1 :: echo=%Y%,%M%,%D%, set /a h=(365*Y+(Y-1)/4-(Y-1)/100+(Y-1)/400+(M+7)/10*(30*(M-3)+(3*M-7)/5+59+D-1)+(1/(Y%%4+1)-1/(Y%%100+1)+1/(Y%%400+1)+(M+7)/10)/2)%%7 echo=!wd%h%! pause&exit /b
1018 名前:デフォルトの名無しさん [2020/11/29(日) 12:05:03.89 ID:POmPIOqu.net] >>982 Julia using Dates for w=1:7 println(Dates.format(Date(1,1,w), "E")) end
1019 名前:デフォルトの名無しさん [2020/11/29(日) 14:25:29.24 ID:KxupmnON.net] >>982 Kotlin script println(java.text.DateFormatSymbols(java.util.Locale.ENGLISH).getWeekdays().let { wd -> ((2..6) + 1).map { wd[it] } }.join ToString("\n")) Javaのライブラリをそのまま使ってやってるので1が日曜で7が土曜になってしまい、 それを並び替えてから出力する必要があって少し複雑になった。
1020 名前:253 mailto:sage [2020/11/29(日) 15:02:42.80 ID:onV9IrOo.net] >>982 Perl5 use Time::Piece; use Time::Seconds; $
1021 名前:t = Time::Piece->strptime('210201','%y%m%d'); for (0..6) { print $t->fullday."\n"; $t += ONE_DAY } 実行結果 ~ $ perl 18_971_fullday.pl Monday Tuesday Wednesday Thursday Friday Saturday Sunday [] [ここ壊れてます]
1022 名前:253 mailto:sage [2020/11/29(日) 17:21:11.49 ID:onV9IrOo.net] >>982 Perl5、>>1003 のもうチョイ手抜き版 use Time::Piece; for (1..6,0) { print Time::Piece::fullday([(0)x6, $_])."\n" } ~ $ perl 18_971_fullday.pl Monday Tuesday Wednesday Thursday Friday Saturday Sunday
1023 名前:デフォルトの名無しさん [2020/11/29(日) 20:08:13.17 ID:idUZlJAo.net] >>982 Java https://paiza.io/projects/F3UDtssyIBLD9KwEcaTfjA
1024 名前:デフォルトの名無しさん [2020/11/29(日) 20:39:34.37 ID:idUZlJAo.net] お題 配列を入力として受け取り 値が連続するサブ配列のうち、合計が最大のものを出力してください 例 入力:[−2, 1, −3, 4, −1, 2, 1, −5, 4] 出力:[4, −1, 2, 1]
1025 名前: mailto:sage [2020/11/29(日) 21:07:17.97 ID:POdKASdd.net] >>1006 >サブ配列 の定義を教えてください
1026 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 21:15:00.96 ID:sOEBQUsx.net] 値が連続しないサブ配列とは?
1027 名前:デフォルトの名無しさん [2020/11/29(日) 21:21:35.35 ID:idUZlJAo.net] >>1007 教えません >>1008 [1, 4, 2, 1, 4] とか
1028 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 21:26:09.30 ID:sOEBQUsx.net] [4, −1, 2, 1]は値が連続するサブ配列で [1, 4, 2, 1, 4]は値が連続しないサブ配列? 連続の定義は?
1029 名前:デフォルトの名無しさん [2020/11/29(日) 21:34:10.34 ID:idUZlJAo.net] >>1010 教えません
1030 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 138日 7時間 40分 24秒
1031 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています