- 1 名前:デフォルトの名無しさん mailto:sage [2021/06/19(土) 00:02:57.84 ID:MQWrKSb7.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/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part19 https://mevius.5ch.net/test/read.cgi/tech/1606662245/
- 541 名前:デフォルトの名無しさん [2022/01/09(日) 15:38:39.37 ID:DwVfG/qv.net]
- そこは性能とトレードオフになるしかない気はする
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど log 32/log2 =4.
- 542 名前:9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 ) if (2^res'* 1.5) < x // (1.5倍でも届かないなら不当な丸め誤差が出たと判断) then res = res' + 1 else res = res' とかちょっと汚い書き方するしかない希ガス [] - [ここ壊れてます]
- 543 名前:デフォルトの名無しさん [2022/01/09(日) 21:50:51.38 ID:sZC3oXej.net]
- なんか変なこと書いた
res' = floor( log x / log2 ) if 2^res' < x then res = res' + 1 else res = res' やな res'の算出で丸め誤差は-1までと仮定して補正する しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提 この辺は高級言語プログラマレベルの話でなんとかなるもんではない やるならアセンブリ言語レベルでやるしかない
- 544 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 00:03:40.12 ID:gj6cLR2i.net]
- >>509 C
https://ideone.com/5kDuzA 非正規化数、NaN、無限大とかはそのまま返すようにした やり方は>>513と変わらない
- 545 名前:509 mailto:sage [2022/01/10(月) 00:53:57.15 ID:MGxmK4tZ.net]
- いまどきのコンパイラなら、frexp()やldexp()をいい塩梅に最適化してくれるのだろうか?
from math import frexp, ldexp def foo(x): _m, e = frexp(x) _if m == 0: return 0.0 _return ldexp(0.5, e)
- 546 名前:512 [2022/01/10(月) 01:47:47.54 ID:av6tewvz.net]
- >>509
またPerlでワンライナー。 perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}' 今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。 また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。 当然64bitだったら2^64以上の値の入力で多分うまく動かない。
- 547 名前:509 mailto:sage [2022/01/10(月) 02:23:50.20 ID:MGxmK4tZ.net]
- >>522の修正
from math import frexp, ldexp def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
- 548 名前:デフォルトの名無しさん [2022/01/10(月) 03:27:40.49 ID:av6tewvz.net]
- >>509
またまたPerlでワンライナー。 perl -MPOSIX -ne 'chomp;if($_==0.0){print"0\n"}else{print ldexp(0.5,(frexp($_))[1]),"\n"}' これは>>524の真似(ていうかやってること同じ)。
- 549 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 12:43:53.01 ID:SgLm6fjp.net]
- >>511
それは答えになっていないかと 質問を変えます。下位側の指数部も意味を持つようにインプリメントするべきでしょうか?
- 550 名前:464 mailto:sage [2022/01/11(火) 02:38:04.94 ID:i2HiBm5J.net]
- >>526
先人の実装例だと、 上位 + 下位 = double doubleの数値 という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。 tps://na-inet.jp/na/qd_ja.pdf 勿論、そう実装しないのもあり。
- 551 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 03:06:24.10 ID:Y9TTYX77.net]
- >>527
となると、 >>510 >binary64 中には仮数部に使用できるビット幅は 52 bits しかありません よって下位側指数部無視なら 53bit + 52 bit = 105bit の実装となりますが? 下位側指数部有意ならば、下位側にもケチビットを適用できますが、今度は仮数部が 106 ビットとはいいきれなくなりますね(数によって変わる)
- 552 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 03:08:13.70 ID:Y9TTYX77.net]
- >>527
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
- 553 名前:デフォルトの名無しさん [2022/01/30(日) 18:02:46.10 ID:Np8aVX2s.net]
- お題: 1より小さい実数を1以上2より下にせよ
< 0.123 > 1.23 < 0.0000123 > 1.23
- 554 名前:デフォルトの名無しさん mailto:sage [2022/01/30(日) 18:25:00.85 ID:A8jov
]
- [ここ壊れてます]
- 555 名前:ols.net mailto: >>530
x / 10^[log10(x)] [] - [ここ壊れてます]
- 556 名前:蟻人間 mailto:sage [2022/01/30(日) 20:39:55.64 ID:DZg7owi9.net]
- お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。 重力加速度を 9.8 [m/s^2]とする。
- 557 名前:蟻人間 mailto:sage [2022/01/30(日) 20:58:19.92 ID:DZg7owi9.net]
- お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。
- 558 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 07:45:34.60 ID:/+irRzAS.net]
- >>530
負の数や2以上の数は?
- 559 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 16:02:38.13 ID:zoPPBktH.net]
- >>534
・・・!
- 560 名前:デフォルトの名無しさん [2022/02/01(火) 18:02:38.08 ID:zoPPBktH.net]
- お題: -1 < n < 1 の実数nを-10 < m < 10の実数m(ただし1桁目が0を除く)に桁上げせよ(>>530の改良)
< 0.123 > 1.23 < -0.00056 > -5.6
- 561 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 20:01:29.11 ID:TQ6+L4kb.net]
- 負だったらabsolute取るだけのことじゃん
- 562 名前:デフォルトの名無しさん [2022/02/01(火) 23:48:43.79 ID:/+irRzAS.net]
- >>536
perl ワンライナー。以下はbashのコマンドラインから実行して試した。 入力は標準入力で一つづつ改行する。 perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";' やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
- 563 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 17:49:01.62 ID:QCKFV9kK.net]
- もうすぐ22日、今年は "22/2/22"といつもより多め
[お題] 偶数ゾロ目 URLのページに都道府県別の人口が載っている。 URL: https://ideone.com/2w86hj 今回使用するのは、2020/10のデータ 同じ県は一回のみで、異なる県を 22 県選らぶ。 (単純な選び方は全部で NCR(47, 22) = 約14.8兆通り) 整数A,Bが与えられる(1<=A<=B<=1億) 選択した22県の人口合計が A以上B以下となるのは何通りか? 1) 44444444 44444444 --> 214209 2) 22222222 44444444 --> ? 3) 44444444 66666666 --> ? ※上の三問を全部で5秒程度で 想定解はあるが、もっとスマートな方法がありそう 「またか」と思った人、以前の問題とは想定解はかなり違う
- 564 名前:デフォルトの名無しさん [2022/02/23(水) 19:08:44.10 ID:jKeAH0Dy.net]
- >>536
やぱしn==0は除外?
- 565 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 00:35:12.16 ID:5B3hmiET.net]
- >>540
一桁目が0は除外してね
- 566 名前:デフォルトの名無しさん [2022/02/24(木) 08:38:30.17 ID:GiducjAN.net]
- 難しい、こんなの小学生が解けるのか?
今年の中学受験の算数で一番の良問がこれらしい [976717553] https://hayabusa9.5ch.net/test/read.cgi/news/1645558073/
- 567 名前:539 mailto:sage [2022/02/25(金) 17:25:00.82 ID:STd/IFZD.net]
- >>539
旬だと思って出題 https://ideone.com/2w86hj 下部に追加 半分全列挙 + 尺取り法 早い言語でしかできない解答例でした
- 568 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 19:14:08.69 ID:RZ7O9d2K.net]
- >>543
乙 時間取れなくてやれてないが季節感あるネタ好き
- 569 名前:デフォルトの名無しさん [2022/02/26(土) 19:41:18.44 ID:4VT1Qgxn.net]
- haskellでやったらやっぱり5秒はきつか
- 570 名前:チた []
- [ここ壊れてます]
- 571 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 02:34:25.32 ID:VdMMR1Xg.net]
- お題: RustかGoでバイナリーサーチを実装してください
- 572 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 12:30:16.47 ID:nN0Ys+dW.net]
- お題: トライ木を使ってサジェスト機能を実装してください
$ prog > w world would will wish 辞書は任意の大きさとする 入力は英語、または日本語とする
- 573 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:32:45.03 ID:Ycqbgo6j.net]
- >>545
なんかHaskellってGHCのオプションに-O2とか指定すれば結構早くなった記憶がある あとListじゃなくVector使うとか
- 574 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:41:12.56 ID:sy393qRd.net]
- お題 バッタの大冒険
a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが 数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。 ↑数学オリンピックの問題 もちろん証明はどうでもよろしい お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです 入力 ([3,5,8],[5,10]) 出力 [8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている 入力 ([5,6,8,10,13,15],[2,18,24,29,45]) 出力 [15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている 入力 ([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394]) 出力 [82,68,62,53,44,36,32,30,26,3] #同文
- 575 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 21:13:54.18 ID:yn4DTgXG.net]
- 2番目の例着地するのは
15,28,38,46,52,57 ですた
- 576 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 20:44:30.68 ID:0IfoPmot.net]
- >>549
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます 以下の探索で線形オーダーで解を見つけられます 自分で考えたい人は無視してください 以下aを最大ジャンプとします a=a(n)としておく (A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき 一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る この順番でとんて行って最初に最初の禁止点をi回目に超えたとする 解のジャンプとして b(1),b(2),...,b(i-1),a,b(i),...,b(n) とすると全ての禁止点をかわしている (B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき 一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る 解のジャンプとして a,b(1),...,b(n-1) とすると全ての禁止点をかわしている (C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 ) それをa(n-1)としよう 最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない そこでa(1)〜a(n-2)
- 577 名前:をうまく並べ替えれば全部かわすことができる []
- [ここ壊れてます]
- 578 名前:デフォルトの名無しさん [2022/05/03(火) 15:12:22.98 ID:FP7f4hyR.net]
- 問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
- 579 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 23:10:33.84 ID:JwGzWANE.net]
- 説明不足で申し訳ない
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない 1番最初の例 ([3,5,8],[5,10]) だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている しかしx=5,x=10の地点は着地禁止地点で着地できない 飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題 3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
- 580 名前:デフォルトの名無しさん [2022/05/04(水) 00:16:07 ID:0lMETj8q.net]
- お題: C/C++でスレッドセーフなstrtok関数を作れ
設計は各自で考えること
- 581 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 08:22:49.31 ID:WTZHV9SY.net]
- 政府公認のスカトロサークルだって!?じゅるり
- 582 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 02:33:11.33 ID:FeY8iOM4.net]
- 高度IT人材、富士通は最大年収3500万円へ
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ 【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材 来年度から副業解禁 人材多様化へ―大同生命次期社長 第一生命HD、副業解禁 約1万5000人対象 第一生命HD、副業解禁 1万5000人対象―大手生保初 IHI、国内8000人の副業解禁 重厚長大企業も転機 IHI、社外兼業を解禁 社内副業もルール化
- 583 名前:デフォルトの名無しさん [2022/05/05(木) 16:49:02.33 ID:SGcHNlDo.net]
- >>554
C言語 https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g strtok_r() を strtok_r2() の名前にして自分で実装した。 strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
- 584 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 08:28:38.45 ID:zQqHPRjb.net]
- 思い付きでお題考えてみた
検証してないんだけどどう? お題: ランダムな部屋を移動する最短距離を求める 行列がある 任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る 通路の要素は斜めには生成されず横と縦に生成される 通路はランダムに1つの部屋から0 <= R <= 3生成される 各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する このときAからBまでの最短経路を求めよ
- 585 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 10:03:08.65 ID:u3pPN9f9.net]
- ランダムの部分いる?
- 586 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 19:40:13.01 ID:RtJ1FIjP.net]
- 日本語がよくわからんから数式で書いてくれ
- 587 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 19:57:58.11 ID:dPHs0KwZ.net]
- 数式だと答えになりそうだから図で書いてくれ
- 588 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 17:53:19 ID:UVEhLnaE.net]
- さらに、閑古鳥をよびよせるか
[お題] 多倍
- 589 名前:キでは無理!?
整数 S, T が与えられる。(1 <= S <= T <= 400万) S以上T以下の(連続する)整数の最小公倍数(LCM)をもとめる 答えは, 1000000007(10億7)の余りで出力 1) 6 8 --> 168 6,7,8 の最小公倍数、LCM(6, 7)= 42 --> LCM(42, 8)= 168 2) 10 30 --> 89546497 剰余前は、2329089562800 3) 2567890 3456789 --> ? 4) 1 4000000 --> ? [] - [ここ壊れてます]
- 590 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:03:46.76 ID:f4mJcXLG.net]
- >>562
Haskell https://ideone.com/dPbmse
- 591 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:16:43.90 ID:bqW40Z5X.net]
- √T以下の素数列挙
各数を素因数分解して各素数の指数の最大を求める 10億7の剰余で上の乗算を行う
- 592 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 22:51:31.74 ID:vGEyxbeO.net]
- >>562 C
https://ideone.com/IWOE9a
- 593 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:19:40.97 ID:nM/DB7wD.net]
- >>562
https://ideone.com/O9PQbN 想定解としては、(他の人同様) 求める最小公倍数を素因数分解した形に作るイメージ 400万以下の"素数及び素数べき乗"は、高々28.3万件。 S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。 (方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定) ボトルネックは素数を求める部分なので、手抜きしている。 余談) ・4)を多倍長で計算すると173万桁だった(一分程度ででた) ・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
- 594 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 10:06:17.68 ID:GRk1+wVC.net]
- age
- 595 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:47:14 ID:GJ0Vg4bO.net]
- お題: 循環リストを検出するプログラムを書け
- 596 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:58:00.80 ID:il671KyI.net]
- 循環リスト
の定義を書いてください
- 597 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 02:10:30.75 ID:1mXsd8mZ.net]
- お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ 123 -> INT 1,234 -> INT 1.23 -> FLOAT a123 -> INVALID 12abc -> INVALID 1.23.435 -> INVALID
- 598 名前:デフォルトの名無しさん [2022/07/02(土) 04:54:46.54 ID:5fwFwNtd.net]
- >>570
Kotlin 自分ではほとんど何も考えていない脱力感溢れるプログラム https://paiza.io/projects/EK5QmNc2f4MgmmMLM3FcrQ
- 599 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 05:51:46.20 ID:y+j5RBoo.net]
- >>570 Ruby
f = -> s { case s when /\A(?:0|[1-9]\d*)\z|\A(?:[1-9]\d{0,2})(?:,\d{3})*\z/ :INT when /\A(?:0?|[1-9]\d*)\.\d+\z/ :FLOAT else :INVALID end } %w[123 1,234 1.23 a123 12abc 1.23.435 .142857 1. 0 01 1,234,567 1234,567].each{|s| puts '%s -> %s' % [s, f[s]] } # => 123 -> INT 1,234 -> INT 1.23 -> FLOAT a123 -> INVALID 12abc -> INVALID 1.23.435 -> INVALID .142857 -> FLOAT 1. -> INVALID 0 -> INT 01 -> INVALID 1,234,567 -> INT 1234,567 -> INVALID
- 600 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 05:58:59.35 ID:At3W7bIA.net]
- >>570
こう言うのは仕様をちゃんと提示してよ 123. 123.0 12,34 はどうなればいいのか
- 601 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:08:58.00 ID:syeRaQWQ.net]
- そんな文句みたいな言い方するほどか?
他の問題に比べたらケースちゃんと提示してる方だし そういうのは想定してないってなんとなくわかるだろ 競プロならちゃんと定義必要だろうけど
- 602 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:09:44.82 ID:syeRaQWQ.net]
- 123.0は確かに気になるけど
- 603 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:41:42.13 ID:At3W7bIA.net]
- >>574
> そういうのは想定してないってなんとなくわかるだろ お題なんだから想定しろよ でないとそのケースはそうじゃなくて
- 604 名前:こうすべきとか言う奴が出てきて荒れる元だし []
- [ここ壊れてます]
- 605 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:58:04.16 ID:dKfad4Z0.net]
- はい!
- 606 名前:デフォルトの名無しさん [2022/07/02(土) 09:58:41.88 ID:COZLaCzb.net]
- 123.0はfloatだろ常考
- 607 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 12:04:36.48 ID:oDFjP9XJ.net]
- 黙って実装して自分なりの仕様を提示するテストケースを追加して提出した>>572の勝利
- 608 名前:ハノン mailto:sage [2022/07/02(土) 14:55:56.14 ID:w21fdpYM.net]
- >>579
激しく同意
- 609 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 15:40:39.43 ID:ZFJdClOp.net]
- >>579
クールだよな
- 610 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 16:54:51.10 ID:RqXE55Ja.net]
- >>570
こういうアホがソフト仕様を書くと悲惨
- 611 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 17:49:49.50 ID:Vxz6zO/I.net]
- 久々に出題者現れたかと思ったらフルボッコでかわいそう
- 612 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 18:03:20.65 ID:+K04BJMF.net]
- もっと気楽にやれよ
普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義 その議論を「荒れる」と捉えるのは違うでしょ
- 613 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 20:54:40.02 ID:1mXsd8mZ.net]
- お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ version 1.0.1 123 -> INT 1,234 -> INT 1.23 -> FLOAT a123 -> INVALID 12abc -> INVALID 1.23.435 -> INVALID .142857 -> FLOAT 1. -> INVALID 0 -> INT 01 -> INVALID 1,234,567 -> INT 1234,567 -> INVALID 123.0 -> FLOAT
- 614 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 23:37:34.43 ID:12WH0HiU.net]
- >>568
https://ideone.com/WdXv5B
- 615 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 06:43:46.91 ID:/5k6Ls0P.net]
- .142857がOKで1.がNG
なんか違和感 どの言語の流儀? 具体例だけに頼らないで 定義っぽく書けない? ---- [整数部]、[整数部].[小数部]、.[小数部] のいずれかの形 [整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形 2桁以上の場合は先頭は0ではない [小数部] : 0123456789の列1文字以上 .... こんな感じ
- 616 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 07:10:28.62 ID:3/zKVKew.net]
- 0.DDD を .DDD と表記するのは欧米では情報系に限らず日常よく見られること
CSSもperlも昔のrubyも対応してたんじゃなかったかな
- 617 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:01:07.02 ID:udoKn6Zg.net]
- 1. がNGなのは?
どこの流儀?
- 618 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:17:25.30 ID:aLgpTdvv.net]
- >>584
> 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義 だからその一般認識がないから揉めるって話 既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
- 619 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:24:18.29 ID:3/zKVKew.net]
- >>590
1から10まで教えてもらえないとなんもできないのかよ エディタ宗教戦争を例に出してるけどあんなのにガチに捉えてるバカはお前くらいだ
- 620 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:34:46.48 ID:/kuq8Z/3.net]
- お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ BNFは↓とする INT: digit+
- 621 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:37:29.23 ID:/kuq8Z/3.net]
- お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ BNFは↓とする version 1.0.2 int: digits float: digits ('.' digits)? digits: digit+ digit: [0-9]+
- 622 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 10:08:31.69 ID:JHbRyeE7.net]
- >>591
ガチに捉えるもなにも今でもやってるだろw
- 623 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 10:15:42.92 ID:JHbRyeE7.net]
- >>593
カンマとかはなくなってるけど、仕様変更ですか? あと digits: [0-9]+ にしてdigitをやめるか digit: [0-9] にした方がいいかと思いますよ
- 624 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:27:53.93 ID:/kuq8Z/3.net]
- >>595
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ BNFは↓とする version 1.0.3 int: comma_
- 625 名前:digit
float: comma_digit '.' digit* | '.' digit* comma_digit: digit_123 { ( ','? digit_3 ) }* digit_3: digit digit digit digit_123: digit digit? digit? digit: [0-9] どや?完璧だろこのBNF これで文句ないな [] - [ここ壊れてます]
- 626 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:41:01.89 ID:E32cFzvb.net]
- >>596
"1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
- 627 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:54:46.68 ID:/kuq8Z/3.net]
- >>597
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ BNFは↓とする version 1.0.4 int: comma_digit float: comma_digit '.' digit_09+ | '.' digit_09+ comma_digit: digit_123 { ( ','? digit_3 ) }* digit_3: digit_09 digit_09 digit_09 digit_123: digit_19 digit_09? digit_09? digit_19: [1-9] digit_09: [0-9] どや?
- 628 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 14:30:14.53 ID:+vJDgzA0.net]
- 勉強になる
- 629 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:35:40.90 ID:VBJi0e3g.net]
- >>598
指摘された箇所すら直せないとかどう見ても向いてないからやめたら? > "1234,567" が INVALID になりませんし
- 630 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:38:27.96 ID:7UQlj4nA.net]
- ハズレ上司感
- 631 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:41:49.46 ID:yV0MWMu9.net]
- >>570 ocaml
https://ideone.com/j9z2um
- 632 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:15:01.49 ID:/kuq8Z/3.net]
- >>600
めんどくせ~な~ お前やれよ
- 633 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:24:52.83 ID:/kuq8Z/3.net]
- >>600
version 1.0.5 int: comma_digit | normal_digit float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+ comma_digit: digit_123 { ',' digit_3 }* normal_digit: digit_19 digit_09* digit_3: digit_09 digit_09 digit_09 digit_123: digit_19 digit_09? digit_09? digit_19: [1-9] digit_09: [0-9] ていうか1234,567にはならんはずだぞ
- 634 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:30:18.21 ID:/kuq8Z/3.net]
- >>600
version 1.0.6 int: comma_digit | normal_digit float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+ comma_digit: digit_123 { ',' digit_3 }* normal_digit: ( digit_19 digit_09+ ) | digit_09 digit_3: digit_09 digit_09 digit_09 digit_123: digit_19 digit_09? digit_09? digit_19: [1-9] digit_09: [0-9] おら!完璧だろ!
- 635 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 17:25:11.12 ID:bGSSCSEx.net]
- >>604
> ていうか1234,567にはならんはずだぞ しれっと変えといてさすがにそれは恥ずかしいな >>598> comma_digit: digit_123 { ( ','? digit_3 ) }* >> 604 > comma_digit: digit_123 { ',' digit_3 }* >>605 まあ、よしとしてやろう
- 636 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 20:20:25.60 ID:H80x+Ni5.net]
- 問題を解かずに出題の形式美に必死になるなんて、このスレ的にどうなのよ?
- 637 名前:蟻人間 mailto:sage [2022/07/03(日) 21:46:41.57 ID:wwKaul6r.net]
- char buf[64];
fgets(buf, 64, stdin); char *endptr; strtol(buf, &endptr, 10); if (*endptr == 0) { puts("INT"); return; } strtod(buf, &endptr); if (*endptr == 0) { puts("FLOAT"); return; } puts("INVALID");
- 638 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 22:09:22.65 ID:hLP3lYAM.net]
- >>570 dart
https://ideone.com/hT8xrN
- 639 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 20:02:47.21 ID:N6PR1KyM.net]
- お題
非負整数xが16進数表記で与えられる。xのビットu~lの範囲を逆順にした値を出力せよ。 [入力] x u l [例] 0x80 7 0 => 0x1 (8bit全体をreverse) 0xABCD 11 4 => 0xA3DD (真ん中8bitをreverse, 0xBC=0b10111100 -> 0b00111101=0x3D) 0x2 99 1 => 0x8000000000000000000000000 (2の99乗)
- 640 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 22:06:04.39 ID:ju1TxHLl.net]
- >>610 Ruby
f = -> (*a) {_, e, s = a.map(&:to_i); '0x%X' % a[0].hex.digits(2).concat(Array.new(e, 0)).tap{_1[s..e] = _1[s..e].reverse}.reverse.reduce{|s, i| 2 * s + i}} ['0x80 7 0', '0xABCD 11 4', '0x2 99 1'].each{puts '%s -> %s' % [_1, f[*_1.split]]} # => 0x80 7 0 -> 0x1 0xABCD 11 4 -> 0xA3DD 0x2 99 1 -> 0x8000000000000000000000000
- 641 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 09:28:21.31 ID:72Wr/ML/.net]
- >>610 octave
https://ideone.com/4MacE3
|

|