プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/
探検
プログラミングのお題スレ Part19
■ このスレッドは過去ログ倉庫に格納されています
2020/11/30(月) 00:04:05.21ID:TF2Czp0y
567デフォルトの名無しさん
2021/04/03(土) 08:17:43.34ID:McIcD2xB >>566
予定では 2.5系は今年の3月末で公式サポート切れですので早めの移行をおすすめします
https://www.ruby-lang.org/ja/news/2020/04/05/support-of-ruby-2-4-has-ended/
予定では 2.5系は今年の3月末で公式サポート切れですので早めの移行をおすすめします
https://www.ruby-lang.org/ja/news/2020/04/05/support-of-ruby-2-4-has-ended/
568デフォルトの名無しさん
2021/04/03(土) 20:31:52.16ID:HCHjqGIn569デフォルトの名無しさん
2021/04/04(日) 01:19:15.65ID:TsxWz5pg570デフォルトの名無しさん
2021/04/04(日) 04:15:17.77ID:i8ul4qcC >>560
Perl でこんな感じでできた。(1行目はbashのコマンドラインからの入力。2行目が出力)
echo 'abあいう1あいう23あいうxyz' | perl -ne 'chomp;@d=split/あいう/;shift(@d);print "[" . join(", ", map { qq("あいう$_") } @d) . "]\n"'
["あいう1", "あいう23", "あいうxyz"]
Perl でこんな感じでできた。(1行目はbashのコマンドラインからの入力。2行目が出力)
echo 'abあいう1あいう23あいうxyz' | perl -ne 'chomp;@d=split/あいう/;shift(@d);print "[" . join(", ", map { qq("あいう$_") } @d) . "]\n"'
["あいう1", "あいう23", "あいうxyz"]
571デフォルトの名無しさん
2021/04/05(月) 20:31:30.41ID:o12owsbD 「像は鼻が長い」でグクった
なるほど気付かなかった
なるほど気付かなかった
572デフォルトの名無しさん
2021/04/06(火) 01:25:45.23ID:zN4gWhl4 次の検索結果を表示しています: 象は鼻が長い
573デフォルトの名無しさん
2021/04/06(火) 13:58:55.66ID:ounqm2YM 数学板より
お題:足して9
各桁の和が9である自然数を小さい物順に並べる
9,18,27,36,45,54,63,72,81,90,108,117....
n番目を求める関数を実装せよ
入力:12
出力:117
入力:12345
出力:100204200
入力:123456789
出力:30000100000100000021000001000
お題:足して9
各桁の和が9である自然数を小さい物順に並べる
9,18,27,36,45,54,63,72,81,90,108,117....
n番目を求める関数を実装せよ
入力:12
出力:117
入力:12345
出力:100204200
入力:123456789
出力:30000100000100000021000001000
574デフォルトの名無しさん
2021/04/06(火) 15:10:20.38ID:8eKBKzx+ プロおじのオナニースレ
575デフォルトの名無しさん
2021/04/06(火) 15:49:51.64ID:5jp1nWlk プロおじってなんだ?
576デフォルトの名無しさん
2021/04/06(火) 15:59:26.26ID:sYlI8eNJ 数学板の荒らし
577デフォルトの名無しさん
2021/04/06(火) 16:27:52.36ID:vlqQXHl9578デフォルトの名無しさん
2021/04/06(火) 16:52:22.76ID:sYlI8eNJ579デフォルトの名無しさん
2021/04/06(火) 16:55:57.07ID:RTS/XrJR 数学板では
プログラム好き好きおじさんと
プログラム怖い怖いおじさんが
意味の無い罵り愛を展開しているのだそうな
プログラム好き好きおじさんと
プログラム怖い怖いおじさんが
意味の無い罵り愛を展開しているのだそうな
5809
2021/04/07(水) 01:03:14.39ID:lZ4PPQGS 意味のない愛か…
イサキが大漁そうだな
アホ草
イサキが大漁そうだな
アホ草
581デフォルトの名無しさん
2021/04/07(水) 03:29:39.17ID:nO5/cs4F プログラムこわい
落語かよ
落語かよ
582蟻人間 ◆T6xkBnTXz7B0
2021/04/10(土) 19:40:12.57ID:Sahzdf8n お題: かなとアルファベットと数字からなる文字列をモールス信号に変換するプログラム。ただし、長音を「−」、短音を「・」で表し、モールス信号に変換できない文字は下駄文字(〓)に置き換える。全角・半角の両方に対応すること。
参考:
https://ja.m.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7
参考:
https://ja.m.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7
583デフォルトの名無しさん
2021/04/11(日) 01:48:43.24ID:yXhW6xoe584デフォルトの名無しさん
2021/04/11(日) 04:58:14.74ID:b01EJxrZ モールスか。前にもあったな。そんなお題。
その時は確か音まで出す気合の入った回答をした人も居たと思った。
その時は確か音まで出す気合の入った回答をした人も居たと思った。
585デフォルトの名無しさん
2021/04/11(日) 18:30:35.89ID:b01EJxrZ お題
>>582と同じでモールス信号作成。但し、定義ファイルに文字ごとに対応する信号を入れておきそれを指定して動く方式。(これにより言語が関係なくなる)。
日本語用定義ファイルを指定して動かせばそれに従って日本語での変換が行われ、英語用のを指定すれば英語での変換になるようにする。
プログラムと定義ファイルを最低一つ作ること。定義ファイルの内容は定義に従って正しく変換がされるかの確認が出来る程度で良い(例えば数字の変換だけでも良い)。
>>582と同じでモールス信号作成。但し、定義ファイルに文字ごとに対応する信号を入れておきそれを指定して動く方式。(これにより言語が関係なくなる)。
日本語用定義ファイルを指定して動かせばそれに従って日本語での変換が行われ、英語用のを指定すれば英語での変換になるようにする。
プログラムと定義ファイルを最低一つ作ること。定義ファイルの内容は定義に従って正しく変換がされるかの確認が出来る程度で良い(例えば数字の変換だけでも良い)。
586デフォルトの名無しさん
2021/04/11(日) 18:33:36.97ID:b01EJxrZ 定義ファイルのエンコードはご自由に。でも UTF-8 にしておくとあちこちで使えて良いかも知れない。(Javaとか自動変換してくれるやつだと漢字も1文字扱い出来て楽だし)。
587デフォルトの名無しさん
2021/04/11(日) 19:48:32.73ID:yXhW6xoe588蟻人間 ◆T6xkBnTXz7B0
2021/04/11(日) 21:31:44.93ID:xF2ZqhuB お題: UTF-8のCSVファイル(BOMなし)をテキトーにJSONファイルに変換せよ。
589蟻人間 ◆T6xkBnTXz7B0
2021/04/11(日) 21:37:50.73ID:xF2ZqhuB お題: 現在のディレクトリに連番のファイル(000.txt〜999.txt)を作成せよ。
590蟻人間 ◆T6xkBnTXz7B0
2021/04/11(日) 21:49:03.91ID:xF2ZqhuB お題: 現在のディレクトリの中から「jewel」と書かれたバイナリファイルを探索せよ(ファイル名およびファイルの中身)。大文字小文字、全角半角を区別すること。
591デフォルトの名無しさん
2021/04/11(日) 21:49:37.43ID:oovdLEo5 >>589 コマンドプロンプト直打ち
>for /L %X in (0,1,9) do @for /L %Y in (0,1,9) do @for /L %Z in (0,1,9) do @echo.%X%Y%Z>%X%Y%Z.txt
>for /L %X in (0,1,9) do @for /L %Y in (0,1,9) do @for /L %Z in (0,1,9) do @echo.%X%Y%Z>%X%Y%Z.txt
592デフォルトの名無しさん
2021/04/11(日) 23:08:08.91ID:b01EJxrZ >>590
grep jewel *
grep jewel *
593デフォルトの名無しさん
2021/04/12(月) 00:41:18.68ID:PERQzDfp594デフォルトの名無しさん
2021/04/12(月) 00:42:24.60ID:PERQzDfp ごめん。 .dat じゃなくて .txt か。
まあでもその部分だけ直せばできる。
まあでもその部分だけ直せばできる。
595デフォルトの名無しさん
2021/04/12(月) 02:59:02.12ID:McWTq0EP 推奨NGワード: 蟻
596デフォルトの名無しさん
2021/04/12(月) 03:54:37.45ID:PERQzDfp597デフォルトの名無しさん
2021/04/12(月) 04:32:56.67ID:PERQzDfp 関係ないけどDMMブックスの7割引きは凄いな。高い本バスケットに入れまくりだ。
598蟻人間 ◆T6xkBnTXz7B0
2021/04/12(月) 20:48:48.64ID:AVNmNVln お題: マルチスレッドを使うと処理完了が早くなる例を示しなさい。※CPUはマルチコアを前提とする。
599デフォルトの名無しさん
2021/04/13(火) 05:15:20.29ID:RNIiO4nm >>589 Ruby
("0000".."9999").each{|x|open(x+".txt","w").close}
("0000".."9999").each{|x|open(x+".txt","w").close}
600蟻人間 ◆T6xkBnTXz7B0
2021/04/15(木) 20:54:26.73ID:IlyHVFTA お題: ここに3つのタンクA,B,Cがある。それぞれの最大容量は20L, 15L, 10Lである。初め、Aには水15Lが入っていて、Bには水10L入っていて、
Cは空っぽだ。重力により、水は2L/sの速さでAからBに流入し、3L/sの速さでBからCに流入する。
このような水の流れとタンク内容量の変化を再現してCがいっぱいになったときのAとBの内容量を求めよ。
Cは空っぽだ。重力により、水は2L/sの速さでAからBに流入し、3L/sの速さでBからCに流入する。
このような水の流れとタンク内容量の変化を再現してCがいっぱいになったときのAとBの内容量を求めよ。
601蟻人間 ◆T6xkBnTXz7B0
2021/04/15(木) 21:05:03.04ID:PVf346K4 >>600
その「水タンク-システム」=水時計って、水位差と流出量が比例するのほうがおもしろいのでは?
その「水タンク-システム」=水時計って、水位差と流出量が比例するのほうがおもしろいのでは?
603デフォルトの名無しさん
2021/04/16(金) 00:35:37.34ID:b5uchwAM 受験の頻出問題で排出される水量が√水位に比例するというのがあった
大学入ってやっとベルヌーイの定理というものだと知った
大学入ってやっとベルヌーイの定理というものだと知った
604デフォルトの名無しさん
2021/04/16(金) 14:13:28.80ID:jtvNbV+8 バカみたいな受験数学教えてないでストレートにベルヌーイの定理教えりゃいいのに
ガキに能力キャップを付けて伸びないようにバカはバカのまんまでいいとする教育法が全部悪い
そろそろ文科省は解体した方がいい
ガキに能力キャップを付けて伸びないようにバカはバカのまんまでいいとする教育法が全部悪い
そろそろ文科省は解体した方がいい
605デフォルトの名無しさん
2021/04/16(金) 19:04:19.26ID:xRzMNGAE606蟻人間 ◆T6xkBnTXz7B0
2021/04/16(金) 20:35:12.47ID:WHFzsZ51 お題: 計算可能な未知の関数f(x)が与えられる。x=-5〜+5において数値微分してf(x)の導関数の近似グラフを描画せよ。
(1) f(x)=x**2.
(2) f(x)=3*sin(x).
(3) f(x)=sqrt(abs(x)).
(1) f(x)=x**2.
(2) f(x)=3*sin(x).
(3) f(x)=sqrt(abs(x)).
607蟻人間 ◆T6xkBnTXz7B0
2021/04/16(金) 21:05:20.24ID:WHFzsZ51 なお、グラフィックスが使えない言語では、テキストによる「仮想画面」を使って描画すること。
608デフォルトの名無しさん
2021/04/16(金) 21:12:44.84ID:DiXcAXcy609デフォルトの名無しさん
2021/04/16(金) 22:53:37.77ID:zdKOg7Co >>604
まともな学校では数学好きな奴は高校の内から高木貞二読んだりしてたぞ
まともな学校では数学好きな奴は高校の内から高木貞二読んだりしてたぞ
610デフォルトの名無しさん
2021/04/17(土) 07:31:04.20ID:lD3utFKx 計算不能な既知の関数て何?
611デフォルトの名無しさん
2021/04/17(土) 09:03:16.04ID:3IkVvJ6C612デフォルトの名無しさん
2021/04/17(土) 11:28:29.30ID:Mked9+jN 中受算数をやる時間が無駄じゃん
そこで解析が出るならまだしも
ならストレートに連立方程式やら積分やらを出せばいい
そこで解析が出るならまだしも
ならストレートに連立方程式やら積分やらを出せばいい
613デフォルトの名無しさん
2021/04/17(土) 12:39:29.81ID:3vy+q5kN 自分でやれば?としか思わないんだが
614デフォルトの名無しさん
2021/04/17(土) 21:59:24.27ID:sbDPbhaa お題
同じ形の洗濯バサミの足を挟んでつなげてリングを作る。
最初の洗濯バサミの先頭から次のせんたくばさみの先頭までの長さAをとする。
以下同様につなげていくとすると洗濯バサミは何個必要だろうか?
同じ形の洗濯バサミの足を挟んでつなげてリングを作る。
最初の洗濯バサミの先頭から次のせんたくばさみの先頭までの長さAをとする。
以下同様につなげていくとすると洗濯バサミは何個必要だろうか?
615デフォルトの名無しさん
2021/04/18(日) 00:18:58.62ID:3FSrV0IS 360 / θ 個
616デフォルトの名無しさん
2021/04/18(日) 03:37:38.28ID:MhI7DTLG >>614訂正
洗濯バサミを3個つないだ状態で
最初の洗濯バサミの先頭から2番目の洗濯バサミの先頭までの長さをAとする。
2番目の先頭から3番目の先頭までをAとする。
1番目の先頭から3番目の先頭までをBとする。
洗濯バサミを3個つないだ状態で
最初の洗濯バサミの先頭から2番目の洗濯バサミの先頭までの長さをAとする。
2番目の先頭から3番目の先頭までをAとする。
1番目の先頭から3番目の先頭までをBとする。
617デフォルトの名無しさん
2021/04/18(日) 06:09:43.55ID:RQ5SqrPJ 絵を描いた方が分かりやすい
618デフォルトの名無しさん
2021/04/18(日) 15:55:26.09ID:oZ702Pek 数学の問題やん?
計算機を使って何をしろと?
A,Bが入力されたときに答え出せばいい?
計算機を使って何をしろと?
A,Bが入力されたときに答え出せばいい?
619デフォルトの名無しさん
2021/04/18(日) 16:11:00.76ID:oZ702Pek620蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 14:33:35.54ID:fjai9OEL お題: 依存関係のあるソート。与えられたいくつかの項目について、各項目ごとに依存関係が指定される。依存対象が先に来るように項目のリストをソートしなさい。
依存関係に循環がある場合は「ERROR」と出力しなさい。依存関係がない場合は名前の順でソートしなさい。
例1) {A, B, C}
AはB, Cに依存する。
BはCに依存する。
Cは何にも依存しない。
例2) {A, B, C, D}
AはCに依存する。
BはDに依存する。
CはB, Dに依存する。
Dは何にも依存しない。
依存関係に循環がある場合は「ERROR」と出力しなさい。依存関係がない場合は名前の順でソートしなさい。
例1) {A, B, C}
AはB, Cに依存する。
BはCに依存する。
Cは何にも依存しない。
例2) {A, B, C, D}
AはCに依存する。
BはDに依存する。
CはB, Dに依存する。
Dは何にも依存しない。
621蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 14:57:48.16ID:fjai9OEL 例3) {A, B, C, D, E}
AはEに依存する。
BはDに依存する。
CはBに依存する。
Dは何にも依存しない。
EはBに依存する。
AはEに依存する。
BはDに依存する。
CはBに依存する。
Dは何にも依存しない。
EはBに依存する。
622デフォルトの名無しさん
2021/04/20(火) 19:18:30.05ID:4HfXomGv 例ってそれぞれの入力してでどう言う出力なのか答え出さないと例にならんやん?
623蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 20:00:19.11ID:fjai9OEL624蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 20:07:07.92ID:fjai9OEL 全順序じゃないから、単純なソートアルゴリズムじゃダメみたいだね。
625蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 20:14:12.39ID:fjai9OEL626608
2021/04/20(火) 23:18:11.98ID:F5cpVo8A627デフォルトの名無しさん
2021/04/21(水) 00:20:12.53ID:BjBFMDAR628デフォルトの名無しさん
2021/04/21(水) 04:35:47.26ID:BjBFMDAR630デフォルトの名無しさん
2021/04/21(水) 11:28:35.43ID:feIJLTYL 例えば>>821の時は順序の生成元が
E<A, D<B, B<C, B<E
この中で先頭に持ってきて良いものを探す
それはつまり「何かに依存していないもの」
この状態ではA,B,C,Eは何かに依存しているのでダメ
よってこの場合Dしかない
残りA,B,C,Eの順序を決める
その際順序の生成元からD<Xの形は取り除く
つまり
E<A, B<C, B<E
依存していないものはBのみなのでBが2番目
残りA,C,Eで順序の生成元はE<Aのみ
依存してないのはC,Eでどちらがきても良い
‥
数学的には“何かに依存していない”はその“半順序”における“極小元”
そして極小元になり得る必要十分条件がまさに「順序の生成系の中でそれより小さいものがないもの」、すなわち「何かに依存してないもの」とわかる(証明も簡単)
そしてこの作業に於いて順序の生成系にループが有れば、例えばx<y,y<z,z<xのようなものが有ればx,y,zは最後まで取り除かれず、最後には「まだ元は残ってるけど極小元なし」の状態に到達してしまうのでその時点でerror判定して終了すれば良い
E<A, D<B, B<C, B<E
この中で先頭に持ってきて良いものを探す
それはつまり「何かに依存していないもの」
この状態ではA,B,C,Eは何かに依存しているのでダメ
よってこの場合Dしかない
残りA,B,C,Eの順序を決める
その際順序の生成元からD<Xの形は取り除く
つまり
E<A, B<C, B<E
依存していないものはBのみなのでBが2番目
残りA,C,Eで順序の生成元はE<Aのみ
依存してないのはC,Eでどちらがきても良い
‥
数学的には“何かに依存していない”はその“半順序”における“極小元”
そして極小元になり得る必要十分条件がまさに「順序の生成系の中でそれより小さいものがないもの」、すなわち「何かに依存してないもの」とわかる(証明も簡単)
そしてこの作業に於いて順序の生成系にループが有れば、例えばx<y,y<z,z<xのようなものが有ればx,y,zは最後まで取り除かれず、最後には「まだ元は残ってるけど極小元なし」の状態に到達してしまうのでその時点でerror判定して終了すれば良い
632デフォルトの名無しさん
2021/04/21(水) 12:03:04.18ID:v7jA28gl お題が気持ち悪い
単に有向グラフの辺となるものだけ指定すれば良いのに
依存とか書いちゃうから以下みたいな間接依存が許されない雰囲気
AはBに依存
BはCに依存
単に有向グラフの辺となるものだけ指定すれば良いのに
依存とか書いちゃうから以下みたいな間接依存が許されない雰囲気
AはBに依存
BはCに依存
633デフォルトの名無しさん
2021/04/21(水) 19:33:37.67ID:tmGizupL 蟻野郎が順序集合理解してるとも思えない。
634デフォルトの名無しさん
2021/04/21(水) 19:35:00.12ID:/BbfB4Z5635デフォルトの名無しさん
2021/04/21(水) 19:48:52.11ID:Y7fj3JnX 順序集合の定義自体は超簡単じゃね?
順序集合の定理なんか使わないから順序集合なんて言葉を使う必要もないけど
アルゴリズム的には
極大(極小)元の中で名前順の先頭である元を取り出す
を繰り返すだけで良い
取り出せなくなってまだ残っていたらERROR
>>630みたいに無駄に長く説明しなくて良い
順序集合の定理なんか使わないから順序集合なんて言葉を使う必要もないけど
アルゴリズム的には
極大(極小)元の中で名前順の先頭である元を取り出す
を繰り返すだけで良い
取り出せなくなってまだ残っていたらERROR
>>630みたいに無駄に長く説明しなくて良い
636デフォルトの名無しさん
2021/04/21(水) 19:59:05.72ID:tmGizupL 順序集合真面目にやるなら集合と位相について学ぶ必要があるわけで
637デフォルトの名無しさん
2021/04/21(水) 20:12:32.68ID:rPf7kV48 そりゃーC++には半順序がバンバン出てくるから選ばれた人間向けの言語だよ。
638蟻人間 ◆T6xkBnTXz7B0
2021/04/21(水) 22:08:22.58ID:OiYnhzgp >>634
ちゃんと理解して実装したぜ。
https://github.com/katahiromz/OleBow/commit/f65c774b625385e855971adb1275de1fd6ebee0c
循環参照の例がうまくいかないけど。
// :: IBindCtx: IRunningObjectTable
// :: IEnumMoniker: IMoniker
// :: IMoniker: IBindCtx
// :: IMoniker: IEnumMoniker
// :: IRunningObjectTable: IEnumMoniker
// :: IRunningObjectTable: IMoniker
// :: PartitionMoniker: IMoniker
// :: SoapMoniker: IMoniker
ポインタ型とかは後回しでいっかな。
ちゃんと理解して実装したぜ。
https://github.com/katahiromz/OleBow/commit/f65c774b625385e855971adb1275de1fd6ebee0c
循環参照の例がうまくいかないけど。
// :: IBindCtx: IRunningObjectTable
// :: IEnumMoniker: IMoniker
// :: IMoniker: IBindCtx
// :: IMoniker: IEnumMoniker
// :: IRunningObjectTable: IEnumMoniker
// :: IRunningObjectTable: IMoniker
// :: PartitionMoniker: IMoniker
// :: SoapMoniker: IMoniker
ポインタ型とかは後回しでいっかな。
639デフォルトの名無しさん
2021/04/22(木) 06:53:19.23ID:fMSh/hUg 俺ももっと勉強しないとなあ
640デフォルトの名無しさん
2021/04/22(木) 07:08:36.76ID:DXDf8hNh >>620 Ruby
# Array
rule = []
while gets
break unless m = /^\s*(\w)は(\w)?(?:,\s*(\w))*/.match( $_ )
rule << m.to_a[1..] - [nil]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a.size == 1 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i] -= [d] } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
# Array
rule = []
while gets
break unless m = /^\s*(\w)は(\w)?(?:,\s*(\w))*/.match( $_ )
rule << m.to_a[1..] - [nil]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a.size == 1 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i] -= [d] } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
641デフォルトの名無しさん
2021/04/22(木) 07:09:10.65ID:DXDf8hNh >>620 Ruby
# Bit演算
rule = []
while gets
break unless m = /^\s*([A-Z])は([A-Z])?(?:,\s*([A-Z]))*/i.match( $_ )
rule << [ m[1].upcase, m.to_a[2..].inject(0){|r,c| (c)? r | (1 << c.upcase.ord - ?A.ord) : r } ]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a[1] == 0 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i][1] &= ~ (1 << d.ord - ?A.ord) } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
# Bit演算
rule = []
while gets
break unless m = /^\s*([A-Z])は([A-Z])?(?:,\s*([A-Z]))*/i.match( $_ )
rule << [ m[1].upcase, m.to_a[2..].inject(0){|r,c| (c)? r | (1 << c.upcase.ord - ?A.ord) : r } ]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a[1] == 0 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i][1] &= ~ (1 << d.ord - ?A.ord) } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
642デフォルトの名無しさん
2021/04/22(木) 20:40:45.65ID:euTe4E7l お題
JSONでシリアライズされた未知のm×nの行列が与えられる。
転置行列を返せ。転置行列はシリアライズされていなくてもよい。
例
入力
"[[1,2],[3,4]]"
出力
[[1,3],[2,4]]
JSONでシリアライズされた未知のm×nの行列が与えられる。
転置行列を返せ。転置行列はシリアライズされていなくてもよい。
例
入力
"[[1,2],[3,4]]"
出力
[[1,3],[2,4]]
643デフォルトの名無しさん
2021/04/23(金) 05:15:31.62ID:dol38sZT644デフォルトの名無しさん
2021/04/23(金) 07:10:55.59ID:M88Kc634 当然transpose標準で用意されてる言語はそうなるわなw
645デフォルトの名無しさん
2021/04/23(金) 13:43:38.22ID:Vuss2QH6646蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 15:35:20.99ID:CrWxBL6F お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。
(1) {{=数式}}
(2) {{フィールド名:文字列}}
(3) {{フィールド名:=数式}}
フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、整数から文字列への変換と、文字列の連結をサポートすること。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
その他の仕様についてはエクセルをできる限りまねること。
(1) {{=数式}}
(2) {{フィールド名:文字列}}
(3) {{フィールド名:=数式}}
フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、整数から文字列への変換と、文字列の連結をサポートすること。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
その他の仕様についてはエクセルをできる限りまねること。
647蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 15:52:00.73ID:CrWxBL6F >>646 追記。
フィールド名は英字で始まるものとする。
(入力例)
こんにちは、{{NAME:蟻人間}}さん。
今年は{{:=Y}}年です。来年は{{:=Y+1}}年です。
A={{A:=1}}.
B={{B:=2}}.
A+B+4={{=A+B+4}}.
A*B-2={{=A*B-2}}.
日付: {{Y:=2021}}年{{M:=4}}月{{D:=27}}日
{{:="<"&NAME&">"}}
フィールド名は英字で始まるものとする。
(入力例)
こんにちは、{{NAME:蟻人間}}さん。
今年は{{:=Y}}年です。来年は{{:=Y+1}}年です。
A={{A:=1}}.
B={{B:=2}}.
A+B+4={{=A+B+4}}.
A*B-2={{=A*B-2}}.
日付: {{Y:=2021}}年{{M:=4}}月{{D:=27}}日
{{:="<"&NAME&">"}}
648蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 16:21:47.75ID:CrWxBL6F >>647 さらに追記。
{{=数式}}と{{:=数式}}は同じように解釈すること。
{{=数式}}と{{:=数式}}は同じように解釈すること。
649デフォルトの名無しさん
2021/04/27(火) 16:53:41.78ID:B18ZzSzj {{数式}}でいいだろセンスねぇな
650蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:02:02.42ID:CrWxBL6F651蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:08:35.63ID:CrWxBL6F >>646 お題を書き直します。
お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。
(1) {{数式}}
(2) {{フィールド名=数式}}
フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は英字で始まる半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、値の比較と、整数から文字列への変換と、文字列の連結をサポートすること。等号は二文字の==とする。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。
(1) {{数式}}
(2) {{フィールド名=数式}}
フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は英字で始まる半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、値の比較と、整数から文字列への変換と、文字列の連結をサポートすること。等号は二文字の==とする。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
652蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:10:52.46ID:CrWxBL6F >>651
(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。
A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.
日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。
A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.
日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
653デフォルトの名無しさん
2021/04/27(火) 20:20:55.02ID:MrWPWVr1 連投死ねクソ蟻
お前に来年は来ねえよ
お前に来年は来ねえよ
654蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 22:28:29.02ID:CrWxBL6F655蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 22:30:28.43ID:CrWxBL6F 人間がボットみたいなことやってたらカバみたいだね。ほんとほんと。
656デフォルトの名無しさん
2021/05/03(月) 17:08:04.28ID:meUcD9ks お題
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください
入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください
入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
657デフォルトの名無しさん
2021/05/03(月) 19:31:00.21ID:vyn1ULyt >>656 Ruby
'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}
# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}
# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
658デフォルトの名無しさん
2021/05/03(月) 20:05:34.50ID:vJY6tWsE >>656
haskell
import Data.List
subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]
main = mapM print $ subPathes "A/B/B/B"
haskell
import Data.List
subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]
main = mapM print $ subPathes "A/B/B/B"
659デフォルトの名無しさん
2021/05/03(月) 22:24:37.21ID:v5K6mFSj >>656 C
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
660デフォルトの名無しさん
2021/05/03(月) 22:28:25.61ID:Fl247JAk >>656 Ruby
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
661デフォルトの名無しさん
2021/05/03(月) 23:35:00.95ID:ED/pHj/W python
import sys
from pathlib import PurePath
for x in PurePath(sys.argv[1]).parents: print(x)
import sys
from pathlib import PurePath
for x in PurePath(sys.argv[1]).parents: print(x)
662デフォルトの名無しさん
2021/05/04(火) 01:17:51.79ID:BGUDbBhh >>656
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg
最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg
最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
663デフォルトの名無しさん
2021/05/04(火) 02:03:51.93ID:BGUDbBhh 文字列をPATHの区切り文字で後ろから検索しないで先頭から検索しても同じと気付いたのでこっそり直した。
664デフォルトの名無しさん
2021/05/04(火) 18:30:10.36ID:0HSekrvc >>656 Ruby
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
665デフォルトの名無しさん
2021/05/06(木) 18:06:27.01ID:b7Mkjg0R >>656
Elixir
list = String.split( "a/bc/d", "/" ) # 分割
# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->
tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない
acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )
IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
Elixir
list = String.split( "a/bc/d", "/" ) # 分割
# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->
tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない
acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )
IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
666デフォルトの名無しさん
2021/05/06(木) 18:47:12.53ID:wT5/oYmn a="ko/koh/oreo/n/eone"
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★4 [蚤の市★]
- 中国側が首相答弁の撤回要求、日本側拒否★5 [夜のけいちゃん★]
- 「厚かましい挑発的発言だ」中国国連大使が高市首相発言に強く反発 日本の常任理事国入りに明確に反対 [ぐれ★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★6 [ぐれ★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- 【悲報】ファブル「━━━書かれた文面を読むだけの岸田と違って、高市は決断力や行動力があり、自分で責任を取れる。 [257926174]
- 【悲報】高市早苗さん、たった一人で日本を崩壊へ導く [714769305]
- 【悲報】「やったー!こだわりまくった洋館仕立ての家を建てたぞ!」➡「「離婚したんで住まずに売ります……」 [158478931]
- 【悲報】高市総理モノマネにとろサーモン久保田がブチギレ。「しょーもない。高市さんは頑張ろうとしてるやろ」😮 [518915984]
- 精神する時の🏡
- 【画像】日本のリン肥料、7割が中国だった!レアじゃないアースを禁輸されただけて餓死へ [347751896]
