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

レス数が900を超えています。1000を超えると表示できなくなるよ。
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/05/19(水) 08:35:28.49ID:l+JWTKLH
>>844
最小面積じゃないので不正解
849847
垢版 |
2021/05/19(水) 08:45:51.69ID:x3QVnoKT
>>822 Ruby
https://ideone.com/uiPy1x
最大深さnまでの負け以外の集計から勝率の集計に変更
850デフォルトの名無しさん
垢版 |
2021/05/19(水) 10:50:08.45ID:4kVeu0Qb
>>776
電話番号の最初が 010 や + ならば国際電話でそれ以外は全て国内電話だと思うが、本当にそれだけの判別で良いのか?
851デフォルトの名無しさん
垢版 |
2021/05/19(水) 11:00:46.78ID:4kVeu0Qb
>>776
携帯の電話番号というのを見落としていた。で、何が携帯番号かの資料は何処にあるのか?
2021/05/19(水) 14:13:04.56ID:9tgpiYrE
>>851
総務省の資料:
https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a.html
853Mb
垢版 |
2021/05/19(水) 20:17:53.26ID:gE1os4Gp
>>678
> 仮名を清音に変換してから比較する
うん、発想はいいが、いまひとつ。
清音のキーと「長音」「濁音」「拗音」とかのキーをそれぞれ生成して、
それをどうにかして整列キーを生成して文字列順の整列ルーチンに
喰わせる、ということを考えたら完璧。
2021/05/19(水) 20:18:23.09ID:J+haubFC
>>852
ウザい
消えろ
腋臭
855Mb
垢版 |
2021/05/19(水) 20:24:02.49ID:gE1os4Gp
>>801
激しく同意する
2021/05/19(水) 21:05:39.99ID:gAtlXGbl
お題: 複数ある改行を1つの改行にまとめる関数join_newlinesを作成せよ

s = 'abc\ndef\n\nghi\n\n\n'
s = join_newlines(s)
print(s)
# 'abc\ndef\nghi\n'
2021/05/19(水) 21:20:54.19ID:nXtJTB3X
>>856 Ruby

p "abc\ndef\n\nghi\n\n\n?".split.join$/ # => "abc\ndef\nghi\n"
858デフォルトの名無しさん
垢版 |
2021/05/19(水) 21:27:22.52ID:Y3hdHfLU
>>856 sh
https://ideone.com/N0sB0l
2021/05/19(水) 21:27:45.26ID:Re+YCmzE
>>854
小学生の頃、かくれんぼしてたの覚えてるか? 今でも覚えてるからな。
2021/05/19(水) 21:47:06.50ID:hbAMoNi+
>>856
js
s.replace(/\n(\n)+/g,"\n")
2021/05/19(水) 22:05:24.67ID:l28FZW1e
>>856
haskell

import Data.List

joinNewLines = id
. concat
. map (\x -> if ( head x == '\n' ) then "\n" else x )
. group
2021/05/20(木) 01:40:59.75ID:Qzbw4Py0
>>856
Java
https://paiza.io/projects/HOfwpQaaNxuqRevODg2JWA
2021/05/20(木) 01:54:03.52ID:Qzbw4Py0
>>656
Java
https://paiza.io/projects/JJAgTMZxeJPmO4nFMZhE0g?language=java
2021/05/20(木) 02:25:44.46ID:z4YPx3Ex
>>847 Wrong Answer 0000→0001
>>849 Wrong Answer 0010→1100
2021/05/20(木) 02:28:35.27ID:z4YPx3Ex
>>864 訂正・補足
>>847 右のケースでWA 入力0001→出力0000
>>849 右のケースでWA 入力0010→出力1100
866デフォルトの名無しさん
垢版 |
2021/05/22(土) 16:23:03.67ID:dLrgkRLZ
>>856
Kotlin

https://paiza.io/projects/USNasdPKuJr9Q3PkcmDddA

Kotlinらしくスッキリ書けないかと少し考えた結果こうなった。
867デフォルトの名無しさん
垢版 |
2021/05/23(日) 06:54:55.26ID:g5kAwhGI
>>856 Python
def join_newlines(x): return "\n".join(x.split())
868デフォルトの名無しさん
垢版 |
2021/05/23(日) 13:13:24.19ID:PEJa2qxX
>>867
これで文字列の最初に空行があったり、文字列の最後に空行が続いたというような場合の復元ができるものですか?
869デフォルトの名無しさん
垢版 |
2021/05/23(日) 13:46:27.14ID:P4UGjjTl
まーた後だしジャンケンか
シビれるなぁ
2021/05/23(日) 20:08:36.95ID:jpQ65Iq9
後出しではないが、回答者もわかって書いてそう
871デフォルトの名無しさん
垢版 |
2021/05/23(日) 20:53:25.70ID:g5kAwhGI
>>868
確かにおかしいですね
一応直してみましたがあんまりすっきりとはいきませんでした
>>856 Python

def join_newlines(x): return "\n".join(("@"+x+"@").split())[1:-1]
2021/06/01(火) 23:19:09.17ID:FFj30Ig5
数学板より

お題 ヘビサイド関数で近似

問題は長いのでリンク先

分からない問題はここに書いてね 467
https://rio2016.5ch.net/test/read.cgi/math/1619884204/439-440

出力して欲しい3つの数値の例
上のリンクの下の440の方

【具体例1】
N = 3
l r s w
1 3 6 1
0 8 4 1
5 7 2 1

a=4, b1=6, b2=2 としたとき、F(a,b1,b2)=0 になり、これが最小値です。
a=3, b1=6, b2=2 としたとき、F(a,b1,b2)=4 になり、最小値ではありません。
a=4, b1=5, b2=3 としたとき、F(a,b1,b2)=4 になり、これも最小値ではありません。

【具体例2】
N = 4
l r s w
0 2 4 3
1 5 6 9
4 10 1 2
8 9 7 10

a=0.8, b1=1, b2=6 としたとき、F(a,b1,b2)=70 になります。
2021/06/02(水) 01:03:39.85ID:yNlOa9BD
>>872
ここは数学板じゃないので、
「この問題を解くと、どういう用途に役立つのか」
ということを聞いておきたいと思います。
2021/06/02(水) 02:49:47.48ID:idDWv9F6
>>873
残念ながらこの質問した人このレスを最後に消えてしまいました
なんの役に立つのやら
2021/06/02(水) 04:58:10.59ID:yNlOa9BD
そっか
残念
2021/06/02(水) 19:47:29.02ID:vod/9V8Y
そんな打算で問題解いてるわけじゃあるまいし
2021/06/04(金) 03:49:13.95ID:xd2yEhgg
お題:teshimatta関数関数を作れ
入力は1文字以上を保証される

teshimatta("起きた")
> "起きてしまった"

teshimatta("やった")
> "やってしまった"

teshimatta("あ")
> "ってしまっあ"

teshimatta("古畑任三郎")
> "古畑任三ってしまっ郎"
2021/06/04(金) 03:51:58.13ID:xd2yEhgg
>>877 修整
teshimatta("あ")
> "てしまっあ"

teshimatta("古畑任三郎")
> "古畑任三てしまっ郎"
2021/06/04(金) 07:01:44.23ID:2K7b+Cg2
>>877 Ruby

def teshimatta(str) = str.insert(-2, 'てしまっ')
2021/06/04(金) 18:25:22.58ID:gPAHqk4F
>>877

haskell

teshimatta = reverse . concat . zipWith ( flip ( : ) ) ( "っまして" : repeat "" ) . reverse
881デフォルトの名無しさん
垢版 |
2021/06/05(土) 03:23:53.65ID:lg0pCfQ9
>>877
Kotlin 及び Kotlin script

以下は kotlinc コマンドで REPL で動かした時のコピペ。
>>> はプロンプト。1行目が関数定義。2行目から使用している。

>>> fun teshimatta(s: CharSequence): CharSequence = if (s.isNotEmpty()) StringBuilder(s).insert(s.lastIndex, "てしまっ") else s
>>> teshimatta("起きた")
res1: kotlin.CharSequence = 起きてしまった
>>> teshimatta("やった")
res2: kotlin.CharSequence = やってしまった
>>> teshimatta("あ")
res3: kotlin.CharSequence = てしまっあ
>>> teshimatta("古畑任三郎")
res4: kotlin.CharSequence = 古畑任三てしまっ郎
>>>
882デフォルトの名無しさん
垢版 |
2021/06/05(土) 04:51:26.61ID:oLy6snUx
>>877 Python
def teshimatta(s): return s[:-1] + "てしまっ" + s[-1]
2021/06/06(日) 01:58:33.61ID:9Hxa2Z/w
お題:一筆書き
0:床、1:穴、2:スタート地点
からなる数字列が与えられる。スタート地点から縦または横に1マスずつ移動し、すべての床を通過することとする。
穴や外周は通過できない。床は一度通過すると穴となり二度目は通過できない。
すべての床を通過できれば「OK」、できなければ「NG」と表示せよ。

【例1】OK
0000
0210
0000
0100

【例2】NG
0000
0200
0010
0000

【例3】OK
000000
210000
000100
000001
000000

【例4】NG
000000
210000
000100
000000
000001
884デフォルトの名無しさん
垢版 |
2021/06/06(日) 10:18:31.19ID:W7O34OA1
>>883
まさかこれ頂点の次数を数えるだけで終わるのか?
2021/06/06(日) 10:29:23.85ID:bpZDov45
この場合の一筆書きってそういう意味じゃないと思う
886デフォルトの名無しさん
垢版 |
2021/06/06(日) 11:03:23.03ID:9mmqAG88
3次元使えばウルトラC
2021/06/06(日) 14:50:36.40ID:FtjWvhxj
オイラーグラフじゃなくてハミルトン路?
2021/06/06(日) 15:33:11.95ID:xo01P796
>>883
C++
テキトーに全探索
https://ideone.com/okNYSl
2021/06/07(月) 01:47:29.10ID:25jhXmhQ
>>883 C
>>888の真似
https://ideone.com/1427CY
2021/06/07(月) 15:19:10.72ID:kUu6kkFg
ハミルトン閉路問題とかいうやつか
2021/06/09(水) 09:58:07.70ID:yucbsR+t
NP完全らしいから事実上考えても無駄で総当たりで検索するしかなさそうやね
892デフォルトの名無しさん
垢版 |
2021/06/09(水) 11:44:53.31ID:7ehWzkTR
>>883 Prolog

'お題:一筆書き
0:床、1:穴、2:スタート地点
からなる数字列が与えられる。スタート地点から縦または横に1マスずつ移動し、すべての床を通過することと
する。
穴や外周は通過できない。床は一度通過すると穴となり二度目は通過できない。
すべての床を通過できれば「OK」、できなければ「NG」と表示せよ。'(_行,_列,L) :- nth1(_スタート,_数字列,2), 選択(_行,_列,_スタート,_数字列).

選択(_行,_列,_n,_数字列) :- \+(member(0,_数字列)), write('OK\n'),!.
選択(_行,_列,_n,_数字列) :- 隣接(_行,_列,_n,_n_2), nth1(_n_2,_数字列,0), '_n番目を1に変える'(1,_n_2,_数字列,_数字列_2), 選択(_行,_列,_n_2,_数字列_2).
選択(_,_,_,_) :- write('NG\n').

'_n番目を1に変える'(_n,_n,[_|R],[1|R]) :- !.
'_n番目を1に変える'(M,_n,[_現在位置|R1],[_現在位置|R2]) :- succ(M,N), '_n番目を1に変える'(N,_n,R1,R2).

隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - 1, \+(0 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + 1, \+(1 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - _列, _隣接 > 0.
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + _列, _隣接 =< _行 * _列.
893デフォルトの名無しさん
垢版 |
2021/06/09(水) 11:48:43.27ID:7ehWzkTR
>>884 すみません。一箇所間違えました。

Prolog

'お題:一筆書き
0:床、1:穴、2:スタート地点
からなる数字列が与えられる。スタート地点から縦または横に1マスずつ移動し、すべての床を通過することと
する。
穴や外周は通過できない。床は一度通過すると穴となり二度目は通過できない。
すべての床を通過できれば「OK」、できなければ「NG」と表示せよ。'(_行,_列,_数字列) :- nth1(_スタート,_数字列,2), 選択(_行,_列,_スタート,_数字列).

選択(_行,_列,_n,_数字列) :- \+(member(0,_数字列)), write('OK\n'),!.
選択(_行,_列,_n,_数字列) :- 隣接(_行,_列,_n,_n_2), nth1(_n_2,_数字列,0), '_n番目を1に変える'(1,_n_2,_数字列,_数字列_2), 選択(_行,_列,_n_2,_数字列_2).
選択(_,_,_,_) :- write('NG\n').

'_n番目を1に変える'(_n,_n,[_|R],[1|R]) :- !.
'_n番目を1に変える'(M,_n,[_現在位置|R1],[_現在位置|R2]) :- succ(M,N), '_n番目を1に変える'(N,_n,R1,R2).

隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - 1, \+(0 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + 1, \+(1 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - _列, _隣接 > 0.
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + _列, _隣接 =< _行 * _列.
2021/06/09(水) 14:15:52.13ID:10Zj2z/H
>>891
総当たりでやる前に市松判定ではじく処理くらいは入れてもいいと思う
2021/06/09(水) 18:59:44.38ID:5vxiK06u
お題:今日は第何曜日か計算して現在の日時を以下のように出力する
2021/06/09/第2水曜日/19:21/

ヒント
今日の日にちを7で割る 例:9 / 7
少数点以下は切り捨て
1を足す
カレンダーを見ながら計算すると分かりやすい
2021/06/09(水) 19:53:11.25ID:xvC+FdYf
>>895 Ruby

puts Time.now.then{|t| t.strftime('%Y/%m/%d/第%%d%%s曜日/%R') % [(t.day + 6) / 7, %w[日 月 火 水 木 金 土][t.wday]]}

# => 2021/06/09/第2水曜日/19:52
2021/06/09(水) 21:01:27.30ID:jvfDlPRh
>>895のヒント通りだと7の倍数の日付で不具合が発生するが宿題か?
2021/06/09(水) 22:04:39.42ID:9AlSa9IZ
>>897
>>896のほうが簡単なのでヒント変更
今日の日にちに6を足して7で割る 例:(9+6) / 7
少数点以下は切り捨て
カレンダーを見ながら計算すると分かりやすい
2021/06/09(水) 22:08:24.93ID:jvfDlPRh
>>898
馬鹿にしてんのかお前
2021/06/09(水) 22:10:18.30ID:jvfDlPRh
>>896の方が「より」簡単なんじゃなくて>>895が「完全に」間違いなんだろうが
2021/06/09(水) 22:14:42.79ID:YKvIUGd6
>>900
うるせえ黙ってろ
2021/06/09(水) 22:16:02.86ID:jvfDlPRh
>>901
テンプレくらい読めよアホ

>宿題は宿題スレがあるのでそちらへ。
2021/06/09(水) 22:16:54.83ID:YKvIUGd6
>>902
宿題である証拠あんのか?あ?いいかげんなこといって綾つけてんじゃねえぞおら
2021/06/09(水) 22:17:46.07ID:YKvIUGd6
だいたいテンプレにあるからなんだってんだよ、マジメかバーカ
2021/06/09(水) 22:18:06.16ID:jvfDlPRh
>>903
宿題じゃないって証拠でもあんのか? うせろガキが
2021/06/09(水) 22:19:03.01ID:YKvIUGd6
>>905
証拠がないんだったら宿題じゃないよね
ここはお題スレだから

どこの学校の何先生が出した宿題なんですかー?w
2021/06/09(水) 22:19:44.10ID:YKvIUGd6
さっさと証拠出せやおら、だせねえんだったら発言撤回して謝罪しろ大人なめんなよ
2021/06/09(水) 22:20:34.15ID:YKvIUGd6
自分の発言には責任持とうね、証拠早くだせ、言いがかりつけてただですむと思うなよ
2021/06/09(水) 22:21:47.24ID:YKvIUGd6
証拠は!!!怒号
2021/06/09(水) 22:21:56.02ID:q8AeW5Xf
宿題キッズは死んでください。

ID:YKvIUGd6
ID:YKvIUGd6
ID:YKvIUGd6
2021/06/09(水) 22:26:06.61ID:YKvIUGd6
>>910
お前が死んでください
神様お願いします>>910の脳天に雷を落として黒焦げにしてください
それをミキサーでくだいて花壇に撒くととてもきれいなお花が咲きます
よろしくお願いします
2021/06/09(水) 22:27:24.05ID:jvfDlPRh
>>895からして頭悪そうな文章だと思ったがガチの糞ガキで草
2021/06/09(水) 22:28:16.99ID:YKvIUGd6
>>912
お前だけ解けてなくてハゲワロw
2021/06/09(水) 22:28:24.82ID:KPVwbcNa
>>904
テンプレすら守れないやつはただの荒らしなんで
NGぶっこんどくわ
2021/06/09(水) 22:29:01.66ID:YKvIUGd6
>>914
報告ご苦労w
2021/06/09(水) 22:29:41.05ID:YKvIUGd6
お前ら報連相はきちんとできるのにお題は解けないのな
2021/06/09(水) 22:29:52.94ID:jvfDlPRh
>>913
第何曜日か計算するのに日付をそのまま7で割るとかいう発想しかできない糞馬鹿のお前に言われても草しか生えないんだが
2021/06/09(水) 22:30:39.78ID:YKvIUGd6
>>917
はいはい、で、君の回答は? おん?
2021/06/09(水) 22:30:45.17ID:QHAeufkP
宿題は宿題スレがあるのでそちらへ。
宿題は宿題スレがあるのでそちらへ。
宿題は宿題スレがあるのでそちらへ。
2021/06/09(水) 22:31:50.32ID:XUk+rW/h
小学生レベルの算数すらできなかったYKvIUGd6が悪い。
2021/06/09(水) 22:32:46.47ID:YKvIUGd6
リアル予備校講師の俺がガチ解説してやろうか? おん?
2021/06/09(水) 22:34:34.57ID:jvfDlPRh
駒場で公理的集合論研究してる俺にガチ解説して見ろやゴミムシが
お前みたいな雑魚がこの世に生きてるのが一番許せないわ
2021/06/09(水) 22:35:12.11ID:YKvIUGd6
>>922
1月を30日とするだろ
1〜7 は第1回目の曜日
8〜14 は第2回目の曜日
15〜21 は第3回目の曜日
21〜30 は第4回目の曜日
になる

つまり
1〜7を1に変換する式を考えれば良い
2021/06/09(水) 22:35:59.14ID:jvfDlPRh
>>923
2021/06/09(水) 22:36:28.74ID:XUk+rW/h
>>923
お前それ自分で自分の間違い認めてるじゃん。
2021/06/09(水) 22:37:27.35ID:7B3gG11z
小学生の宿題に協力してやったぜ!
2021/06/09(水) 22:38:00.52ID:YKvIUGd6
ちなみに集合論は数学の最底辺、集合論を研究してる数学者は文学科と呼ばれてる
2021/06/09(水) 22:38:32.15ID:jvfDlPRh
>>927
お前はポール・コーエンに詫びて死ね
2021/06/09(水) 22:39:27.57ID:+isrVq5u
本物の小学生っぽくて暴言吐くのがちょっといたたまれるレベル
2021/06/09(水) 22:43:56.46ID:ZOi1NsTl
酷い出題だなこりゃ
2021/06/09(水) 22:49:01.83ID:YKvIUGd6
まだピンと来てないようだから図で説明する
https://light.dotup.org/uploda/light.dotup.org695020.png

このように日付が7個ごとに箱に入っていてその箱の数を数えれば良いわけ
駒場では教えてもらえないだろうけど、こういうふうに考えると良いわけ
2021/06/09(水) 22:49:45.19ID:XUk+rW/h
>>931
君以外全員理解してるよ。
2021/06/09(水) 22:50:39.76ID:p8fYXKeJ
少数点
につっこんだら負け?
2021/06/09(水) 22:51:39.42ID:YKvIUGd6
>>932
あれあれw君回答してないよね、回答の提出がない人は理解できてないので、すぐに回答を提出するように
2021/06/09(水) 22:51:42.58ID:QHAeufkP
>>931
まじで小学生からやり直せよお前
2021/06/09(水) 22:51:51.24ID:k5a+Oahd
> ヒント
> 今日の日にちを7で割る 例:9 / 7
> 少数点以下は切り捨て
> 1を足す

馬鹿過ぎて草も生えない
ヒント とかドヤって思いっきり間違えてるとこが痛々しすぎる

> カレンダーを見ながら計算すると分かりやすい

更に駄目押し
分かりやすいとか言ってるのにコレかよ

真面目に頭の検査してもらった方が良いんじゃねーか?
頭に寄生虫とかウジャウジャ湧いてんじゃねーの?
冗談でも脅しでも無く本当にあるからな
更にキレっぷり見るに火病の疑いもある
死にたくなければマジで脳の検査してこい
2021/06/09(水) 22:52:33.82ID:YKvIUGd6
>>933
プログラムの回答コード出さなかったら負け
2021/06/09(水) 22:55:04.60ID:YKvIUGd6
>>935
だったらお前はお母さんの子宮からやり直せ
産道を通ってお母さんの膣の臭いを脳味噌に焼き付けてから
歩む人生こそいまのお前にふさわしい
2021/06/09(水) 22:55:54.06ID:YKvIUGd6
>>936
粘着レスしてんじゃねえよバーカ、発達障害かよw
2021/06/09(水) 22:56:25.06ID:YKvIUGd6
プログラムで回答した人だけが健常者
2021/06/09(水) 23:00:28.30ID:YKvIUGd6
そうだ、お前らコロナのワクチンの注射頭に刺してくださいって言ってみれば?
2021/06/09(水) 23:02:49.67ID:k5a+Oahd
ガチガイジかどうかまでは分からんが
少なくともガイジ扱いされた事のある人の反応ですね
自覚があるから草で誤魔化す
認めたく無いのだろうけど素直に診療受けた方が良いよ
病種によっては投薬や訓練で治ったり緩和出来るものもあるからさ
2021/06/09(水) 23:05:33.24ID:YKvIUGd6
>>942
よおガイジ
2021/06/09(水) 23:06:37.77ID:YKvIUGd6
>>942はガイジ扱いされたことのある人になりました
2021/06/09(水) 23:06:41.76ID:ZOi1NsTl
完全に間違ったことを言ってしまったというのに
そのことを指摘されて相手をなお罵倒するというのは
まともな頭脳の持ち主がするところではないわな

しかも自分の正当性を一切主張できていないというのがお笑いポイント
2021/06/09(水) 23:16:16.04ID:M4U6Kwpw
お前ら容赦ないなw
もうYKvのライフは0よ
2021/06/09(水) 23:16:45.29ID:YKvIUGd6
回答してない分際で何の分析してんだよ

YouTubeでもいるよな、松本はわかったうえであえて
こうすることで笑いにしてるみたいな分析をコメントに書くやつ

そしてそれにGoodするやつな、あいつらは本当にアホですわ

もっとアホなのは令和3年に見てる人ーとアンケート取るやつな
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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