プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part19
https://mevius.5ch.net/test/read.cgi/tech/1606662245/
プログラミングのお題スレ Part20
■ このスレッドは過去ログ倉庫に格納されています
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
545デフォルトの名無しさん
2022/02/26(土) 19:41:18.44ID:4VT1Qgxn haskellでやったらやっぱり5秒はきつかった
546デフォルトの名無しさん
2022/02/27(日) 02:34:25.32ID:VdMMR1Xg お題: RustかGoでバイナリーサーチを実装してください
547デフォルトの名無しさん
2022/03/20(日) 12:30:16.47ID:nN0Ys+dW お題: トライ木を使ってサジェスト機能を実装してください
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
548デフォルトの名無しさん
2022/03/20(日) 19:32:45.03ID:Ycqbgo6j549デフォルトの名無しさん
2022/03/20(日) 19:41:12.56ID:sy393qRd お題 バッタの大冒険
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] #同文
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] #同文
550デフォルトの名無しさん
2022/03/20(日) 21:13:54.18ID:yn4DTgXG 2番目の例着地するのは
15,28,38,46,52,57
ですた
15,28,38,46,52,57
ですた
551デフォルトの名無しさん
2022/03/22(火) 20:44:30.68ID:0IfoPmot >>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)をうまく並べ替えれば全部かわすことができる
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下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)をうまく並べ替えれば全部かわすことができる
552デフォルトの名無しさん
2022/05/03(火) 15:12:22.98ID:FP7f4hyR 問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
553デフォルトの名無しさん
2022/05/03(火) 23:10:33.84ID:JwGzWANE 説明不足で申し訳ない
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
554デフォルトの名無しさん
2022/05/04(水) 00:16:07.90ID:0lMETj8q お題: C/C++でスレッドセーフなstrtok関数を作れ
設計は各自で考えること
設計は各自で考えること
555デフォルトの名無しさん
2022/05/04(水) 08:22:49.31ID:WTZHV9SY 政府公認のスカトロサークルだって!?じゅるり
556デフォルトの名無しさん
2022/05/05(木) 02:33:11.33ID:FeY8iOM4 高度IT人材、富士通は最大年収3500万円へ
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化
557デフォルトの名無しさん
2022/05/05(木) 16:49:02.33ID:SGcHNlDo >>554
C言語
https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g
strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
C言語
https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g
strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
558デフォルトの名無しさん
2022/05/11(水) 08:28:38.45ID:zQqHPRjb 思い付きでお題考えてみた
検証してないんだけどどう?
お題: ランダムな部屋を移動する最短距離を求める
行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される
各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
検証してないんだけどどう?
お題: ランダムな部屋を移動する最短距離を求める
行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される
各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
559デフォルトの名無しさん
2022/05/11(水) 10:03:08.65ID:u3pPN9f9 ランダムの部分いる?
560デフォルトの名無しさん
2022/05/11(水) 19:40:13.01ID:RtJ1FIjP 日本語がよくわからんから数式で書いてくれ
561デフォルトの名無しさん
2022/05/11(水) 19:57:58.11ID:dPHs0KwZ 数式だと答えになりそうだから図で書いてくれ
562デフォルトの名無しさん
2022/05/17(火) 17:53:19.20ID:UVEhLnaE さらに、閑古鳥をよびよせるか
[お題] 多倍長では無理!?
整数 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 --> ?
[お題] 多倍長では無理!?
整数 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 --> ?
563デフォルトの名無しさん
2022/05/19(木) 21:03:46.76ID:f4mJcXLG564デフォルトの名無しさん
2022/05/19(木) 21:16:43.90ID:bqW40Z5X √T以下の素数列挙
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
565デフォルトの名無しさん
2022/05/19(木) 22:51:31.74ID:vGEyxbeO566デフォルトの名無しさん
2022/05/20(金) 19:19:40.97ID:nM/DB7wD >>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が範囲にあるから)
https://ideone.com/O9PQbN
想定解としては、(他の人同様)
求める最小公倍数を素因数分解した形に作るイメージ
400万以下の"素数及び素数べき乗"は、高々28.3万件。
S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。
(方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定)
ボトルネックは素数を求める部分なので、手抜きしている。
余談)
・4)を多倍長で計算すると173万桁だった(一分程度ででた)
・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
567デフォルトの名無しさん
2022/07/01(金) 10:06:17.68ID:GRk1+wVC age
568デフォルトの名無しさん
2022/07/01(金) 15:47:14.28ID:GJ0Vg4bO お題: 循環リストを検出するプログラムを書け
569デフォルトの名無しさん
2022/07/01(金) 19:58:00.80ID:il671KyI 循環リスト
の定義を書いてください
の定義を書いてください
570デフォルトの名無しさん
2022/07/02(土) 02:10:30.75ID:1mXsd8mZ お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
変換できない場合はINVALIDと出力せよ
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
571デフォルトの名無しさん
2022/07/02(土) 04:54:46.54ID:5fwFwNtd572デフォルトの名無しさん
2022/07/02(土) 05:51:46.20ID:y+j5RBoo >>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
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
573デフォルトの名無しさん
2022/07/02(土) 05:58:59.35ID:At3W7bIA574デフォルトの名無しさん
2022/07/02(土) 08:08:58.00ID:syeRaQWQ そんな文句みたいな言い方するほどか?
他の問題に比べたらケースちゃんと提示してる方だし
そういうのは想定してないってなんとなくわかるだろ
競プロならちゃんと定義必要だろうけど
他の問題に比べたらケースちゃんと提示してる方だし
そういうのは想定してないってなんとなくわかるだろ
競プロならちゃんと定義必要だろうけど
575デフォルトの名無しさん
2022/07/02(土) 08:09:44.82ID:syeRaQWQ 123.0は確かに気になるけど
576デフォルトの名無しさん
2022/07/02(土) 09:41:42.13ID:At3W7bIA577デフォルトの名無しさん
2022/07/02(土) 09:58:04.16ID:dKfad4Z0 はい!
578デフォルトの名無しさん
2022/07/02(土) 09:58:41.88ID:COZLaCzb 123.0はfloatだろ常考
579デフォルトの名無しさん
2022/07/02(土) 12:04:36.48ID:oDFjP9XJ 黙って実装して自分なりの仕様を提示するテストケースを追加して提出した>>572の勝利
581デフォルトの名無しさん
2022/07/02(土) 15:40:39.43ID:ZFJdClOp >>579
クールだよな
クールだよな
582デフォルトの名無しさん
2022/07/02(土) 16:54:51.10ID:RqXE55Ja >>570
こういうアホがソフト仕様を書くと悲惨
こういうアホがソフト仕様を書くと悲惨
583デフォルトの名無しさん
2022/07/02(土) 17:49:49.50ID:Vxz6zO/I 久々に出題者現れたかと思ったらフルボッコでかわいそう
584デフォルトの名無しさん
2022/07/02(土) 18:03:20.65ID:+K04BJMF もっと気楽にやれよ
普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw
仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
その議論を「荒れる」と捉えるのは違うでしょ
普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw
仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
その議論を「荒れる」と捉えるのは違うでしょ
585デフォルトの名無しさん
2022/07/02(土) 20:54:40.02ID:1mXsd8mZ お題: 文字列が整数だったら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
変換できない場合は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
586デフォルトの名無しさん
2022/07/02(土) 23:37:34.43ID:12WH0HiU587デフォルトの名無しさん
2022/07/03(日) 06:43:46.91ID:/5k6Ls0P .142857がOKで1.がNG
なんか違和感
どの言語の流儀?
具体例だけに頼らないで
定義っぽく書けない?
----
[整数部]、[整数部].[小数部]、.[小数部] のいずれかの形
[整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形
2桁以上の場合は先頭は0ではない
[小数部] : 0123456789の列1文字以上
....
こんな感じ
なんか違和感
どの言語の流儀?
具体例だけに頼らないで
定義っぽく書けない?
----
[整数部]、[整数部].[小数部]、.[小数部] のいずれかの形
[整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形
2桁以上の場合は先頭は0ではない
[小数部] : 0123456789の列1文字以上
....
こんな感じ
588デフォルトの名無しさん
2022/07/03(日) 07:10:28.62ID:3/zKVKew 0.DDD を .DDD と表記するのは欧米では情報系に限らず日常よく見られること
CSSもperlも昔のrubyも対応してたんじゃなかったかな
CSSもperlも昔のrubyも対応してたんじゃなかったかな
589デフォルトの名無しさん
2022/07/03(日) 09:01:07.02ID:udoKn6Zg 1. がNGなのは?
どこの流儀?
どこの流儀?
590デフォルトの名無しさん
2022/07/03(日) 09:17:25.30ID:aLgpTdvv >>584
> 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
だからその一般認識がないから揉めるって話
既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ
エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
> 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
だからその一般認識がないから揉めるって話
既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ
エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
591デフォルトの名無しさん
2022/07/03(日) 09:24:18.29ID:3/zKVKew592デフォルトの名無しさん
2022/07/03(日) 09:34:46.48ID:/kuq8Z/3 お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
INT: digit+
変換できない場合はINVALIDと出力せよ
BNFは↓とする
INT: digit+
593デフォルトの名無しさん
2022/07/03(日) 09:37:29.23ID:/kuq8Z/3 お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.2
int: digits
float: digits ('.' digits)?
digits: digit+
digit: [0-9]+
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.2
int: digits
float: digits ('.' digits)?
digits: digit+
digit: [0-9]+
594デフォルトの名無しさん
2022/07/03(日) 10:08:31.69ID:JHbRyeE7 >>591
ガチに捉えるもなにも今でもやってるだろw
ガチに捉えるもなにも今でもやってるだろw
595デフォルトの名無しさん
2022/07/03(日) 10:15:42.92ID:JHbRyeE7596デフォルトの名無しさん
2022/07/03(日) 12:27:53.93ID:/kuq8Z/3 >>595
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.3
int: comma_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
これで文句ないな
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.3
int: comma_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
これで文句ないな
597デフォルトの名無しさん
2022/07/03(日) 12:41:01.89ID:E32cFzvb >>596
"1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
"1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
598デフォルトの名無しさん
2022/07/03(日) 12:54:46.68ID:/kuq8Z/3 >>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]
どや?
お題: 文字列が整数だったら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]
どや?
599デフォルトの名無しさん
2022/07/03(日) 14:30:14.53ID:+vJDgzA0 勉強になる
600デフォルトの名無しさん
2022/07/03(日) 15:35:40.90ID:VBJi0e3g601デフォルトの名無しさん
2022/07/03(日) 15:38:27.96ID:7UQlj4nA ハズレ上司感
602デフォルトの名無しさん
2022/07/03(日) 15:41:49.46ID:yV0MWMu9603デフォルトの名無しさん
2022/07/03(日) 16:15:01.49ID:/kuq8Z/3604デフォルトの名無しさん
2022/07/03(日) 16:24:52.83ID:/kuq8Z/3 >>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にはならんはずだぞ
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にはならんはずだぞ
605デフォルトの名無しさん
2022/07/03(日) 16:30:18.21ID:/kuq8Z/3 >>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]
おら!完璧だろ!
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]
おら!完璧だろ!
606デフォルトの名無しさん
2022/07/03(日) 17:25:11.12ID:bGSSCSEx607デフォルトの名無しさん
2022/07/03(日) 20:20:25.60ID:H80x+Ni5 問題を解かずに出題の形式美に必死になるなんて、このスレ的にどうなのよ?
608蟻人間 ◆T6xkBnTXz7B0
2022/07/03(日) 21:46:41.57ID:wwKaul6r 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");
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");
609デフォルトの名無しさん
2022/07/04(月) 22:09:22.65ID:hLP3lYAM610デフォルトの名無しさん
2022/07/08(金) 20:02:47.21ID:N6PR1KyM お題
非負整数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乗)
非負整数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乗)
611デフォルトの名無しさん
2022/07/08(金) 22:06:04.39ID:ju1TxHLl >>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
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
612デフォルトの名無しさん
2022/07/09(土) 09:28:21.31ID:72Wr/ML/613デフォルトの名無しさん
2022/07/09(土) 21:45:11.70ID:A5P06KhI614デフォルトの名無しさん
2022/07/24(日) 20:03:09.74ID:RqwYivmm あげ
615デフォルトの名無しさん
2022/07/26(火) 20:19:27.06ID:wEdk200U お題:数字をミラーリングせよ
入力 < 123
出力 > 123321
reverse系メソッドを使わなかったら加点とする
入力 < 123
出力 > 123321
reverse系メソッドを使わなかったら加点とする
616デフォルトの名無しさん
2022/07/26(火) 20:33:23.78ID:gSFNKY8C617デフォルトの名無しさん
2022/07/26(火) 22:30:32.74ID:LilaKoZu >>615
Java
static String mirror(String src) {
var dest = new char[src.length() * 2];
var a = src.toCharArray();
for (var i = 0; i < a.length; i++) {
dest[i] = a[i];
dest[dest.length - 1 - i] = a[i];
}
return new String(dest);
}
Java
static String mirror(String src) {
var dest = new char[src.length() * 2];
var a = src.toCharArray();
for (var i = 0; i < a.length; i++) {
dest[i] = a[i];
dest[dest.length - 1 - i] = a[i];
}
return new String(dest);
}
619デフォルトの名無しさん
2022/07/26(火) 23:38:05.85ID:ceC8PDvA620デフォルトの名無しさん
2022/07/26(火) 23:41:29.56ID:DU0tXUgh 魔法の計算式とか無いん?
621デフォルトの名無しさん
2022/07/27(水) 00:03:13.42ID:MKIa5t3g 俺も考えてみたけど調べても回分数のシグマ使わない一般式は無いみたいだな
622デフォルトの名無しさん
2022/07/27(水) 00:09:31.00ID:C/59UMec >>615 JavaScript
const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10);
// test
for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) {
const answer = mirror(n);
console[answer instanceof RangeError ? 'error' : 'log'](answer);
}
const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10);
// test
for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) {
const answer = mirror(n);
console[answer instanceof RangeError ? 'error' : 'log'](answer);
}
623デフォルトの名無しさん
2022/07/27(水) 01:46:36.04ID:7bF+Pf0F octave綺麗
62496
2022/08/02(火) 01:11:31.65ID:6KqVNIq0 >>615 Perl5
use feature qw{say signatures}; no warnings 'experimental';
sub f($i, @a) { $i and @a ? (f(@a), $i) : $i }
@a = split'',123;
say @a, f(@a);
実行結果
~ $ perl 20_615_mirror.pl
123321
use feature qw{say signatures}; no warnings 'experimental';
sub f($i, @a) { $i and @a ? (f(@a), $i) : $i }
@a = split'',123;
say @a, f(@a);
実行結果
~ $ perl 20_615_mirror.pl
123321
62596
2022/08/02(火) 01:20:34.60ID:6KqVNIq0 >>615 Perl5 (リスト処理版)
@a = split '', 123;
print @a, map{@a[$#a - $_]} 0..$#a;
実行結果
~ $ perl 20_615_mirror_list.pl
123321
@a = split '', 123;
print @a, map{@a[$#a - $_]} 0..$#a;
実行結果
~ $ perl 20_615_mirror_list.pl
123321
626デフォルトの名無しさん
2022/08/02(火) 22:22:16.97ID:9ppQHDnA >>615 ocaml
https://ideone.com/FFhxw9
let f s =
let csc c s = Char.escaped c ^ s ^ Char.escaped c in
let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1)
in aux "" @@ String.length s
let () = print_endline @@ f "123"
https://ideone.com/FFhxw9
let f s =
let csc c s = Char.escaped c ^ s ^ Char.escaped c in
let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1)
in aux "" @@ String.length s
let () = print_endline @@ f "123"
627デフォルトの名無しさん
2022/08/02(火) 23:32:00.13ID:49BZsXJW628デフォルトの名無しさん
2022/08/03(水) 00:34:26.60ID:xChmGTXr >>615 ocaml
https://ideone.com/6YqGis
let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let () = print_endline @@ f "123"
https://ideone.com/6YqGis
let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let () = print_endline @@ f "123"
629デフォルトの名無しさん
2022/08/05(金) 11:38:46.19ID:1Af6TgAi630デフォルトの名無しさん
2022/08/05(金) 13:16:58.45ID:6eafuacR gnuWin32を基本使っています。
で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか
たとえば
aaaaCB
bbbBA
cccccDB
とかあったとき、これを
bbbBA
aaaaCB
cccccDB
としたいのです。
もし難しそうであれば、各行を反転、つまり
abcde
を
edcba
とする方法でもいいです。
で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか
たとえば
aaaaCB
bbbBA
cccccDB
とかあったとき、これを
bbbBA
aaaaCB
cccccDB
としたいのです。
もし難しそうであれば、各行を反転、つまり
abcde
を
edcba
とする方法でもいいです。
631デフォルトの名無しさん
2022/08/05(金) 13:43:08.90ID:Vk8oFh91 >>630
Java
Arrays.sort(a, (left, right) -> {
var l = left.length() - 1;
var r = right.length() - 1;
while (l > -1 && r > -1) {
var c = Character.compare(left.charAt(l), right.charAt(r));
if (c != 0) {
return c;
}
l--;
r--;
}
if (l > -1) {
return 1;
}
if (r > -1) {
return -1;
}
return 0;
});
Java
Arrays.sort(a, (left, right) -> {
var l = left.length() - 1;
var r = right.length() - 1;
while (l > -1 && r > -1) {
var c = Character.compare(left.charAt(l), right.charAt(r));
if (c != 0) {
return c;
}
l--;
r--;
}
if (l > -1) {
return 1;
}
if (r > -1) {
return -1;
}
return 0;
});
63296
2022/08/05(金) 19:36:20.73ID:Rv34IsoP >>630 Perl5が使える環境であれば…
~ $ cat 20_630_isort.pl
chomp (@a = <>);
sub f {join '', reverse split'', $_[0]}
print "$_\n" for sort{f($a) cmp f($b)} @a;
~ $ cat input.txt
aaaaCB
bbbBA
cccccDB
~ $ perl 20_630_isort.pl < input.txt > output.txt
~ $ cat output.txt
bbbBA
aaaaCB
cccccDB
~ $ cat 20_630_isort.pl
chomp (@a = <>);
sub f {join '', reverse split'', $_[0]}
print "$_\n" for sort{f($a) cmp f($b)} @a;
~ $ cat input.txt
aaaaCB
bbbBA
cccccDB
~ $ perl 20_630_isort.pl < input.txt > output.txt
~ $ cat output.txt
bbbBA
aaaaCB
cccccDB
633デフォルトの名無しさん
2022/08/05(金) 20:52:38.21ID:C4r7F682 >>630 ruby
https://ideone.com/lQz0m2
f = ->(a) {a.sort_by &:reverse}
p f.(%w(aaaaCB bbbBA cccccDB))
>>630 octave
https://ideone.com/AUCxr3
function i = sorti(varargin), [~, i] = sort(varargin{:}); end
f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a)));
f({'aaaaCB' 'bbbBA' 'cccccDB'})
https://ideone.com/lQz0m2
f = ->(a) {a.sort_by &:reverse}
p f.(%w(aaaaCB bbbBA cccccDB))
>>630 octave
https://ideone.com/AUCxr3
function i = sorti(varargin), [~, i] = sort(varargin{:}); end
f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a)));
f({'aaaaCB' 'bbbBA' 'cccccDB'})
63496
2022/08/05(金) 22:43:00.57ID:Rv34IsoP63596
2022/08/06(土) 00:54:37.07ID:pYJx8bVL >>630 Perl5、計算量の抑制に配慮したバージョンと実行例
$ cat 20_630_isort2.pl
print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>;
$ cat input.txt
aaaaCB
bbbBA
cccccDB
$ perl 20_630_isort2.pl input.txt > output.txt
$ cat output.txt
bbbBA
aaaaCB
cccccDB
$ cat 20_630_isort2.pl
print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>;
$ cat input.txt
aaaaCB
bbbBA
cccccDB
$ perl 20_630_isort2.pl input.txt > output.txt
$ cat output.txt
bbbBA
aaaaCB
cccccDB
63696
2022/08/06(土) 01:06:37.87ID:pYJx8bVL >>635
これ各行の行末の改行まで含めてreverseしてsortキーとするので、
もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。
そのような万が一の場合に対してもrubstさも持たすならこうか
chomp(@a = <>);
print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
これ各行の行末の改行まで含めてreverseしてsortキーとするので、
もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。
そのような万が一の場合に対してもrubstさも持たすならこうか
chomp(@a = <>);
print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
637デフォルトの名無しさん
2022/08/06(土) 05:59:59.26ID:UcInr7RU638デフォルトの名無しさん
2022/08/06(土) 06:11:51.22ID:UcInr7RU >>630
Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。
(入力文字列は input.txt に入っているとして)。
rev input.txt | sort | rev
Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。
Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。
(入力文字列は input.txt に入っているとして)。
rev input.txt | sort | rev
Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。
63996
2022/08/06(土) 08:20:40.77ID:pYJx8bVL >>610 Perl5
use Bit::Vector;
$v = Bit::Vector->new(101);
for (<DATA>) {
($h, $s, $e) = /0x(\S+) (\S+) (\S+)/;
$v->from_Hex("$h");
$v->Interval_Reverse($e, $s);
($r) = $v->to_Hex() =~ /0+(\w+)/;
print "$_ => 0x$r\n";
}
__DATA__
0x80 7 0
0xABCD 11 4
0x2 99 1
※インデントを見易くするため全角スペースに置換しています
実行結果
$ perl 20_610_rebitfld.pl
0x80 7 0
=> 0x1
0xABCD 11 4
=> 0xA3DD
0x2 99 1
=> 0x8000000000000000000000000
use Bit::Vector;
$v = Bit::Vector->new(101);
for (<DATA>) {
($h, $s, $e) = /0x(\S+) (\S+) (\S+)/;
$v->from_Hex("$h");
$v->Interval_Reverse($e, $s);
($r) = $v->to_Hex() =~ /0+(\w+)/;
print "$_ => 0x$r\n";
}
__DATA__
0x80 7 0
0xABCD 11 4
0x2 99 1
※インデントを見易くするため全角スペースに置換しています
実行結果
$ perl 20_610_rebitfld.pl
0x80 7 0
=> 0x1
0xABCD 11 4
=> 0xA3DD
0x2 99 1
=> 0x8000000000000000000000000
640デフォルトの名無しさん
2022/08/06(土) 10:15:53.94ID:8a3zeEyr >>638
Linux環境ではrevというのがあるのですね
gnuWin32は全部揃ってないのですね。なんだかなあ
rev以外でもLinuxにあってgnuWin32にはないのがあるのかな
rev、自分で作ろうかな
Linux環境ではrevというのがあるのですね
gnuWin32は全部揃ってないのですね。なんだかなあ
rev以外でもLinuxにあってgnuWin32にはないのがあるのかな
rev、自分で作ろうかな
641デフォルトの名無しさん
2022/08/06(土) 11:17:00.60ID:y9e1BfKB >>630 ocaml
https://ideone.com/zdWLHX
let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let (<<) f g x = f (g x)
let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s))
let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
https://ideone.com/zdWLHX
let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let (<<) f g x = f (g x)
let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s))
let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
64296
2022/08/06(土) 15:02:55.35ID:ddLJv/Kp >>640
gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが…
util-linux-ng for Windows
http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm
Util-Linux contains miscellaneous utilities:
col: filter reverse line feeds from input
colcrt: filter nroff output for CRT previewing
colrm: remove columns from a file
ddate: converts Gregorian dates to Discordian dates
getopt: parse command options (enhanced)
hexdump: ascii, decimal, hexadecimal, octal dump
line: read one line
rename: rename files
rev: reverse lines of a file or files ←
tailf: follow the growth of a log file
whereis: locate the binary, source, and manual page files for a command
作りたいというなら類似のsampleソースはゴマンと転がっとるし
C reverse string rev.c strrev - Google 検索
https://www.google.com/search?q=C+reverse+string+rev.c+strrev
C program to reverse a string | Programming Simplified
https://www.programmingsimplified.com/c-program-reverse-string
C_69 C Program to Reverse a String | with strrev() and without strrev() function - YouTube
https://www.youtube.com/watch?v=530jWnBMD2M
… 好きにしんしゃい
gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが…
util-linux-ng for Windows
http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm
Util-Linux contains miscellaneous utilities:
col: filter reverse line feeds from input
colcrt: filter nroff output for CRT previewing
colrm: remove columns from a file
ddate: converts Gregorian dates to Discordian dates
getopt: parse command options (enhanced)
hexdump: ascii, decimal, hexadecimal, octal dump
line: read one line
rename: rename files
rev: reverse lines of a file or files ←
tailf: follow the growth of a log file
whereis: locate the binary, source, and manual page files for a command
作りたいというなら類似のsampleソースはゴマンと転がっとるし
C reverse string rev.c strrev - Google 検索
https://www.google.com/search?q=C+reverse+string+rev.c+strrev
C program to reverse a string | Programming Simplified
https://www.programmingsimplified.com/c-program-reverse-string
C_69 C Program to Reverse a String | with strrev() and without strrev() function - YouTube
https://www.youtube.com/watch?v=530jWnBMD2M
… 好きにしんしゃい
64396
2022/08/06(土) 15:16:53.43ID:ddLJv/Kp Cygwin などに使われている util-linux パッケージのオリジナルな現行のソースは
GitHub - util-linux/util-linux
https://github.com/util-linux/util-linux
かな。そのうち rev.c のソースは
util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub
https://github.com/util-linux/util-linux/blob/master/text-utils/rev.c
ちな util-linux パッケージは2006年に fork したとき名前に -ng をつけて util-linux-ng になったが
2010年に util-linux に名前を戻している。
cf.)
util-linux - Wikipedia
https://en.wikipedia.org/wiki/Util-linux
ついつい、調べ物をしてしまった…orz
GitHub - util-linux/util-linux
https://github.com/util-linux/util-linux
かな。そのうち rev.c のソースは
util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub
https://github.com/util-linux/util-linux/blob/master/text-utils/rev.c
ちな util-linux パッケージは2006年に fork したとき名前に -ng をつけて util-linux-ng になったが
2010年に util-linux に名前を戻している。
cf.)
util-linux - Wikipedia
https://en.wikipedia.org/wiki/Util-linux
ついつい、調べ物をしてしまった…orz
644デフォルトの名無しさん
2022/08/06(土) 17:24:05.41ID:8a3zeEyr >>642
ありがとう。そんなとこにあったのか
ありがとう。そんなとこにあったのか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 立民・岡田氏の質疑「不適切」 維新・藤田氏、台湾有事答弁巡り [蚤の市★]
