プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part15
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
探検
プログラミングのお題スレ Part16
■ このスレッドは過去ログ倉庫に格納されています
2019/11/17(日) 09:00:22.10ID:xqEdXdr6
252デフォルトの名無しさん
2019/12/11(水) 21:07:14.36ID:ivhCTlPt 素数判定で書いた
long long int のC言語でも100億ぐらいを上限でサポートしてる
100億以上の判定は遅くてより優れた判定アルゴリズムが必要だからだ
推定:C系、優れた判定、現代スペックのPCが必要
long long int のC言語でも100億ぐらいを上限でサポートしてる
100億以上の判定は遅くてより優れた判定アルゴリズムが必要だからだ
推定:C系、優れた判定、現代スペックのPCが必要
253デフォルトの名無しさん
2019/12/11(水) 21:11:52.35ID:7CYZ1E2N 素数判定する必要は無いよ
>>252
>long long int のC言語でも100億ぐらいを上限でサポートしてる
極めて不正確ですよ
C99 後は uint64_t の最大値は 1844'6744'0737'0955'1615=約 1844 京ですね
それに実際に割ってみる方法以外には素数判定があるとでも?そんなものは存在しませんね
>long long int のC言語でも100億ぐらいを上限でサポートしてる
極めて不正確ですよ
C99 後は uint64_t の最大値は 1844'6744'0737'0955'1615=約 1844 京ですね
それに実際に割ってみる方法以外には素数判定があるとでも?そんなものは存在しませんね
255デフォルトの名無しさん
2019/12/11(水) 22:15:54.42ID:10jfhd7e256デフォルトの名無しさん
2019/12/11(水) 22:46:17.34ID:10jfhd7e257デフォルトの名無しさん
2019/12/11(水) 23:52:51.14ID:VagVWTF0 知り合いから、「子供の宿題なんだけど解けない」と言われた。
「正方形13枚と正三角形を何枚か組み合わせて、凸多面体を作るとき、その頂点数は A 個または B 個である。ただし一つの頂点には同じ枚数の面が集まっているものとし、A < B とする。」
途中経過を適宜表記しつつ解くプログラムを!
「正方形13枚と正三角形を何枚か組み合わせて、凸多面体を作るとき、その頂点数は A 個または B 個である。ただし一つの頂点には同じ枚数の面が集まっているものとし、A < B とする。」
途中経過を適宜表記しつつ解くプログラムを!
258デフォルトの名無しさん
2019/12/12(木) 00:28:15.32ID:UvCIGzud A=19
B=38
B=38
259デフォルトの名無しさん
2019/12/12(木) 00:32:27.86ID:UvCIGzud260デフォルトの名無しさん
2019/12/12(木) 00:35:14.01ID:UvCIGzud 7個になるまで9秒
3乗して64bitに収まる範囲検索2031秒
3乗して64bitに収まる範囲検索2031秒
261デフォルトの名無しさん
2019/12/12(木) 00:42:16.14ID:UvCIGzud262デフォルトの名無しさん
2019/12/12(木) 00:44:42.94ID:UvCIGzud k=30, 33, 42, 52, 74, 75, 84
の時がわからん
の時がわからん
263デフォルトの名無しさん
2019/12/12(木) 06:06:40.97ID:wmbGd8tm264デフォルトの名無しさん
2019/12/12(木) 07:32:31.88ID:UvCIGzud265デフォルトの名無しさん
2019/12/12(木) 07:40:34.14ID:UvCIGzud266デフォルトの名無しさん
2019/12/12(木) 07:48:51.75ID:wmbGd8tm >>265
お前も馬鹿だな
簡単な関数で f が定義できるならそれはそのまま簡単な計算で素数判定ができることに他ならない
こちらはそんな方法が存在するといっているわけではなく、無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さを指摘しているだけなんだが
お前も馬鹿だな
簡単な関数で f が定義できるならそれはそのまま簡単な計算で素数判定ができることに他ならない
こちらはそんな方法が存在するといっているわけではなく、無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さを指摘しているだけなんだが
267デフォルトの名無しさん
2019/12/12(木) 08:00:21.80ID:UvCIGzud >>263
「簡単な関数でfが定義できる」
非常に重要な言葉を後付けだし
これが最初からあったとしても、
単に簡単に素数判定可能可能を言い換えただけの
何の意味もないレス
リテラシーの無さの指摘の方法が頭が悪い
「簡単な関数でfが定義できる」
非常に重要な言葉を後付けだし
これが最初からあったとしても、
単に簡単に素数判定可能可能を言い換えただけの
何の意味もないレス
リテラシーの無さの指摘の方法が頭が悪い
268デフォルトの名無しさん
2019/12/12(木) 08:08:21.73ID:UvCIGzud 現代の技術で言えば
特殊な形であれば高速に判定する方法はある
特殊な形でなければ高速に判定する方法は見つかっていない
実際に割ってみる以外の判別方法は存在する
特殊な形であれば高速に判定する方法はある
特殊な形でなければ高速に判定する方法は見つかっていない
実際に割ってみる以外の判別方法は存在する
269デフォルトの名無しさん
2019/12/12(木) 08:25:56.28ID:UvCIGzud なんでNやZじゃなくてRにしたのか気になる
270デフォルトの名無しさん
2019/12/12(木) 12:56:52.27ID:wmbGd8tm 文脈無視して揚げ足取ってて草
こいつ関数は全射しか存在しないとでも思ってんのか
こいつ関数は全射しか存在しないとでも思ってんのか
271デフォルトの名無しさん
2019/12/12(木) 14:55:31.47ID:2PtCb74v 単純な疑問だよ
なんかこだわりとか深い意味とかあるのかと
「実数が素である」とか書かれると、
素数じゃない別の意味を指してると思うわけで
揚げ足取られたと思ったってことは
ミスったと思ったんだよね?
なんかこだわりとか深い意味とかあるのかと
「実数が素である」とか書かれると、
素数じゃない別の意味を指してると思うわけで
揚げ足取られたと思ったってことは
ミスったと思ったんだよね?
272デフォルトの名無しさん
2019/12/12(木) 15:35:29.90ID:zRSUYply いつもの連投アスペ君じゃん
相手すんなよ
相手すんなよ
273デフォルトの名無しさん
2019/12/12(木) 17:58:27.01ID:2C/x7O5N 論破されて捨て台詞
の典型でした
の典型でした
274デフォルトの名無しさん
2019/12/12(木) 18:19:15.31ID:RcQND7/k 5chリテラシーが低いやつもだいぶ減ってはきてるが
このスレはちょいちょい出てくるよなぁ
このスレはちょいちょい出てくるよなぁ
275デフォルトの名無しさん
2019/12/12(木) 18:27:18.35ID:cffvEFbc >>263を書いておいて良くいうよ
276デフォルトの名無しさん
2019/12/12(木) 18:39:51.55ID:JPTMcftT 論破を禁止します
277デフォルトの名無しさん
2019/12/12(木) 19:05:41.21ID:f2lx0DlC まーたロンパンジーが湧いてんのかよ
278デフォルトの名無しさん
2019/12/12(木) 19:12:35.43ID:cffvEFbc リテラシー君
よほど悔しかったのかな?
よほど悔しかったのかな?
>>256
単に上限値を増やしただけのお題なんて糞だと思います
単に上限値を増やしただけのお題なんて糞だと思います
281デフォルトの名無しさん
2019/12/12(木) 19:18:20.83ID:cffvEFbc282デフォルトの名無しさん
2019/12/12(木) 20:55:40.30ID:uIjgN9ep お題:
(A) 階乗の下z桁がすべて0となるような最小の自然数を、z = 1, 12, 123, 1234, 12345,
123456, 1234567, 12345678, 123456789の各場合について求めよ。存在しないときは
そう表示せよ。
(B) (A)の「下z桁がすべて0となる」という条件を「0である桁がz個となる」に置き換えて解け。
(A)はちょっと考えれば簡単に解ける。(B)はどうか知らない。多桁整数計算ができるJuliaでは
z = 12345までは力任せでも求められたが。
(A) 階乗の下z桁がすべて0となるような最小の自然数を、z = 1, 12, 123, 1234, 12345,
123456, 1234567, 12345678, 123456789の各場合について求めよ。存在しないときは
そう表示せよ。
(B) (A)の「下z桁がすべて0となる」という条件を「0である桁がz個となる」に置き換えて解け。
(A)はちょっと考えれば簡単に解ける。(B)はどうか知らない。多桁整数計算ができるJuliaでは
z = 12345までは力任せでも求められたが。
283デフォルトの名無しさん
2019/12/12(木) 21:21:19.99ID:qa03h3dy 5で割っていく感じだから
整数無視して無限に割ると
おおまかに4で割った感じの数0が並ぶ
126! は4で割って31ぐらい
整数無視して無限に割ると
おおまかに4で割った感じの数0が並ぶ
126! は4で割って31ぐらい
284デフォルトの名無しさん
2019/12/12(木) 22:14:34.83ID:WrPVO4K2 連投論破野郎が論破されてて草
285デフォルトの名無しさん
2019/12/12(木) 23:15:10.76ID:UvCIGzud (A)だけ C++
https://ideone.com/LTC90E
https://ideone.com/LTC90E
286デフォルトの名無しさん
2019/12/12(木) 23:18:50.66ID:UvCIGzud (B)は実際に下限から順番に計算していかないとダメじゃないか?
287デフォルトの名無しさん
2019/12/12(木) 23:52:01.98ID:UvCIGzud n ! のゼロの個数は大雑把にはこのくらい
log_10(n !) / 10 + n * 9 / 40
逆算すれば大体の値はわかる
でも最小値だから正確に求めるのには使えない
log_10(n !) / 10 + n * 9 / 40
逆算すれば大体の値はわかる
でも最小値だから正確に求めるのには使えない
288デフォルトの名無しさん
2019/12/13(金) 18:36:38.11ID:0Lb/VhZx [お題]
今月(2019/12)の13日は金曜日。
開始年月と終了年月が与えられる。年は西暦、年月区切りは"/"。
開始年月一日から終了年月末日の間で"13日の金曜日"は何回あるか。
現在のグレゴリオ歴ルールで、終了年月末日まで変わらないとする。
制約: 1970 <= 年 <= 300億, 1 <= 月 <= 12, 開始年月 <= 終了年月
1) 2019/1 2019/12 --> 2 // 今年は9月と12月が該当
2) 1980/1 2012/12 --> 57
3) 213456/8 453212/4 --> 412380
4) 2000/1 2399/12 -->?
5) 2000/11 2800/9 -->?
6) 123456789/11 7301177081/10 -->?
7) 1970/1 30000000000/12 --> 51599996613
※数十万年程度だと力技だけで回っちゃうので、難易度調整で300億に。
wikiの"グレゴリオ歴#暦法" https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6#%E6%9A%A6%E6%B3%95
今月(2019/12)の13日は金曜日。
開始年月と終了年月が与えられる。年は西暦、年月区切りは"/"。
開始年月一日から終了年月末日の間で"13日の金曜日"は何回あるか。
現在のグレゴリオ歴ルールで、終了年月末日まで変わらないとする。
制約: 1970 <= 年 <= 300億, 1 <= 月 <= 12, 開始年月 <= 終了年月
1) 2019/1 2019/12 --> 2 // 今年は9月と12月が該当
2) 1980/1 2012/12 --> 57
3) 213456/8 453212/4 --> 412380
4) 2000/1 2399/12 -->?
5) 2000/11 2800/9 -->?
6) 123456789/11 7301177081/10 -->?
7) 1970/1 30000000000/12 --> 51599996613
※数十万年程度だと力技だけで回っちゃうので、難易度調整で300億に。
wikiの"グレゴリオ歴#暦法" https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6#%E6%9A%A6%E6%B3%95
289デフォルトの名無しさん
2019/12/13(金) 20:06:08.48ID:KAf60mjk 300億にしても年の曜日は14パターンしか無いのであっという間に解ける気が…
曜日は400年周期だから400年分求めればあとは割り算するだけかな?
曜日は400年周期だから400年分求めればあとは割り算するだけかな?
290デフォルトの名無しさん
2019/12/13(金) 20:15:02.20ID:QuzLYYNu291デフォルトの名無しさん
2019/12/13(金) 20:16:51.71ID:QuzLYYNu >>289
今日やらないとダメだよ
今日やらないとダメだよ
292デフォルトの名無しさん
2019/12/13(金) 20:32:32.43ID:7JZ8Vcg3 >>288
ずるいやり方だが、取り敢えずPowerShellに
1..12 |? {([DateTime]"2000/$_/13").DayOfWeek -eq "Friday"}
1..12 |? {([DateTime]"2400/$_/13").DayOfWeek -eq "Friday"}
と打ち込んでみると、
10
10
と表示され、2000年と2400年の13日の金曜日は10月で一致する。
これと閏年調整のパターンが400年周期であることを組み合わせると、
13日の金曜日の出現パターンも400年周期になることが分かる。
だから、400年分の表を作ってしまえば、遅いPowerShellでも余裕で解ける。
https://ideone.com/oV7JFk
--- 実行結果 ---
2019/1 2019/12 -> 2
1980/1 2012/12 -> 57
213456/8 453212/4 -> 412380
2000/1 2399/12 -> 688
2000/11 2800/9 -> 1375
123456789/11 7301177081/10 -> 12345678901
1970/1 30000000000/12 -> 51599996613
ずるいやり方だが、取り敢えずPowerShellに
1..12 |? {([DateTime]"2000/$_/13").DayOfWeek -eq "Friday"}
1..12 |? {([DateTime]"2400/$_/13").DayOfWeek -eq "Friday"}
と打ち込んでみると、
10
10
と表示され、2000年と2400年の13日の金曜日は10月で一致する。
これと閏年調整のパターンが400年周期であることを組み合わせると、
13日の金曜日の出現パターンも400年周期になることが分かる。
だから、400年分の表を作ってしまえば、遅いPowerShellでも余裕で解ける。
https://ideone.com/oV7JFk
--- 実行結果 ---
2019/1 2019/12 -> 2
1980/1 2012/12 -> 57
213456/8 453212/4 -> 412380
2000/1 2399/12 -> 688
2000/11 2800/9 -> 1375
123456789/11 7301177081/10 -> 12345678901
1970/1 30000000000/12 -> 51599996613
293デフォルトの名無しさん
2019/12/13(金) 20:57:37.29ID:7JZ8Vcg3 >>285
正解。例によってRで簡潔に書いた解答例: https://ideone.com/RhEtiC
>>287
やっぱり無理か。ちなみに、Juliaでz = 12345まで力任せで求めるプログラム
https://ideone.com/iqMYLa
--- 実行結果 ---
階乗の0である桁が1個になる最小値は5です。
階乗の0である桁が12個になる最小値は37です。
階乗の0である桁が123個になる最小値は299です。
階乗の0である桁が1234個になる最小値は2414です。
階乗の0である桁が12345個になる最小値は20177です。
正解。例によってRで簡潔に書いた解答例: https://ideone.com/RhEtiC
>>287
やっぱり無理か。ちなみに、Juliaでz = 12345まで力任せで求めるプログラム
https://ideone.com/iqMYLa
--- 実行結果 ---
階乗の0である桁が1個になる最小値は5です。
階乗の0である桁が12個になる最小値は37です。
階乗の0である桁が123個になる最小値は299です。
階乗の0である桁が1234個になる最小値は2414です。
階乗の0である桁が12345個になる最小値は20177です。
294デフォルトの名無しさん
2019/12/13(金) 21:27:38.91ID:QuzLYYNu295デフォルトの名無しさん
2019/12/13(金) 22:22:01.90ID:QuzLYYNu 123456個は存在しない
296デフォルトの名無しさん
2019/12/13(金) 23:21:15.30ID:QuzLYYNu 123457桁になる 30484!
から
下位に0が123457個続く 493840!
までの間に存在しない事を示せば
存在しない証明になりますが
もっと範囲を絞った証明は出来ないですかねえ
確率的には>>287の付近だけ調べれば良いんですが...
から
下位に0が123457個続く 493840!
までの間に存在しない事を示せば
存在しない証明になりますが
もっと範囲を絞った証明は出来ないですかねえ
確率的には>>287の付近だけ調べれば良いんですが...
297デフォルトの名無しさん
2019/12/13(金) 23:47:17.94ID:r78PztnN 全部調べる感じでぶん回してるけど1234567までが長いお(´・ω・`) (123456は>>295の言う通り出なかった)
1時間ぶん回して900000!まで行ったが…
1時間ぶん回して900000!まで行ったが…
298デフォルトの名無しさん
2019/12/13(金) 23:49:02.36ID:r2S5lo/C 数学でワープできる分手計算のほうが早い
299デフォルトの名無しさん
2019/12/13(金) 23:49:38.96ID:QuzLYYNu kwsk
300デフォルトの名無しさん
2019/12/13(金) 23:50:22.63ID:r2S5lo/C >283
301デフォルトの名無しさん
2019/12/13(金) 23:52:09.33ID:QuzLYYNu (A)は解決済み
(B)の話
(B)の話
302デフォルトの名無しさん
2019/12/13(金) 23:53:42.34ID:QuzLYYNu 数学で絞れるのは>>296くらいかと
303デフォルトの名無しさん
2019/12/13(金) 23:56:32.85ID:QuzLYYNu 下限の n! を計算するのは速い
そこから順番に1個ずつnを増やしていって
0を数えていかないとならない
見つからなければ上限までずっと
そこから順番に1個ずつnを増やしていって
0を数えていかないとならない
見つからなければ上限までずっと
304デフォルトの名無しさん
2019/12/13(金) 23:59:51.46ID:QuzLYYNu ちなみに私、東大の数学科卒なんで
305デフォルトの名無しさん
2019/12/14(土) 00:07:59.08ID:ruM/1CH5 ワープ
(* 4 1234567) 4938268
(/ 4938268 5.0) 987653.6
(/ 987653 5.0) 197530.6
(/ 197530 5.0) 39506.0
(/ 39506 5.0) 7901.2
(/ 7901 5.0) 1580.2
(/ 1580 5.0) 316.0
(/ 316 5.0) 63.2
(/ 63 5.0) 12.6
(/ 12 5.0) 2.4
(+ 987653 197530 39506 7901 1580 316 63 12 2) 1234563
(* 4 1234567) 4938268
(/ 4938268 5.0) 987653.6
(/ 987653 5.0) 197530.6
(/ 197530 5.0) 39506.0
(/ 39506 5.0) 7901.2
(/ 7901 5.0) 1580.2
(/ 1580 5.0) 316.0
(/ 316 5.0) 63.2
(/ 63 5.0) 12.6
(/ 12 5.0) 2.4
(+ 987653 197530 39506 7901 1580 316 63 12 2) 1234563
306デフォルトの名無しさん
2019/12/14(土) 00:14:15.42ID:03SKvnKb307デフォルトの名無しさん
2019/12/14(土) 00:15:48.22ID:ruM/1CH5 Bの話か
308デフォルトの名無しさん
2019/12/14(土) 02:58:36.56ID:03SKvnKb 階乗の0である桁が1234567個になる最小値は1542987です。
お、出た…4時間か
お、出た…4時間か
309デフォルトの名無しさん
2019/12/14(土) 03:55:22.51ID:DhSlagHw お題: 目覚まし時計の現在時刻とアラーム時刻が入力されるので、待機時間を出力しなさい
例:
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時間 = 06:00
現在時刻 = 22:00
アラーム時刻 = 04:00
待機時間 = 06:00
例:
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時間 = 06:00
現在時刻 = 22:00
アラーム時刻 = 04:00
待機時間 = 06:00
310デフォルトの名無しさん
2019/12/14(土) 09:12:53.23ID:ruM/1CH5 >>309
これだな
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg
~/bin/sleep.pl 10:00
2909 00:48:29
のように使ってる
これだな
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg
~/bin/sleep.pl 10:00
2909 00:48:29
のように使ってる
311デフォルトの名無しさん
2019/12/14(土) 09:59:37.97ID:Lp9CT80F >>304
進振り何点だった? 連投アスペ君
進振り何点だった? 連投アスペ君
312デフォルトの名無しさん
2019/12/14(土) 22:12:52.90ID:8CJijD11 >>309
この手の処理はPowerShellが得意だな。
function WaitingTime($now, $alarm)
{
$wait = [DateTime]$alarm - [DateTime]$now
if ($wait -lt 0) {$wait += [TimeSpan]"12:00" + [TimeSpan]"12:00"}
"現在時刻 = $now"
"アラーム時刻 = $alarm"
"待機時刻 = $wait"
""
}
WaitingTime 10:00 16:00
WaitingTime 22:00 4:00
WaitingTime 12:34:56 1:23:45
--- 実行結果 ---
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時刻 = 06:00:00
現在時刻 = 22:00
アラーム時刻 = 4:00
待機時刻 = 06:00:00
現在時刻 = 12:34:56
アラーム時刻 = 1:23:45
待機時刻 = 12:48:49
この手の処理はPowerShellが得意だな。
function WaitingTime($now, $alarm)
{
$wait = [DateTime]$alarm - [DateTime]$now
if ($wait -lt 0) {$wait += [TimeSpan]"12:00" + [TimeSpan]"12:00"}
"現在時刻 = $now"
"アラーム時刻 = $alarm"
"待機時刻 = $wait"
""
}
WaitingTime 10:00 16:00
WaitingTime 22:00 4:00
WaitingTime 12:34:56 1:23:45
--- 実行結果 ---
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時刻 = 06:00:00
現在時刻 = 22:00
アラーム時刻 = 4:00
待機時刻 = 06:00:00
現在時刻 = 12:34:56
アラーム時刻 = 1:23:45
待機時刻 = 12:48:49
313デフォルトの名無しさん
2019/12/15(日) 00:16:05.00ID:K3IRPfAN314デフォルトの名無しさん
2019/12/15(日) 06:09:40.92ID:K3IRPfAN お題: あなたは研究所で助手をしています
ある日、博士からこんな手紙が届きました
助手よ。この数値の名前を教えて欲しい
16776960
あなたは博士に返事を書こうと思います
その返事の内容をお答えください
ある日、博士からこんな手紙が届きました
助手よ。この数値の名前を教えて欲しい
16776960
あなたは博士に返事を書こうと思います
その返事の内容をお答えください
315デフォルトの名無しさん
2019/12/15(日) 07:44:00.84ID:VJoyKt1C >>314 直感
Yellow
Yellow
316デフォルトの名無しさん
2019/12/15(日) 10:09:42.34ID:/SOvb5b/ 黄色だな
317デフォルトの名無しさん
2019/12/15(日) 11:56:51.84ID:wptEtnNg お題
与えられた自然数の0を全て右端に寄せる
例
2019 -> 2190
102030 -> 123000
123 -> 123
与えられた自然数の0を全て右端に寄せる
例
2019 -> 2190
102030 -> 123000
123 -> 123
318デフォルトの名無しさん
2019/12/15(日) 12:02:23.68ID:fpSJINfx >>309
Ruby で、
require 'active_support/time'
def calculate_time_span( now, alarm )
current = Time.now
now_time = Time.parse( now, current ) #=> 2019-12-15 22:00:00 +0900
alarm_time = Time.parse( alarm, current ) #=> 2019-12-15 04:00:00 +0900
diff_time = alarm_time - now_time
# アラームが翌日の場合
diff_time = alarm_time.tomorrow - now_time if diff_time < 0
Time.at( diff_time ).utc.strftime( '%H:%M' )
end
inputs = %w(10:00 16:00 22:00 04:00) # (現在時刻, アラーム時刻)の組
inputs.each_slice( 2 ) do |now, alarm| # 2個ずつ処理する
puts calculate_time_span( now, alarm )
end
Ruby で、
require 'active_support/time'
def calculate_time_span( now, alarm )
current = Time.now
now_time = Time.parse( now, current ) #=> 2019-12-15 22:00:00 +0900
alarm_time = Time.parse( alarm, current ) #=> 2019-12-15 04:00:00 +0900
diff_time = alarm_time - now_time
# アラームが翌日の場合
diff_time = alarm_time.tomorrow - now_time if diff_time < 0
Time.at( diff_time ).utc.strftime( '%H:%M' )
end
inputs = %w(10:00 16:00 22:00 04:00) # (現在時刻, アラーム時刻)の組
inputs.each_slice( 2 ) do |now, alarm| # 2個ずつ処理する
puts calculate_time_span( now, alarm )
end
319デフォルトの名無しさん
2019/12/15(日) 13:16:18.52ID:VJoyKt1C320デフォルトの名無しさん
2019/12/15(日) 15:13:57.70ID:KhVK4v3Y321デフォルトの名無しさん
2019/12/15(日) 15:21:49.83ID:yZPHpztp322デフォルトの名無しさん
2019/12/15(日) 15:38:04.40ID:KhVK4v3Y323デフォルトの名無しさん
2019/12/15(日) 16:45:12.24ID:K3IRPfAN >>315-316
正解
正解
324デフォルトの名無しさん
2019/12/15(日) 20:15:30.36ID:IFqyyeL5 >>317
これもPowerShellで簡単。
function f($n)
{
$m = -join([char[]]"$n" |? {$_ -ne "0"})
($m += "0" * ("$n".length - $m.length))
}
f 2019; f 102030; f 123
これもPowerShellで簡単。
function f($n)
{
$m = -join([char[]]"$n" |? {$_ -ne "0"})
($m += "0" * ("$n".length - $m.length))
}
f 2019; f 102030; f 123
325デフォルトの名無しさん
2019/12/15(日) 22:45:37.77ID:myBFLrpG お題:ハノイの塔の最少手数は一種類しかないのか?
(Part 13, 055)
結果:n枚の円盤すべてを移動させるには最低 2^n −1 回の手数がかかる。
(Part 13, 055)
結果:n枚の円盤すべてを移動させるには最低 2^n −1 回の手数がかかる。
326デフォルトの名無しさん
2019/12/15(日) 22:58:29.31ID:myBFLrpG 4ピンのハノイの塔(河内塔)
n枚の円盤は最初ピン0にある。n枚すべてをピン3に移動させる。
条件:
小円盤の上に大円盤を載せられない。
ピン1とピン2には最大1枚しか置けない。
n枚の円盤は最初ピン0にある。n枚すべてをピン3に移動させる。
条件:
小円盤の上に大円盤を載せられない。
ピン1とピン2には最大1枚しか置けない。
327デフォルトの名無しさん
2019/12/15(日) 23:12:15.95ID:myBFLrpG ・n=2 のとき
12, -, -, -
2, 1, -, -
-, 1, -, 2
-, -, -, 12 (3手)
・n=3 のとき
123, -, -, -
23, 1, -, -
3, 1, 2, -
-, 1, 2, 3
-, 1, -, 23
-, -, -, 123 (5手)
・n=4 のとき
1234, -, -, -
234, 1, -, -
34, 1, 2, -
4, 1, 2, 3
4, 1, -, 23
-, 1, 4, 23
2, 1, 4, 3
12, -, 4, 3
12, 3, 4, -
12, 3, -, 4
12, -, -, 34
2, 1, -, 34
-, 1, -, 234
-, -, -, 1234 (13手)
12, -, -, -
2, 1, -, -
-, 1, -, 2
-, -, -, 12 (3手)
・n=3 のとき
123, -, -, -
23, 1, -, -
3, 1, 2, -
-, 1, 2, 3
-, 1, -, 23
-, -, -, 123 (5手)
・n=4 のとき
1234, -, -, -
234, 1, -, -
34, 1, 2, -
4, 1, 2, 3
4, 1, -, 23
-, 1, 4, 23
2, 1, 4, 3
12, -, 4, 3
12, 3, 4, -
12, 3, -, 4
12, -, -, 34
2, 1, -, 34
-, 1, -, 234
-, -, -, 1234 (13手)
328デフォルトの名無しさん
2019/12/15(日) 23:25:59.52ID:myBFLrpG ・n=5 のとき
12345, -, -, -
2345, 1, -, -
345, 1, 2, -
45, 1, 2, 3
45, 1, -, 23
45, -, -, 123
5, 4, -, 123
-, 4, 5, 123
4, -, 5, 123
4, 1, 5, 23
24, 1, 5, 3
124, -, 5, 3
124, 3, 5, -
124, 3, -, 5
24, 3, 1, 5
4, 3, 1, 25
4, 3, -, 125
-, 3, 4, 125
3, -, 4, 125
3, 1, 4, 25
23, 1, 4, 5
23, 1, -, 45
3, 1, 2, 45
-, 1, 2, 345
-, 1, -, 2345
-, -, -, 12345 (25手)
12345, -, -, -
2345, 1, -, -
345, 1, 2, -
45, 1, 2, 3
45, 1, -, 23
45, -, -, 123
5, 4, -, 123
-, 4, 5, 123
4, -, 5, 123
4, 1, 5, 23
24, 1, 5, 3
124, -, 5, 3
124, 3, 5, -
124, 3, -, 5
24, 3, 1, 5
4, 3, 1, 25
4, 3, -, 125
-, 3, 4, 125
3, -, 4, 125
3, 1, 4, 25
23, 1, 4, 5
23, 1, -, 45
3, 1, 2, 45
-, 1, 2, 345
-, 1, -, 2345
-, -, -, 12345 (25手)
329デフォルトの名無しさん
2019/12/16(月) 08:07:19.12ID:YuYKZXFs お題:
ここに単語を登録したリストがある
リストには以下の種類の言葉が存在する
単語:(例)くさり
単語解説:(例)環状の部品を繋げて線状にしたもの
リストには上記ペアを1単位として、ずらずら並んでいる
(数十個くらい)
リストの中の似たような単語を探し、
以下のサンプルのようにボケ、ツッコミを繰り返すプログラムを作れ
似たような単語が見つからない場合には
最後に「こうじ:お前とはもうやってられませんわ」とprintし、
プログラムを終了せよ
動作サンプル:
こうじ:「くさび」を見ると興奮するよね
てつお:ああ、環状の部品を繋げて線状にしたものね
こうじ:それは「くさり」
てつお:ああ、マルスダレガイ科に属する二枚貝ね
こうじ:それは「あさり」
てつお:ああ、慰安婦の嘘を書いた新聞ね
こうじ:それは「あさひ」
こうじ:お前とはもうやってられませんわ
ここに単語を登録したリストがある
リストには以下の種類の言葉が存在する
単語:(例)くさり
単語解説:(例)環状の部品を繋げて線状にしたもの
リストには上記ペアを1単位として、ずらずら並んでいる
(数十個くらい)
リストの中の似たような単語を探し、
以下のサンプルのようにボケ、ツッコミを繰り返すプログラムを作れ
似たような単語が見つからない場合には
最後に「こうじ:お前とはもうやってられませんわ」とprintし、
プログラムを終了せよ
動作サンプル:
こうじ:「くさび」を見ると興奮するよね
てつお:ああ、環状の部品を繋げて線状にしたものね
こうじ:それは「くさり」
てつお:ああ、マルスダレガイ科に属する二枚貝ね
こうじ:それは「あさり」
てつお:ああ、慰安婦の嘘を書いた新聞ね
こうじ:それは「あさひ」
こうじ:お前とはもうやってられませんわ
330デフォルトの名無しさん
2019/12/16(月) 09:38:23.88ID:UpTR80vx >>326
・n≧6のとき
ピン1とピン2には各1個しか置けないから 1〜(n-1) を置くことはできない。
∴ n を ピン0 から ピン3 に直送することはできない。
∴ ピン0 → ピン1 → ピン3 と送ろう。
まず 12345 をピン2、ピン3に退避する。(n=6の場合)
123456, -, -, -
6, -, m, 12345-m (1≦m≦5)
6, -, -, 12345 は m=1 と見なす。
-, 6, m, 12345-m
次にピン3を空けるため、ピン0とピン2に移すことになる。
しかしピン0には3枚しか移動できず、ピン3に n-5枚残ってしまう。
∴ n≧6 では不可能。
・n≧6のとき
ピン1とピン2には各1個しか置けないから 1〜(n-1) を置くことはできない。
∴ n を ピン0 から ピン3 に直送することはできない。
∴ ピン0 → ピン1 → ピン3 と送ろう。
まず 12345 をピン2、ピン3に退避する。(n=6の場合)
123456, -, -, -
6, -, m, 12345-m (1≦m≦5)
6, -, -, 12345 は m=1 と見なす。
-, 6, m, 12345-m
次にピン3を空けるため、ピン0とピン2に移すことになる。
しかしピン0には3枚しか移動できず、ピン3に n-5枚残ってしまう。
∴ n≧6 では不可能。
331デフォルトの名無しさん
2019/12/16(月) 10:03:17.28ID:UpTR80vx 条件を変えたらどうなるか?
条件(1,1)
ピン1、ピン2には最大で1枚しか置けない。 >>326
条件(1,2)
ピン1には最大で1枚、ピン2には最大で2枚しか置けない。
条件(2,2)
ピン1、ピン2には最大で2枚しか置けない。
条件(1,1)
ピン1、ピン2には最大で1枚しか置けない。 >>326
条件(1,2)
ピン1には最大で1枚、ピン2には最大で2枚しか置けない。
条件(2,2)
ピン1、ピン2には最大で2枚しか置けない。
332デフォルトの名無しさん
2019/12/16(月) 12:12:45.33ID:ZZ8St2Js333デフォルトの名無しさん
2019/12/16(月) 14:51:32.32ID:b9yK9thh >>314
common lisp
(format t "~R" 16776960)
sixteen million, seven hundred and seventy-six thousand, nine hundred and sixty
common lisp
(format t "~R" 16776960)
sixteen million, seven hundred and seventy-six thousand, nine hundred and sixty
334デフォルトの名無しさん
2019/12/16(月) 15:02:43.75ID:b9yK9thh >>317
perl5
cat digits
2019
102030
123
cat digits | perl -lane '$zero = 0; while (s/0//) {++$zero}; print $_ . "0" x $zero;'
2190
123000
123
perl5
cat digits
2019
102030
123
cat digits | perl -lane '$zero = 0; while (s/0//) {++$zero}; print $_ . "0" x $zero;'
2190
123000
123
335デフォルトの名無しさん
2019/12/16(月) 17:56:02.69ID:rcGH9Ke6 >>326
これ昔やったことがありますが、すっかり忘れてしまったのは残念ですね…
これ昔やったことがありますが、すっかり忘れてしまったのは残念ですね…
337デフォルトの名無しさん
2019/12/16(月) 22:11:10.55ID:Ppfui4Eb >>317 PowerShell
function f($n) {($n -replace "0", "") + ($n -replace "[^0]", "")}
function f($n) {($n -replace "0", "") + ($n -replace "[^0]", "")}
338デフォルトの名無しさん
2019/12/17(火) 01:24:02.19ID:XiWpNBJ4339デフォルトの名無しさん
2019/12/17(火) 04:04:38.21ID:XiWpNBJ4340デフォルトの名無しさん
2019/12/17(火) 13:17:36.43ID:EDJKyz+u >>317 julia
function f(n)
r = ""
for c = reverse(string(n))
if c == '0'
r = r * c
else
r = c * r
end
end
parse(Int, r)
end
function f(n)
r = ""
for c = reverse(string(n))
if c == '0'
r = r * c
else
r = c * r
end
end
parse(Int, r)
end
341デフォルトの名無しさん
2019/12/17(火) 17:33:51.45ID:/DSBUbt2 お題
任意の文字列からaが連続する最も長い長さを出力してください
入力:acgtaattgaaagggtctt
期待値:3
任意の文字列からaが連続する最も長い長さを出力してください
入力:acgtaattgaaagggtctt
期待値:3
342デフォルトの名無しさん
2019/12/17(火) 18:10:05.60ID:Etag1t/i343デフォルトの名無しさん
2019/12/17(火) 18:50:00.42ID:Etag1t/i344デフォルトの名無しさん
2019/12/17(火) 19:34:15.94ID:JvBVW/sd345デフォルトの名無しさん
2019/12/17(火) 20:02:20.13ID:bKU/e1zO >>341 Ruby
p 'acgtaattgaaagggtctt'.gsub(/[^a]+/,' ').split.uniq.sort_by{|s| s.size}.last.size
p 'acgtaattgaaagggtctt'.gsub(/[^a]+/,' ').split.uniq.sort_by{|s| s.size}.last.size
346デフォルトの名無しさん
2019/12/17(火) 21:06:34.08ID:eGUcswGM お題
1〜1,000 の整数の内、3 か5 の倍数だけを選んで、その合計を求めよ
1〜1,000 の整数の内、3 か5 の倍数だけを選んで、その合計を求めよ
347デフォルトの名無しさん
2019/12/17(火) 21:42:29.19ID:p+XnOFki >>346
Rで2通りの求め方
d <- c(3, 5, -3 * 5)
q <- 1000 %/% d
cat(sum(d * q * (q + 1) / 2), "\n")
cat(sum(which(1:1000 %% 3 == 0 | 1:1000 %% 5 == 0)), "\n")
--- 実行結果 ---
234168
234168
Rで2通りの求め方
d <- c(3, 5, -3 * 5)
q <- 1000 %/% d
cat(sum(d * q * (q + 1) / 2), "\n")
cat(sum(which(1:1000 %% 3 == 0 | 1:1000 %% 5 == 0)), "\n")
--- 実行結果 ---
234168
234168
348デフォルトの名無しさん
2019/12/17(火) 21:42:34.96ID:Q1C16S4i349デフォルトの名無しさん
2019/12/17(火) 21:45:36.79ID:Q1C16S4i お題:ファイル名の一部に空白文字が使える OS(出題者想定は Windows7) の元で、正常に argc, argv を切り出せるスタートアップ支援ルーチンを作ってください
"" で囲まれている文字列は、それが一つのファイル名またはディレクトリ名として扱うこととし、"" で囲まれていない空白は引数の区切りとします
int main() {
rearrange(...);
...
と main の頭に置いて、xargc, xargv を代わりに使う、見たいな感じでお願いします
例によって私が痛切に欲しいと思っているものです…
"" で囲まれている文字列は、それが一つのファイル名またはディレクトリ名として扱うこととし、"" で囲まれていない空白は引数の区切りとします
int main() {
rearrange(...);
...
と main の頭に置いて、xargc, xargv を代わりに使う、見たいな感じでお願いします
例によって私が痛切に欲しいと思っているものです…
351デフォルトの名無しさん
2019/12/17(火) 23:55:17.00ID:jG+XSsUd >>341は簡単すぎるので、
任意の文字列から連続してる文字が最も長い文字とその文字数を求めよ
最も長い文字が複数ある場合は全て出力すること
入力:acgtaattgaaagggtctt
期待値: ("a", 3), ("g",3)
任意の文字列から連続してる文字が最も長い文字とその文字数を求めよ
最も長い文字が複数ある場合は全て出力すること
入力:acgtaattgaaagggtctt
期待値: ("a", 3), ("g",3)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 【無職の男(31)】女子小学生に次々触る 下半身を露出した状態で 公然わいせつ、不同意わいせつ疑い 千葉県警 [nita★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝活🧪
- 朝からハイエースでカップラーメン食べてるドカタ
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwww
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 冬季賞与報告スレ [577451214]
- アホが使うワード 解像度 言語化 あと一つは?
