1 名前:デフォルトの名無しさん mailto:sage [2019/07/28(日) 19:39:57.54 ID:832c/ukY.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/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part14 mevius.5ch.net/test/read.cgi/tech/1558168409/
313 名前:デフォルトの名無しさん [2019/09/04(水) 02:57:47.93 ID:5U+WeLbN.net] あーこりゃ致命的に頭悪い奴か 数学も日本語も通じないとは
314 名前:デフォルトの名無しさん [2019/09/04(水) 07:57:08.75 ID:FC7xGJ7s.net] 定理を発見したら著作権で保護されるのかな。
315 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 08:46:01.17 ID:HTJbgiFI.net] 日本数学会に提出する前に 大学の教授にみてもらわないと
316 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 09:59:12.24 ID:bj6rvw0v.net] 次スレは数学禁止ってスレタイに入れないとな
317 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 10:54:57.98 ID:wUnebE5/.net] >>310 そして手柄を横取りされる定期
318 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 11:24:41.75 ID:P7o6e2y0.net] お題: 平面上にいくつかの円 (内部も含む円) がある それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け
319 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 13:52:37.01 ID:aB3hMBX/.net] 半年くらい前にそのお題あったが思いつかなかったんだよなー…モンテカルロなら作れるがw https://mevius.5ch.net/test/read.cgi/tech/1549160513/405
320 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 14:06:48.93 ID:HTJbgiFI.net] それ円周率パイとネイピア数のe の積が N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?
321 名前:デフォルトの名無しさん [2019/09/04(水) 14:13:24.75 ID:yXyTPmQk.net] >>315 辛くねえよ どうやったら方程式解いて超越数が出てくんだよ ちょっとは考えてからレスしろ
322 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 14:29:48.47 ID:HTJbgiFI.net] 例として313が N=4 で、それを与える円4つが (x-ePi-1)^2+(y-ePi)^2=1 (x-ePi+1)^2+(y-ePi)^2=1 (x-ePi )^2+(y-ePi-1)^2=1 (x-ePi )^2+(y-ePi+1)^2=1 だったら大変かもしれない?
323 名前:デフォルトの名無しさん [2019/09/04(水) 17:19:01.11 ID:reYoOADS.net] >>273 これ解無しって言ってるけど自明じゃないよね ホントにあってんのか?
324 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 18:34:12.43 ID:6EOP5CCF.net] >>306 横レスだが 騒ぐ前に元の>>272 の問題文を良く見なさい それで自分で判断できなければ数学的な問題に取り組むのは止めておいたほうが良い
325 名前:デフォルトの名無しさん [2019/09/04(水) 18:42:19.25 ID:8qjE+V3b.net] >>319 一連のやり取り見て出題者がそこら辺理解してなさそうだったから改めて確認しただけなんですけど >>272 を見ただけでは>>306 の全ての質問に答えられないことは明白なのに何いってんの? 数学の論理もわからねえくせに見当違いのお説教してんじゃねえよ
326 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 18:49:05.83 ID:A7beDSD/.net] 5chはペアプレイではなくマルチプレイということをお忘れなく。
327 名前:デフォルトの名無しさん [2019/09/04(水) 19:10:06.78 ID:5HyNYB53.net] >>318 省いててわかりずらいかもしれないがアウトライン。一般化はできないだろう解き方。 3^x + 4^y = 5^z の自然数解は(2,2,2)唯一つ mod 3で1 ≡ (-1)^z、 z偶数が必要 z=2wとおくと 3^x = (5^w + 2^y) (5^w - 2^y) 簡単な考察で右辺の後項が3の倍数ならば前項は3の倍数になりえないので後項=1、前項=3^xが必要 w偶数とすると結果2式をmod 3で比較して不成立、w奇数が必要 y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立 y=1ならば解なし
328 名前:デフォルトの名無しさん [2019/09/04(水) 19:23:20.13 ID:5HyNYB53.net] かいてから考えたら間違ってるところがでてきた ここまではいいとして、これあってないな > y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
329 名前:デフォルトの名無しさん [2019/09/04(水) 19:26:32.69 ID:5HyNYB53.net] いやあってた 5^2 ≡ 1 (mod 8)になってしまうとおもったら w奇数だから、5^3 ≡ 5 (mod 8)だった 5しかでない
330 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 20:01:35.58 ID:P7o6e2y0.net] >>314 あら既出だったのか Twitterで見つけてきたんだけど、その人もこのスレ見てたのかな それとも問題自体が有名な問題なのかな?
331 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 22:19:56.37 ID:bGWgoiea.net] 少なくとも自分はAOJで見た記憶がある たしか高校生向けのコンテストの問題だったはず…
332 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 22:31:18.96 ID:A7beDSD/.net] >>313 座標と半径が与えられたら、ひたすらHypotするんだ!! これ、ゲーム技術だから覚えておくとよいよ。(偉そう
333 名前:デフォルトの名無しさん [2019/09/04(水) 22:47:39.03 ID:5HyNYB53.net] 自作かとおもってたがWikipediaにほぼおなじのあった。解は指数2に限るという。 のってて解けてないとすると難問か ピタゴラスの定理 - Wikipedia Jesmanowicz 予想 1956年に Jesmanowicz が以下の予想を提出した。 (a, b, c) を原始ピタゴラス数、n を自然数とする。x, y, z が (an)^x + (bn)^y = (cn)^z で自然数解を持つには、x=y=z=2 であることが必要である。
334 名前:デフォルトの名無しさん [2019/09/04(水) 22:56:59.22 ID:5HyNYB53.net] Jesmanowicz予想で検索 KAKEN 研究期間 2011 ? 2012 不定方程式におけるTerai予想とJesmanowicz予想 まず始めに、Terai予想のケース(1)のP=q=r=2の場合(Jesmanowicz予想)について考察した。 藤田育嗣氏(日本大学)との共同研究で、Jesmanowicz予想を三つ組みa,b,cがある合同条件を満たす場合に証明した。 Pingzhi Yuan氏(華南師範大学)との共同研究では、申請者の以前の研究結果を大幅に拡張することが出来た。 次に、Terai予想のケース(1)の一般的な場合について考察した。 最近、Florian Luca氏(メキシコ自治国立大学モレリア数学研究所)が、以前の研究の多くを(本質的に)一般化する結果を与えた。 その手法は、Baker理論とそのp進版の理論が有効に用いられていた。しかし、その結果は、不完全な点があり、申請者はその部分を補う計算を行なった。 さらに、申請者はTerai予想の類似問題を提起した。それは、 2以上の自然数p,q,rに対して、a^p+b^q=c^rを満たすa,b,cに対して、 指数型ディオファントス方程式c^x+b^y=a^zは、q=r=2かつc=b+1のときに限り自然数解x,y,zを持ち、 そのときにただ一つの自然数解(x,y,z)=(1,1,p)を持つである。 申請者は、Terai予想で扱われている三つ組みa,b,cについて考察を行い、 Baker理論とそのp進版の理論を用いて、いくつかの場合に予想は成立することを証明した。 特に、後半の主張である"解の一意性"を証明した。 最後に、Terai予想では扱われない三つ組みについても研究結果を得た。 まず、Alain Togbe氏(Purdue大学)との共同研究を行い、氏の以前の連続整数に関する研究を広く拡張することが出来た。 また、申請者は、三つ組みがある線形回帰数列の項として与えられる場合に方程式の解を決定した。 それによって寺井伸浩氏(足利工業大学)によって提起されたフィボナッチ数列に関する予想を解決した。 https://kaken.nii.ac.jp/grant/KAKENHI-PROJECT-11J05674/
335 名前:デフォルトの名無しさん [2019/09/04(水) 23:07:59.22 ID:5HyNYB53.net] 完全解決してないが、結構解けてるらしい 早稲田大学整数論セミナーの予定 (2014年度 第5回) タイトル: 原始ピタゴラス数に関する Jesmanowicz 予想について アブストラクト: 1956 年, Jesmanowiczはピタゴラス数に関する指数型不定方程式 (m^2 - n^2)^x + (2mn)^y = (m^2 + n^2)^z は, ただ一つの正の整数解 (x; y; z) = (2; 2; 2) を持つことを予想した. ただし, m > n, gcd(m; n) = 1, m ≠ n mod 2 を満たす正の整数とする. Journal of Number Theory の論文 (2014 年) において, n = 2 とき Jesmanowicz 予想が成り立つことを証明した. これは, 与えられた n > 1 に対し m について何も仮定せず Jesmanowicz 予想が成り立つ最初の結果である. 最先端の楕円曲線や modular formの理論から導かれる一般化された Fermat 方程式に関する結果を用いて, m に何も条件を付けずに Jesmanowicz 予想が成り立つことを証明することができた. 本講演では, これをさらに拡張して, n=2 が奇素数の冪でかつ m > 72n のときJesmanowicz予想が成り立つことを証明できたので紹介する. これらの結果の系として, n=2 が 50 未満の奇数のとき Jesmanowicz 予想が成り立つことが容易に得られる. https://www.waseda.jp/sem-wnt/kako/pdf2014/20140516.pdf
336 名前:デフォルトの名無しさん [2019/09/04(水) 23:25:42.22 ID:4CPx11+J.net] >>313 VB https://paiza.io/projects/JW7K9hSmkAVtXbO3II21Nw
337 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 00:10:35.11 ID:ymsvBiyv.net] >>313 https://ideone.com/DdvszK C++。暇だったので解いてみた。が、あってるかわからない。
338 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 10:41:35.98 ID:jPhMORz8.net] 置く場所の最大サイズ2000*2000くらいまでだとprocessingとかで半透明の円を重ね合わせれば一番濃
339 名前:いところが正解だから合ってるかどうかだいたい見て分かる rが小数で半径が0.0001から1億くらいまでまちまちだと面倒 [] [ここ壊れてます]
340 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 10:53:13.59 ID:Wm4c6P24.net] >>327 ,331-332 俺とは問題の解釈が違うようだ?
341 名前:デフォルトの名無しさん [2019/09/05(木) 11:32:41.41 ID:JTGocygG.net] >>334 そいつらはいつものアホやからスルーしなはれ
342 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 13:09:10.29 ID:n5jm1pTY.net] >>326 高校生レベル高いな まぁアルゴリズムとか高校生でもすごい子いるもんなー 競プロとかすごいもんなー
343 名前:314 mailto:sage [2019/09/05(木) 21:33:33.48 ID:Wm4c6P24.net] >>313 Java https://paiza.io/projects/iamhQLuhZskbvv3lCIrj5Q なんか思いつけたので書いた いつもはideoneやけど、画像出力もしたくなったのでpaiza 入力データは https://mevius.5ch.net/test/read.cgi/tech/1549160513/405
344 名前:デフォルトの名無しさん [2019/09/06(金) 18:11:06.63 ID:O7F8x+Ks.net] >>337 お前いつもスマートだよな
345 名前:デフォルトの名無しさん [2019/09/06(金) 21:58:05.28 ID:h6IBFFVJ.net] 材料グループAと材料グループBがあるとする。 それぞれには、ランダムな固有値を持っており、 固有値の差が、ある数値以下の組み合わせのみ使用可能とする。 ただし、材料グループA、B内の材料は一度使うとなくなるため一度しか組み合わせれない。 それぞれのグループの材料が100ずつあったとして適切に組み合わせれば 全てがマッチングできる。ただ人組でもペアを間違えるとマッチングできない。 こういったことを実現するためには、どういった考え方でプログラミングすればいいでしょうか。
346 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 22:02:46.96 ID:adnLBrFU.net] 動的計画法でいいのかな? オレできねーけど。
347 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 22:06:24.07 ID:IlHiLkpw.net] >>339 各グループの材料を固有値の昇順にソートして小さい方からペア作ってくのではダメなのか?
348 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 22:10:20.13 ID:adnLBrFU.net] A:大<->小 B:小<->大 のペアがましといえばまし。 真ん中がマッチしない可能性はある。
349 名前:339 [2019/09/06(金) 22:10:34.94 ID:h6IBFFVJ.net] なるほど、とても簡単な問いだったのですね。 なんか難しい事ばかり考えていました。
350 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 22:11:12.30 ID:5B1pyUbX.net] diff のアルゴリズムがもうちょっと複雑なのにも対応できるやつじゃなかったか?
351 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 22:14:00.34 ID:adnLBrFU.net] あー、差が以下か。 A:小<->大 B:小<->大 でいいわ。。。 俺もなんか難しいこと考えてた。そーりー。
352 名前:339 [2019/09/06(金) 22:14:53.61 ID:h6IBFFVJ.net] 必ずマッチングできない100ずつあったとした場合でも昇順ソートして同じ順位にいるもので、比較してマッチングできれば実施、できなければ上位を参照してマッチングできたら抜けて、できなければさらに上位とマッチングみたいなことをすれば良いのか。
353 名前:339 [2019/09/06(金) 22:23:16.91 ID:h6IBFFVJ.net] あっ違う違う。 昇順にソートして組み合わせるとマッチングできないもの出てきます。 というのも差が最小の組み合わせではなくて、 差がある一定以下である事なので、昇順にソートして隣り合うものではダメです。 少し考えたのですが、全ての組み合わせを実施して、その計算結果、今回は差がある数値以下である数が多い組み合わせを採用するみたいなことになるんですかね
354 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 22:44:43.03 ID:IlHiLkpw.net] >>347 適切な解が存在するケースで、小さい順の付き合わせでダメになる具体例を示せる?
355 名前:339 [2019/09/06(金) 23:00:40.30 ID:h6IBFFVJ.net] ないですね。 ということは、やはり最小のマッチング以外はありえないということになるのですね。 材料在庫が変動していたとしても、その瞬間の最小の差のペアを作ることが 一番効率の良いマッチング方法になる
356 名前:ニいうことか、、、。 [] [ここ壊れてます]
357 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 23:08:33.74 ID:adnLBrFU.net] >>339 https://ideone.com/vjhJdO C++。ちょっと思いついたのでコード書いてみたよ。 ちょっとグリードに組み合わせ作るようにしてみた。
358 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 23:19:00.83 ID:Sfa1dP8m.net] 全てマッチングできるとは限らず最も多くマッチングできる組み合わせ を求める ならちょっと工夫必要そう
359 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 23:24:40.52 ID:h6IBFFVJ.net] 皆さんありがとう。 最も多くマッチングさせるときは、閾値に一番近い選択を行うことがシンプルということかな? >>350 コードありがとうございます。 プログラムを生業にしている者ではないのでC++の開発環境から構築になりますが、試してみます。
360 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 23:31:32.53 ID:adnLBrFU.net] fix it.
361 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 23:32:51.82 ID:adnLBrFU.net] 大したコードではないが、そこまで威力があるとは思わなかった。 動機なんてそんなもんか。
362 名前:蟻人間 mailto:sage [2019/09/06(金) 23:43:04.03 ID:sc/CXZHY.net] お題: ある会社の営業曜日(複数可)と営業時間が与えられる。今月1ヶ月の営業時間の合計を求め、今月のカレンダーの下に表示せよ。ただし、その会社は祝日・祭日を特別扱いしないものとする。
363 名前:399 [2019/09/07(土) 00:15:01.96 ID:meGL1HdM.net] >>354 おぉ見るたびマッチング精度上がってる ありがとうございます! 参考にさせてもらいます
364 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 09:58:38.85 ID:kl0P3WfA.net] >>350 >>339 は固有値の差と言ってるのに>>350 は固有値の和でコード書いてるように見える
365 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 10:01:09.66 ID:15iR+LCW.net] そもそもeigenvalueじゃないのに固有値と言うのに違和感を覚える
366 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 10:40:38.85 ID:K3PTI0jA.net] わからんな 結晶や薄膜やらだと本当に固有値がある ヤツは「材料」って言っていて、その先に何を想定してるかこちらには伏せられたまま もしかすると高分子の製薬かもしれない 使うと無くなるんだろ?
367 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 13:46:49.28 ID:VQVarZXt.net] >>357 あ・・・。そうだね、そうだね。 すっかり勘違いしていた。
368 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 14:08:25.27 ID:VQVarZXt.net] https://ideone.com/96njsa C++。引き算する場合、奇策練るとよくない感じだなぁ・・・。 しかし、うっかりしてたわ。
369 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 14:45:59.42 ID:VQVarZXt.net] https://ideone.com/Dmt87R C++。暇だったから、いじってみた。 自分の方法だと、スコア高い?けどたまに100ペアにならないことがある。 これで今回はこれがオチとしておく。
370 名前:399 [2019/09/07(土) 20:55:02.76 ID:aT864lGO.net] >>362 やっぱり、最小のペアを選んでいくことがベストなのかな? できれば差は出来るだけ小さい方が良くて、結果みてると後者の方が良好な結果が出てる気がする
371 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 00:49:49.01 ID:YBN7WO0H.net] 排便を 壁に塗りつけ したり顔
372 名前:デフォルトの名無しさん [2019/09/08(日) 02:51:14.16 ID:bEtb/TpC.net] >>257 Kotlin https://paiza.io/projects/l3g48R76SbErJStepj8qmg
373 名前:デフォルトの名無しさん [2019/09/08(日) 08:38:41.51 ID:GRxK0QRw.net] >>313 正方形だと3倍速い
374 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 09:39:44.56 ID:46Wp6heU.net] 3倍早いだけだったらオーダーが変わらねーじゃん 円が一万個一億個一兆個だったらどうなんの
375 名前:デフォルトの名無しさん [2019/09/08(日) 09:58:44.95 ID:GRxK0QRw.net] 3日の仕事が1日で済むとも言う。
376 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 13:16:12.58 ID:rbzdrKrZ.net] >>363 ランダム生成している数字が割と一様なのでそういう結果になるけど、 まばらに片寄っていたらどうすればいいかはその時しかわからんなぁ。
377 名前:蟻人間 mailto:sage [2019/09/08(日) 23:16:36.64 ID:YT+ZQkc/.net] 何か初心者にも解ける面白い問題ないかな?
378 名前:蟻人間 mailto:sage [2019/09/08(日) 23:23:17.86 ID:YT+ZQkc/.net] お題: 質問文とn個の項目からなるメニューを実装せよ。 質問文とn個の文字列が入力として与えられる。質問文とn個の項目をかっこよく表示し、ユーザーが一つ項目を選ぶまで待つ。選んだら、選んだ項目を出力する。
379 名前:蟻人間 mailto:sage [2019/09/08(日) 23:47:28.87 ID:YT+ZQkc/.net] お題: マイ ドキュメントのフォルダ階層構造を表示せよ。
380 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 23:48:15.93 ID:gIfFAHmp.net] お題 与えられた数列の、隣り合う2要素の差のリストを作る関数等を作ってください。 入力数列例 3 1 4 1 5 9 2 6 5 出力数列例 -2 3 -3 4 4 -7 4 -1 余力があれば、ファイルなどから非常に長い数列を与えられても対処できる実装を試みてください (gushwell.ldblog.jp/archives/52379839.html を一部改変)
381 名前:デフォルトの名無しさん [2019/09/08(日) 23:48:22.91 ID:7lW0qzzX.net] お題:北のミサイルをなんとかせよ
382 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 23:51:10.96 ID:ZRQn+E7p.net] どっかの国ハックして打ち込むしか
383 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 00:57:49.46 ID:G8Ger3PB.net] >>373 Perl5 sub f { map{$_[$_ + 1] - $_[$_]} 0..$#_-1; } @a = qw{3 1 4 1 5 9 2 6 5}; @b = f @a; print "@b\n"; 実行結果 ~ $ perl 15_373.pl -2 3 -3 4 4 -7 4 -1
384 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 07:20:37.09 ID:F7fW2XyB.net] >>373 Pharo/Squeak Smalltalk | fn | fn := [:xs | xs allButFirst - xs allButLast]. fn value: #(3 1 4 1 5 9 2 6 5). "=> #(-2 3 -3 4 4 -7 4 -1) "
385 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 13:13:33.41 ID:4K8wNjEy.net] >>373 Ruby p [3, 1, 4, 1, 5, 9, 2, 6, 5].each_cons(2).map{|e| -e.reduce(:-)} # => [-2, 3, -3, 4, 4, -7, 4, -1]
386 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 15:22:46.46 ID:pyLk+Xbb.net] >>373 Pharo/Squeak Smalltalk #(3 1 4 1 5 9 2 6 5) overlappingPairsCollect: [:x :y | y - x] "=> #(-2 3 -3 4 4 -7 4 -1) "
387 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 15:35:48.47 ID:pmQvKTaB.net] >>373 https://ideone.com/AoQVOB C++。あってるかな?
388 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 15:55:42.79 ID:8EKyQA8Q.net] >>373 perl5 "3 1 4 1 5 9 2 6 5" =~ m/(\d) (?= \s? (\d) ) (?{push @diff, $2 -$1}) /xg; print "@diff"; -2 3 -3 4 4 -7 4 -1
389 名前:デフォルトの名無しさん [2019/09/09(月) 17:47:36.36 ID:Uwb0lHsl.net] >>373 Kotlin https://paiza.io/projects/E_9ZAZNclHjS7_qn4WPBbg ファイルというか標準入力から入力する事しかできない。
390 名前:デフォルトの名無しさん [2019/09/09(月) 18:55:29.45 ID:nBEHXDpg.net] >>373 ファイルからの読み込み派が居ない件。。。 Haskell main = readFile "count.txt" >>= return.read >>= \lst -> print $ zipWith (-) (tail lst) lst ― ファイルから読まない場合は ― main = print $ zipWith (-) (tail lst) lst where lst = [3,1,4,1,5,9,2,6,5] test.txt [3,1,4,1,5,9,2,6,5] out: [-2,3,-3,4,4,-7,4,-1]
391 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 21:23:29.01 ID:pmSRY1k7.net] >>373 octave https://ideone.com/SV1flm >>373 ruby https://ideone.com/KZ9YO3 >>373 ocaml https://ideone.com/aiOLiG
392 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 00:22:25.45 ID:2zzGvcE4.net] >>219 Perl5 $s = 'AKDAK'; @a = ('^', split
393 名前:'', $s); $o{$_} //= ++$i for @a; %e = map{$a[$_] => $a[$_+1]} 0..$#a-1; @p = sort{$o{$a} <=> $o{$b}} keys %o; $d{$p[-1]} = $p[-1].'$'; push @p, '$'; $e{'$'} = ''; print "'$s'\n→\n"; for (@p) { $v = $e{$_}; $r = $d{$v} // $v; print "$_: $r.\n"; } 実行結果 ~ $ perl 15_219.pl 'AKDAK' → ^: A. A: K. K: D$. D: A. $: . [] [ここ壊れてます]
394 名前:蟻人間 mailto:sage [2019/09/10(火) 01:16:31.32 ID:/hHoc5h9.net] 状態遷移図ってどんなときに役立つかな?
395 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 01:20:32.52 ID:2zzGvcE4.net] ほらまぁ 状態遷移を表形式で定型的に定義した方が 言葉の羅列やグラフもどきポンチ絵などで表現するより明確な場面 さまざまなとき
396 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 01:22:32.02 ID:2zzGvcE4.net] あいや、表じゃなくて図か。 そしたら、なんとなく依存関係などをややこしいグラフで表現して ひもつけたとか賜って解釈したような気にさせるとき 自分で考えなよ
397 名前:デフォルトの名無しさん [2019/09/10(火) 02:40:29.88 ID:Ik1iUNRF.net] >>373 javascript [3,1,4,1,5,9,2,6,5] .reduce((acc, n, i, arr) => [...acc, arr[i + 1] - n], []) .slice(0, -1)
398 名前:デフォルトの名無しさん [2019/09/10(火) 08:11:29.51 ID:lIijspdS.net] >>373 >>379 のブロック内で処理するのが分かりやすかったので、Haskellもprint以外の処理をリスト内包表記で完結するようにした。 main = print [y - x | let lst@(_:ls) = [3,1,4,1,5,9,2,6,5], (x,y) <- zip lst ls] 文字数としては >>383 より増えるが、読みやすさ優先。
399 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 17:53:27.20 ID:cZVhsOAf.net] Smalltalkはやりたいことだけ書けばいいのがいい
400 名前:デフォルトの名無しさん [2019/09/10(火) 18:46:19.95 ID:CNsNp03m.net] 分かったよじゃあoverlappingPairsCollect実装するよ… const overlappingPairsCollect = (arr, cb) => { let head = arr.shift(); const overlappingPairs = []; for (const value of arr) { overlappingPairs.push([head, value]); head = value; } return overlappingPairs.map(([a, b]) => cb(a, b)); } overlappingPairsCollect([3,1,4,1,5,9,2,6,5], (a, b) => b - a); //=> [-2,3,-3,4,4,-7,4,-1]
401 名前:デフォルトの名無しさん [2019/09/10(火) 19:17:03.68 ID:CNsNp03m.net] ああ… forの前にif (!head) return overlappingPairs; のearly return入れ忘れた…
402 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 19:18:47.68 ID:ER41jhKS.net] 何言語?
403 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 19:51:01.24 ID:4IK1yyiH.net] 女子小学生のメスガキビッチ言語
404 名前:デフォルトの名無しさん [2019/09/10(火) 20:05:04.03 ID:9QXTHM58.net] なるほどjavascriptね!
405 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 20:19:20.42 ID:ER41jhKS.net] https://ideone.com/d5aNNP C++。なんか面白そうだったので、 >>392 をパクって移植してみた。 結構ジェネリックにかけたが、考える負荷高いね。
406 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 20:31:26.62 ID:ER41jhKS.net] >>397 コード追加。MakeHogeで困ることあるかなぁ? あんまりユースケース見えてないから、不具合あったら教えて。
407 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 21:25:03.39 ID:OfzP/6E7.net] >>392 >>377 も頼む!
408 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 23:08:14.13 ID:aMyCuNre.net] お題 スネークケースをアッパーキャメルケースに変換せよ アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと (例) snake_case => SnakeCase ODAI00_99_TEST => Odai00_99Test x_0_x => X0X UpperCamelCase => Uppercamelcase
409 名前:デフォルトの名無しさん [2019/09/10(火) 23:20:02.02 ID:Ik1iUNRF.net] >>399 allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377 みたいにキレイに書けない。 const allButFirst = arr => arr.slice(1); const allButLast = arr => arr.slice(0, -1); const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr)); fn([3,1,4,1,5,9,2,6,5]); //=> [-2,3,-3,4,4,-7,4,-1]
410 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 00:10:49.73 ID:JxGfX2fh.net] >>400 Perl5 use feature say; for (<DATA>) { say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g; } __DATA__ snake_case ODAI00_99_TEST x_0_x UpperCamelCase 実行結果 ~ $ perl 15_400.pl SnakeCase Odai00_99Test X0X Uppercamelcase
411 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 00:26:05.86 ID:JxGfX2fh.net] >>402 その例ではいいけど Odai00_9_9Test ↓になっちまうな… Odai00_99test
412 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 00:31:52.77 ID:TkJgDVYV.net] >>400 https://ideone.com/6apRE9 C++。オレ、馬鹿になってる〜。と苦しんでいた。
413 名前:デフォルトの名無しさん [2019/09/11(水) 00:44:08.30 ID:hWizELa3.net] >>397 C++むずかしすぎワロタwwwww