プログラミングのお題スレ Part19

■ このスレッドは過去ログ倉庫に格納されています
2020/11/30(月) 00:04:05.21ID:TF2Czp0y
プログラミングのお題スレです。

【出題と回答例】
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/
2021/03/28(日) 11:23:09.31ID:DP4dwTUs
>>518
C++
https://ideone.com/JZSLMR
522デフォルトの名無しさん
垢版 |
2021/03/28(日) 11:24:32.88ID:4K917Y8t
>>520
マルチはよくないなぁ

以下のプログラミングテスト(Q4)の解き方を教えて下さい。http... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13240901843
2021/03/28(日) 11:59:07.61ID:GXcEOVy1
幅優先探索で各まとまりごとに数える
イメージとしては水を流すかんじ
2021/03/28(日) 12:00:53.63ID:kEDn86wz
そんな単純じゃなかった
すまん
525デフォルトの名無しさん
垢版 |
2021/03/28(日) 12:28:42.14ID:iZclnQMF
>>498
python3で頑張りました。
https://ideone.com/jRsBaI
526デフォルトの名無しさん
垢版 |
2021/03/28(日) 12:38:30.87ID:iZclnQMF
>>518
python3。
https://ideone.com/J7MbiO
2021/03/28(日) 13:28:28.53ID:PtqbLDQy
>>520
たぶん
外周に番兵を置いて、番兵に接触する空白も番兵とみなす、このとき斜め方向に接触する空白も番兵とする。
あとはそれぞれコマの四方向のコマと空白のつながりから塊を調べる、コマ数をカウントすれば塊の数。
こんな感じ
528デフォルトの名無しさん
垢版 |
2021/03/28(日) 14:18:33.80ID:vxTq7Eni
>>498
C
https://ideone.com/y4IBiu
529デフォルトの名無しさん
垢版 |
2021/03/28(日) 22:37:55.92ID:P/SJyVCP
>>498
なぞって行って2度通過した個所を出してみたら EW みたいな進んだ方向にただ戻る個所もループという事になったのだが、
それもアリか?アリならできたぞ。そういうのは除外となるともう一段それの発見のための処理を追加する必要がある。
2021/03/28(日) 23:02:47.52ID:omLVBKFC
>>529
上の方でありだって
531527
垢版 |
2021/03/29(月) 00:19:25.86ID:FlEtzfzI
>>520 Ruby
https://ideone.com/n1jLCH
2021/03/29(月) 00:44:12.81ID:DFO7aycs
お題: 上下左右に広がる、がらんどうのX-Y二次元空間がある。直径10cmで質量7kgで均一な密度のボール状の物体Pの中心は、
時刻ゼロのとき、A地点(x1, y1)にあり、ここから謎の力により空中に固定される非常に丈夫な一枚の板と、時刻ゼロより発生する重力を使って、B地点(x2, y2)まで誘導したい。BはAより下にある(y1>y2)。
板は固定すると重力が働いてもびくとも動かない。物体PはB地点を必ず一度以上通過しなければならない。さてどのように板を設置すればいいか。時刻がゼロになる前に板を注文して固定しなければならない。
板は真っ直ぐ直線的であり、板の厚みは考慮しない。摩擦と空気抵抗は無視し、反発係数は1とする。この板は非常に高価なため(1cmが3万円)、なるべく短い長さで注文する必要がある。
重力加速度は下向きで地球上と同じ強さとする。設置する板の両端の座標(x3, y3)〜(x4, y4)[cm]と使用する板の費用price[円]と、時刻ゼロよりB地点到達にかかる時間T[秒]を求めよ。
2021/03/29(月) 00:48:38.14ID:DFO7aycs
>>532
例1)
(x1, y1, x2, y2) == (1, 3, 4, 1).

例2)
(x1, y1, x2, y2) == (0, 10, -8, 0).

例3)
(x1, y1, x2, y2) == (-5, 3, 5, 0).
2021/03/29(月) 07:42:15.30ID:cZtrSLJU
>>532
二次元空間なのにボール状の物体が存在するのか。重力加速度の下向きってどっち?
蟻人間ていつも凝った設定を作ろうとして杜撰なものばかりなイメージがある
2021/03/29(月) 07:43:41.48ID:cZtrSLJU
あ、下は書いてあるのね
2021/03/29(月) 07:47:56.84ID:CQMmtcGJ
そりゃ知能が蟻並みだからな
2021/03/29(月) 08:11:58.61ID:JXmb9uoD
adhdとか何か(学習|発達)障害持ってるんでしょ
ガイジなのは一見して分かるし
2021/03/29(月) 09:01:21.30ID:GDKfaeCK
少なくとも>>532は最小値が存在せんやろ
2021/03/29(月) 09:52:29.10ID:DFO7aycs
注文できる板の最小の長さは1cmとします。初速はゼロとします。
2021/03/29(月) 09:54:01.19ID:GDKfaeCK
じゃあ答えは0
2021/03/29(月) 09:54:28.27ID:GDKfaeCK
じゃなくて1cm
542デフォルトの名無しさん
垢版 |
2021/03/29(月) 10:03:17.39ID:qQUSl3DL
(x1,y1)から右下の(x2,y2)へ45度のスロープ作ったら到達時間は何秒かって問題だろ
板の値段は30000√2円
543デフォルトの名無しさん
垢版 |
2021/03/29(月) 10:08:28.37ID:qQUSl3DL
例にあるマイナス座標の意味がわからない
2021/03/29(月) 10:19:24.26ID:DFO7aycs
与えられたパラメータでBを通過するか判定する関数fを定義して下さい。fが正しく定義され、fに成功するパラメータならば正解とします。ブルートフォースや空間探索を使ってもかまいません。
2021/03/29(月) 10:21:35.37ID:DFO7aycs
>>542
はね返りを使えば板はもっと短くなるかと。右下ではなく左下の場合も可能。
2021/03/29(月) 11:08:10.66ID:GDKfaeCK
>>545
板の設置位置に制限がなく反発係数が1、すなわち運動エネルギーのロスが0なら目標地点がどんなにとおくても、高低差がどんなに小さくても到達できる
hだけ下方に設置してθだけ傾けた時を考える
板に反射した地点を原点、t=0として、初速は√(2gh)、最高到達点までの時間は√(2h/g) cos2θ、水平方向速度は√(2gh)sin2θ、反発地点から最高到達点までの水平距離はhsin4θ、最高到達点の高さはhcos^2(2θ)
方程式
x2-x1=2hsin(2θ)cos(2θ)
y2-y1=-hcos^2(2θ)
はy2-y1<0である時常に解もつ
547デフォルトの名無しさん
垢版 |
2021/03/29(月) 11:35:09.16ID:qQUSl3DL
ちょっとだけ傾いててほぼ水平なら、板の長さは限りなく1cmに近づき、到達時間は無限に近づくわな
あとはB点が線分上にあるか計算するだけでいい
2021/03/29(月) 11:36:43.02ID:DFO7aycs
>>546
だいぶ近いけど、ボールの直径を考慮する必要があるよ。
2021/03/29(月) 12:31:33.01ID:jg4xlr05
>>547
どのみち常に解を持つから問題になってない
2021/03/29(月) 14:04:34.12ID:KXpoeU4l
お題:次の文章を解読するプログラムを作れ。

「この文書は{SJIS:93C192E894E996A7}です。{SJIS:95948A4F8ED2}が閲覧すると、{SJIS:94B182B982E7}れます。」
551520
垢版 |
2021/03/29(月) 21:19:00.34ID:IYjRcjQN
>>522
すみません、ルール違反なんですね…以後気を付けます。

>>527
>>531
ありがとうございます!
考え方まで記載いただき、本当に助かりました。
552デフォルトの名無しさん
垢版 |
2021/03/30(火) 03:21:24.51ID:6PAqNnFi
>>518
Kotlin
https://paiza.io/projects/Y2U2DgK9pKbNVqwu8gjpQQ

1のビットを数える方法は以前どっかで見た方法をそのまんま使った。
これ + じゃなくて xor にするとパリティビット求められるんだよね。
553デフォルトの名無しさん
垢版 |
2021/03/31(水) 02:13:57.15ID:tcwzWNiV
>>550
bash のコマンドラインから Perl 使ってでできた。標準入力から入力して標準出力に出力する。但し端末の入出力は UTF-8 。


perl -MEncode=from_to -pe 's/\{SJIS:(.*?)\}/from_to($s=pack("H*",$1),"cp932","utf8");$s/ge'
554デフォルトの名無しさん
垢版 |
2021/03/31(水) 22:33:07.77ID:IiEAnaBT
お題
数字のみの文字列を昇順の数値の列になるように
区切るすべての場合を求める。
0で始まるものは数値とはみなさない。
数字の順番は変更しない。
2021/03/31(水) 23:13:57.39ID:9YkxM+j+
>>554
入力および対応する出力例をください
2021/04/01(木) 01:04:50.12ID:b9nwt5sF
>>554
長さ1も可、狭義単調増加、文字列は全て0〜9のみとして
Haskell

https://ideone.com/zOXDf0

入力 "20210401"

出力 [[20210401],[2,210401],[2,21,401],[2,210,401],[20,210401],[20,21,401],[20,210,401],[202,10401]]
2021/04/01(木) 02:05:13.86ID:b9nwt5sF
>>554

> 0で始まるものは数値とはみなさない。

↑これ見落としてた
Haskell
https://ideone.com/OyB9LO

入力:20210401
出力:[[20210401],[20,210401],[20,210,401],[202,10401]]
558デフォルトの名無しさん
垢版 |
2021/04/01(木) 19:18:16.37ID:E1T4qUFj
ところで「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
2021/04/01(木) 21:20:26.68ID:TdeptelQ
「象は鼻が長い」でググれ
2021/04/01(木) 21:38:06.12ID:yB6nLlLi
お題

下の入力文字列を、「あいう」で始まる文字列に、分割せよ。
出力形式は、配列・改行区切りの文字列などで良い

入力
abあいう1あいう23あいうxyz

出力
["あいう1", "あいう23", "あいうxyz"]
2021/04/02(金) 01:30:32.24ID:X/M76jvg
>>560
haskell
https://ideone.com/mPtrig
2021/04/02(金) 07:24:15.78ID:7wcW7Xmo
>>560 Ruby

p "あいう1あいう23あいうxyz".scan(/あいう.*?(?=あいう|$)/)

# => ["あいう1", "あいう23", "あいうxyz"]
2021/04/02(金) 08:28:35.26ID:FK0Gf9rF
>>560 Ruby
p "abあいう1あいう23あいうxyz".split(/(?=あいう)/)[1..]
2021/04/02(金) 18:13:44.89ID:mPelzphB
>>558
チンポに主体性はない。胸は心に繋がって心には主体性がある
2021/04/02(金) 18:20:21.68ID:LmM0ztAD
>>564
主体性とはなにか説明せよ
566560
垢版 |
2021/04/02(金) 21:51:17.99ID:nXGaO3xM
>>563
2.5 では動かないけど、2.6 では動いた
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/
2021/04/03(土) 20:31:52.16ID:HCHjqGIn
>>560
Java
https://paiza.io/projects/pfDHDvTyLKx2jlDunhjJSg
2021/04/04(日) 01:19:15.65ID:TsxWz5pg
>>518
Java
https://paiza.io/projects/uS8dmQmZ-tOGGtvCYbGxsQ
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"]
2021/04/05(月) 20:31:30.41ID:o12owsbD
「像は鼻が長い」でグクった
なるほど気付かなかった
2021/04/06(火) 01:25:45.23ID:zN4gWhl4
次の検索結果を表示しています: 象は鼻が長い
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
2021/04/06(火) 15:10:20.38ID:8eKBKzx+
プロおじのオナニースレ
2021/04/06(火) 15:49:51.64ID:5jp1nWlk
プロおじってなんだ?
2021/04/06(火) 15:59:26.26ID:sYlI8eNJ
数学板の荒らし
2021/04/06(火) 16:27:52.36ID:vlqQXHl9
>>573 Perl
https://ideone.com/CQvj02
2021/04/06(火) 16:52:22.76ID:sYlI8eNJ
>>577
なるほど
うまいな
2021/04/06(火) 16:55:57.07ID:RTS/XrJR
数学板では
プログラム好き好きおじさんと
プログラム怖い怖いおじさんが
意味の無い罵り愛を展開しているのだそうな
5809
垢版 |
2021/04/07(水) 01:03:14.39ID:lZ4PPQGS
意味のない愛か…
イサキが大漁そうだな
アホ草
2021/04/07(水) 03:29:39.17ID:nO5/cs4F
プログラムこわい

落語かよ
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
2021/04/11(日) 01:48:43.24ID:yXhW6xoe
>>582 Ruby
https://ideone.com/hwQ24K
2021/04/11(日) 04:58:14.74ID:b01EJxrZ
モールスか。前にもあったな。そんなお題。
その時は確か音まで出す気合の入った回答をした人も居たと思った。
585デフォルトの名無しさん
垢版 |
2021/04/11(日) 18:30:35.89ID:b01EJxrZ
お題
>>582と同じでモールス信号作成。但し、定義ファイルに文字ごとに対応する信号を入れておきそれを指定して動く方式。(これにより言語が関係なくなる)。
日本語用定義ファイルを指定して動かせばそれに従って日本語での変換が行われ、英語用のを指定すれば英語での変換になるようにする。

プログラムと定義ファイルを最低一つ作ること。定義ファイルの内容は定義に従って正しく変換がされるかの確認が出来る程度で良い(例えば数字の変換だけでも良い)。
2021/04/11(日) 18:33:36.97ID:b01EJxrZ
定義ファイルのエンコードはご自由に。でも UTF-8 にしておくとあちこちで使えて良いかも知れない。(Javaとか自動変換してくれるやつだと漢字も1文字扱い出来て楽だし)。
2021/04/11(日) 19:48:32.73ID:yXhW6xoe
>>585 Ruby
https://ideone.com/Sq0djW
2021/04/11(日) 21:31:44.93ID:xF2ZqhuB
お題: UTF-8のCSVファイル(BOMなし)をテキトーにJSONファイルに変換せよ。
2021/04/11(日) 21:37:50.73ID:xF2ZqhuB
お題: 現在のディレクトリに連番のファイル(000.txt〜999.txt)を作成せよ。
2021/04/11(日) 21:49:03.91ID:xF2ZqhuB
お題: 現在のディレクトリの中から「jewel」と書かれたバイナリファイルを探索せよ(ファイル名およびファイルの中身)。大文字小文字、全角半角を区別すること。
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
592デフォルトの名無しさん
垢版 |
2021/04/11(日) 23:08:08.91ID:b01EJxrZ
>>590
grep jewel *
593デフォルトの名無しさん
垢版 |
2021/04/12(月) 00:41:18.68ID:PERQzDfp
>>589
Linux で bash のコマンドラインでこうやったらできた。

printf '%03d.dat\n' $( seq 0 999 ) | xargs touch
2021/04/12(月) 00:42:24.60ID:PERQzDfp
ごめん。 .dat じゃなくて .txt か。
まあでもその部分だけ直せばできる。
2021/04/12(月) 02:59:02.12ID:McWTq0EP
推奨NGワード: 蟻
596デフォルトの名無しさん
垢版 |
2021/04/12(月) 03:54:37.45ID:PERQzDfp
>>585
Kotlin
https://paiza.io/projects/6WrD2npgz-YpNUrxa2j34g
597デフォルトの名無しさん
垢版 |
2021/04/12(月) 04:32:56.67ID:PERQzDfp
関係ないけどDMMブックスの7割引きは凄いな。高い本バスケットに入れまくりだ。
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}
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の内容量を求めよ。
2021/04/15(木) 21:05:03.04ID:PVf346K4
>>600 訂正と追記。
s/重力により/ポンプにより/

方程式は使ってはならない。必ずシミュレーションなどで再現すること。
2021/04/16(金) 00:18:27.57ID:fILOfU4Q
>>600
その「水タンク-システム」=水時計って、水位差と流出量が比例するのほうがおもしろいのでは?
2021/04/16(金) 00:35:37.34ID:b5uchwAM
受験の頻出問題で排出される水量が√水位に比例するというのがあった
大学入ってやっとベルヌーイの定理というものだと知った
604デフォルトの名無しさん
垢版 |
2021/04/16(金) 14:13:28.80ID:jtvNbV+8
バカみたいな受験数学教えてないでストレートにベルヌーイの定理教えりゃいいのに
ガキに能力キャップを付けて伸びないようにバカはバカのまんまでいいとする教育法が全部悪い
そろそろ文科省は解体した方がいい
2021/04/16(金) 19:04:19.26ID:xRzMNGAE
>>600 Ruby
https://ideone.com/Mo6f3p
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)).
2021/04/16(金) 21:05:20.24ID:WHFzsZ51
なお、グラフィックスが使えない言語では、テキストによる「仮想画面」を使って描画すること。
2021/04/16(金) 21:12:44.84ID:DiXcAXcy
>>600 Scala
https://scalafiddle.io/sf/Si1Ia0o/0
2021/04/16(金) 22:53:37.77ID:zdKOg7Co
>>604
まともな学校では数学好きな奴は高校の内から高木貞二読んだりしてたぞ
2021/04/17(土) 07:31:04.20ID:lD3utFKx
計算不能な既知の関数て何?
611デフォルトの名無しさん
垢版 |
2021/04/17(土) 09:03:16.04ID:3IkVvJ6C
>>604
勉強したいなら学校なんか無視して自分でどんどん勉強しちゃって良いんだよ。
学校行かなきゃ情報が入手困難で学習できないなんて時代はとうの昔に終わってるんだし今ではネットもある。
612デフォルトの名無しさん
垢版 |
2021/04/17(土) 11:28:29.30ID:Mked9+jN
中受算数をやる時間が無駄じゃん
そこで解析が出るならまだしも

ならストレートに連立方程式やら積分やらを出せばいい
2021/04/17(土) 12:39:29.81ID:3vy+q5kN
自分でやれば?としか思わないんだが
614デフォルトの名無しさん
垢版 |
2021/04/17(土) 21:59:24.27ID:sbDPbhaa
お題
同じ形の洗濯バサミの足を挟んでつなげてリングを作る。
最初の洗濯バサミの先頭から次のせんたくばさみの先頭までの長さ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とする。
2021/04/18(日) 06:09:43.55ID:RQ5SqrPJ
絵を描いた方が分かりやすい
2021/04/18(日) 15:55:26.09ID:oZ702Pek
数学の問題やん?
計算機を使って何をしろと?
A,Bが入力されたときに答え出せばいい?
2021/04/18(日) 16:11:00.76ID:oZ702Pek
>>616
haskell
https://ideone.com/9OCoeZ
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は何にも依存しない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況