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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/03/13(金) 01:42:47.06ID:0rEhys36
プログラミングのお題スレです。

【出題と回答例】
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/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part16
https://mevius.5ch.net/test/read.cgi/tech/1573948822/
2020/04/28(火) 07:01:29.73ID:cTXOkUEK
>>336
中学生か?
それとも日本語初心者か?
2020/04/28(火) 07:03:30.32ID:9sR0wNPf
運動方程式を解く
の意味がわかってないアホ
2020/04/28(火) 07:04:23.62ID:cTXOkUEK
振幅が小さい時は簡単に微分方程式解けるだろ
日本語が読めないアホ
2020/04/28(火) 07:05:19.37ID:9sR0wNPf
近似にしても
±90度振れる振り子を近似するのは高校生には出来ない
2020/04/28(火) 07:05:41.36ID:9sR0wNPf
>>339
条件の後付け
2020/04/28(火) 07:06:24.06ID:cTXOkUEK
>>334「近似すれば高校生でも解ける」
後付けじゃねえよ。最初から言ってるわ
死ねよ
2020/04/28(火) 07:06:58.86ID:9sR0wNPf
振幅が小さいとき
2020/04/28(火) 07:07:14.65ID:cTXOkUEK
単振り子の微分方程式解くときに他にどんな近似するっていうんだ
真面目に精神障害者だろコイツ
2020/04/28(火) 07:09:17.81ID:9sR0wNPf
>>344
それしか知らないのに簡単とか言うな
2020/04/28(火) 07:10:42.04ID:9sR0wNPf
解析的には解けない
シミュレーションに頼る
シミュレーションの精度を上げるにも技術がいる

一言で簡単とか言うアホは何もわかってない
2020/04/28(火) 07:10:47.87ID:cTXOkUEK
>>345
死ねよアホ
お前がアホだからこの程度すら簡単に思えないだけ
死ね
2020/04/28(火) 07:12:17.62ID:cTXOkUEK
自分が頭悪いの棚に上げていちゃもんつけられても困るわ
2020/04/28(火) 07:32:33.87ID:9sR0wNPf
10cmの理想的な単振り子
90度の位置から初速度ゼロで離して
ちょうど10分後の位置を求めよ

簡単だって言うならやってみて
2020/04/28(火) 07:37:31.08ID:9sR0wNPf
近似が高校で習う1通りしか無いと思ってる時点でアホだし
そもそも近似でしか解けない

「単振動近似なら高校生でも解ける」
これなら誰も反対しない
2020/04/28(火) 07:38:59.20ID:9sR0wNPf
お題
10cmの理想的な単振り子
90度の位置から初速度ゼロで離して
ちょうど10分後の位置を求めよ
2020/04/28(火) 07:43:14.50ID:cTXOkUEK
振り子の運動方程式解くときに近似って言われて振幅が小さい場合を想定できないのは障害者のお前くらいだわ
2020/04/28(火) 07:44:14.89ID:cTXOkUEK
>>351
社会の迷惑だからさっさと死んどけ
2020/04/28(火) 07:56:20.53ID:UKf6vnXk
>>293 Ruby
半加算器
https://ideone.com/QbSnhU
https://ideone.com/GzscIo
355デフォルトの名無しさん
垢版 |
2020/04/28(火) 07:57:37.92ID:6K6MgdzD
プログラマの99%はリコメンドしない情報盗人。俺調べ。
2020/04/28(火) 07:58:28.31ID:9sR0wNPf
そもそも
>>334の「近似すれば」は「高校生でも解ける」にしかかかってないし
2020/04/28(火) 07:59:19.57ID:9sR0wNPf
高校生で習う知識が全てと思ってしまう高校生レベルのアホ
358デフォルトの名無しさん
垢版 |
2020/04/28(火) 13:50:52.20ID:EhAaIQLq
底辺ITドカタは気性が荒いなぁ
2020/04/28(火) 18:50:58.23ID:9sR0wNPf
ごめん
2020/04/28(火) 18:55:56.80ID:9sR0wNPf
これでもサラリーマンの年収の上位5%に入るんだ
2020/04/28(火) 18:58:28.67ID:cQuYXkHz
>>349
重力加速度を指定ください
2020/04/28(火) 19:02:43.42ID:9sR0wNPf
9.80665
2020/04/28(火) 19:31:55.80ID:KJ919r2x
数学の話になると毎度現れるアスペ君今日も来てて草
アスペが重度なのか数学コンプが重度なのか
2020/04/28(火) 19:43:22.13ID:yUYRMh3W
>>308
C 幅優先探索
https://ideone.com/IsSgky
365デフォルトの名無しさん
垢版 |
2020/04/28(火) 19:44:24.43ID:6K6MgdzD
>>293
全加算器
Step 12, Solution 3
0 : -1, -2: 0, 0, 0, 0, 1, 1, 1, 1 : 4
1 : -1, -2: 0, 0, 1, 1, 0, 0, 1, 1 : 4
2 : -1, -2: 0, 1, 0, 1, 0, 1, 0, 1 : 4
3 : 2, 1: 1, 1, 1, 0, 1, 1, 1, 0 : 6
4 : 3, 1: 1, 1, 0, 1, 1, 1, 0, 1 : 6
5 : 3, 2: 1, 0, 1, 1, 1, 0, 1, 1 : 6
6 : 5, 4: 0, 1, 1, 0, 0, 1, 1, 0 : 4
7 : 6, 0: 1, 1, 1, 1, 1, 0, 0, 1 : 6
8 : 7, 0: 1, 1, 1, 1, 0, 1, 1, 0 : 6
9 : 7, 3: 0, 0, 0, 1, 0, 1, 1, 1 : 4 *
10 : 7, 6: 1, 0, 0, 1, 1, 1, 1, 1 : 6
11 : 10, 8: 0, 1, 1, 0, 1, 0, 0, 1 : 4 *
他2
2020/04/28(火) 21:14:59.05ID:5Mrr6wN/
お題:CapsLock on/offを切り替えながら文字入力

[入力]
A B C S

A : Shiftキーを押さずに1文字入力するのにかかる時間
B : Shiftキーを押しながら1文字入力するのにかかる時間(※)
C : CapsLock on/offの切り替えにかかる時間
S : 入力する文字列(英字のみ)

※CapsLock onで小文字入力、CapsLock offで大文字入力にかかる時間をBとする

[出力]
初期状態をCapsLock offとしたとき、Sを入力するのにかかる時間の最小値を求めよ


(例1)
2 3 4 ABCDE
=> 14
CapsLockを使わない場合、3+3+3+3+3=15
CapsLockを使うと、(4)+2+2+2+2+2=14

(例2)
2 3 4 aBCDe
=> 13
CapsLockを使わない場合、2+3+3+3+2=13
2文字目以降CapsLock onの場合、2+(4)+2+2+2+3=15
367デフォルトの名無しさん
垢版 |
2020/04/29(水) 01:24:53.33ID:W2Vd/2U1
>>364
そんな長いコードよく1日でかけたな
2020/04/29(水) 02:08:45.13ID:hFx8dHat
つられて開いたら、そんなに長くなかった
2020/04/29(水) 02:11:21.30ID:hFx8dHat
モレも若い頃、力ずくの実装でこう言ふコード書いていた時期があった希ガス 遠い目
370デフォルトの名無しさん
垢版 |
2020/04/29(水) 02:17:11.52ID:7u9sxpAB
プログラマってプライド高いからすぐに張り合うよねw
2020/04/29(水) 02:21:44.68ID:MMtCgKFX
誰も張り合っていないが
372デフォルトの名無しさん
垢版 |
2020/04/29(水) 02:22:31.06ID:IXK0ODva
子どもみたい
2020/04/29(水) 02:25:50.52ID:HpBd3h/I
大人とは何か
374デフォルトの名無しさん
垢版 |
2020/04/29(水) 02:27:25.42ID:IXK0ODva
冗談だから間に受けなくていいよ。
2020/04/29(水) 02:28:27.81ID:HpBd3h/I
大人とは酒、タバコ、Unix
2020/04/29(水) 02:29:29.28ID:C2sNF63S
>>374
うざいからよそでやれ
2020/04/29(水) 02:29:46.63ID:sgNXZLgj
うん。で?
2020/04/29(水) 02:30:51.12ID:gC4oizq8
>>375
うざいからよそでやれ
2020/04/29(水) 02:33:29.03ID:YwwSpjL1
餌をあげないでください。
2020/04/29(水) 02:33:56.37ID:b7RiChMO
>>379
うざいからよそでやれ
2020/04/29(水) 02:35:59.66ID:nrbD9/Mw
>>380
あなたにとってうざいことは、みな歓迎しています
382デフォルトの名無しさん
垢版 |
2020/04/29(水) 02:36:09.16ID:CXgZ7sKW
>>369
そうなんだおじさん「そうなんだ」
2020/04/29(水) 02:37:10.95ID:hZe4L1sV
いやいや全然違います
2020/04/29(水) 02:38:46.06ID:pkOZSJYa
いいえ全然違いません
2020/04/29(水) 02:39:10.87ID:OQU5gELq
くだらねぇーw
2020/04/29(水) 02:40:49.50ID:tOnjZeuD
くだらないことは何度も
2020/04/29(水) 02:41:29.87ID:OQU5gELq
うん。で?
2020/04/29(水) 02:41:55.06ID:i/nVZZDh
うざいからよそでやれ
2020/04/29(水) 02:43:06.43ID:OQU5gELq
│    _、_
│  ヽ( ,_ノ`)ノ 残念、それは私のおいなりさんだ。
│ へノ   /
└→ ω ノ
      >
2020/04/29(水) 02:43:16.68ID:JIRRi7ju
おじさんはここがいいです。
2020/04/29(水) 02:44:14.14ID:Fecc9l/8
くだらねーw
2020/04/29(水) 02:44:35.49ID:OQU5gELq
逝ってよし
2020/04/29(水) 02:45:11.17ID:73PkxB6e
おじさんはよそに行きましょうね
2020/04/29(水) 02:45:55.07ID:OQU5gELq
↓少し下でID変えて書くはず
逝ってよし
2020/04/29(水) 02:46:12.06ID:mcZoq7mu
くだらねーw
2020/04/29(水) 02:47:10.32ID:XlBNFPbk
逝ってよし
2020/04/29(水) 02:47:46.32ID:OQU5gELq
ktkr
2020/04/29(水) 02:48:03.46ID:QCxNpmbM
くだらねーw
2020/04/29(水) 02:49:03.69ID:P4G9hJZv
律儀だなお前
2020/04/29(水) 02:50:36.73ID:WGhV7jsx
おじいちゃんの唐突な自分語りワロタ
2020/04/29(水) 02:50:44.78ID:189Zc0ZE
>>398 ご褒美あげるよ
https://www.google.co.jp/search?q=%E3%83%9E%E3%83%B3%E3%82%B3&;hl=ja&source=lnms&tbm=isch&sa=X&ved=2ahUKEwibwsmt14vpAhXGQN4KHZx_AsYQ_AUoAnoECAsQBA&biw=1024&bih=626
2020/04/29(水) 02:53:16.11ID:189Zc0ZE
>>400
お前も、ご褒美、欲しい?
2020/04/29(水) 02:54:44.35ID:189Zc0ZE
やっぱ、お前には、あーげない。
2020/04/29(水) 02:57:53.08ID:189Zc0ZE
なぜこの程度で、黙る?
2020/04/29(水) 02:59:48.25ID:189Zc0ZE
かわいそうなことをしてしまったかな…
2020/04/29(水) 03:13:10.26ID:VGrmX9xw
ご褒美にどうせ貼るならこっちだろ
https://www.google.co.jp/search?q=%E3%83%9E%E3%83%B3%E3%82%B3&;source=lnms&tbm=isch&sa=X&ved=2ahUKEwi2__io3IvpAhXoy4sBHWLLAs0Q_AUoAnoECAsQBA&biw=1024&bih=626
2020/04/29(水) 03:14:48.43ID:VGrmX9xw
いやいやこっち
https://www.google.co.jp/search?q=%E3%83%9E%E3%83%B3%E3%82%B3&;source=lmns&tbm=vid&bih=626&biw=1024&hl=ja&ved=2ahUKEwja0Yir3IvpAhUyMHAKHSsUDc0Q_AUoAXoECAEQAQ
408289
垢版 |
2020/04/29(水) 07:47:59.06ID:h4pVS5Or
>>286 Ruby
https://ideone.com/KV5X5c
主な処理をテーブルで済ませて高速化
ideone の時間制限内に完走できた
2020/04/29(水) 09:28:47.04ID:7z7Xd+nS
>>366 Ruby
# A <= B とする

def f(a, b, c, arr, cl = false)
  return 0 if arr.empty?
  arr = arr.clone
  cap, size = arr.shift
  return a * size + f(a, b, c, arr, cl) if cap == cl
  [c + a * size + f(a, b, c, arr, !cl), b * size + f(a, b, c, arr, cl)].min
end

g = -> str {str.scan(/[A-Z]+|[a-z]+/).map{|s| [s.match?(/[A-Z]/), s.size]}}



[
  '2 3 4 ABCDE',
  '2 3 4 aBCEe',
  '2 3 4 XMLHttpRequestEventTarget'
].each{|s| *e, s = s.split; puts '%s => %d' % [s, f(*e.map(&:to_i), g[s])]}

# =>
ABCDE => 14
aBCEe => 13
XMLHttpRequestEventTarget => 57
2020/04/29(水) 09:42:47.46ID:v+B1NZPE
>>308
2番目の例impossibleじゃなくて S -> 3 -> Gじゃないの?って思ったら入力1行目はH Wだった
411デフォルトの名無しさん
垢版 |
2020/04/29(水) 16:10:16.80ID:HpBd3h/I
>>271
Java
https://paiza.io/projects/RBAyJiWk21BDHF_SnCn1Yg
412デフォルトの名無しさん
垢版 |
2020/04/29(水) 21:05:32.34ID:HpBd3h/I
>>234
Java
https://paiza.io/projects/grHXWC8LISo50PRjUPDaFA
413デフォルトの名無しさん
垢版 |
2020/04/30(木) 06:48:30.61ID:2MGLj+B4
>>293
4入力セレクタ

digraph g1 {
subgraph cluster_1 {
label = "Solution_1"
aa_1_0, aa_1_0 -> aa_1_6 ; aa_1_1, aa_1_1 -> aa_1_7 ; aa_1_3, aa_1_1 -> aa_1_8 ;
aa_1_5, aa_1_1 -> aa_1_9 ; aa_1_7, aa_1_2 -> aa_1_10 ; aa_1_7, aa_1_4 -> aa_1_11 ;
aa_1_10, aa_1_8 -> aa_1_12 ; aa_1_11, aa_1_9 -> aa_1_13 ; aa_1_12, aa_1_6 -> aa_1_14 ;
aa_1_13, aa_1_0 -> aa_1_15 ; aa_1_15, aa_1_14 -> aa_1_16 ;
}
}
414289
垢版 |
2020/04/30(木) 07:15:11.89ID:SPWNNB7s
>>286 Ruby
https://ideone.com/Wz7WFP
2pass化 25%ほど高速化
415デフォルトの名無しさん
垢版 |
2020/05/01(金) 05:08:54.81ID:GhPTuZah
>>286
EXNORはちょっとおもしろい。
Step 7, Solution 1
0 : -1, -2: 0, 0, 1, 1 : 2
1 : -1, -2: 0, 1, 0, 1 : 2
2 : 0, 0: 1, 1, 0, 0 : 2
3 : 1, 0: 1, 1, 1, 0 : 3
4 : 1, 1: 1, 0, 1, 0 : 2
5 : 4, 2: 0, 1, 1, 1 : 3
6 : 5, 3: 1, 0, 0, 1 : 2 *
2020/05/01(金) 05:42:45.32ID:VWVnAecH
お題: 関数とパイプを実装せよ
以下のような文字列をパースし、パイプに繋げながら関数を実行せよ
標準入力と標準出力の代わりにバッファを使って実装すること

in < "hello"
out > hello

in < "hello | world"
out > helloworld

in < "world | hello"
out > worldhello

in < "hello | upper"
out > HELLO

in < "hello | world | upper"
out > HELLOWORLD
2020/05/01(金) 06:02:49.53ID:+MJaN8j/
>>416
hello | upperはhelloupperだろ
418289
垢版 |
2020/05/01(金) 07:03:56.16ID:bMo1YMx1
>>286 Ruby
https://ideone.com/3qXvX8
一度に 4bit計算 40%ほど高速化
2020/05/01(金) 07:11:29.45ID:VWVnAecH
>>417
upperはバッファを大文字にする関数
2020/05/01(金) 07:20:48.70ID:kd4VrQns
いや、存在する関数を全部定義しないと実装なんてできんやん
突っ込まれて思わなかったの?
2020/05/01(金) 07:55:56.05ID:VWVnAecH
hello, world, upperだけ実装すればいいのでは
2020/05/01(金) 08:08:25.74ID:VWVnAecH
みんな真面目だなw
2020/05/01(金) 08:25:09.26ID:VWVnAecH
>>416 書き直し

お題: 関数hello, world, upperを実装し、それらをパイプで繋げて実行できるようにせよ
標準入力からコマンドライン文字列が一行ずつ入力されるので、それをパースして上記の関数を組み合わせて実行する
関数の出力と入力には標準入出力を使う代わりに、バッファを使い、コマンドライン全体の実行が終わったら構築したバッファを標準出力へ出力すること
例えば入力されるコマンドラインは

in < hello
in < hello | world
in < hello | world | upper
in < world | hello
in < world | hello | upper

のようになる
hello関数はバッファに文字列「hello」を追加し、world関数はバッファに文字列「wolrd」を追加し、upperはバッファ内の文字列を大文字にする関数である
よって最終的なコマンドラインの出力は

in < hello
out > hello
in < hello | world
out > helloworld
in < hello | world | upper
out > HELLOWORLD
in < world | upper | hello
out > WORLDhello

のようになる
2020/05/01(金) 08:29:55.15ID:R0k5e7Mk
hello world それぞれを改行無しの printf などで出力し
upper は大きくするだけか
2020/05/01(金) 08:34:39.92ID:VWVnAecH
>>424
バッファを使わずに標準入出力だけで実装できるならそれでもいいです
2020/05/01(金) 11:04:14.34ID:MCEzZFz/
Ruby には、まさに文字列(バッファ)に、IO インタフェースを実装したクラス、StringIO がある!
2020/05/01(金) 11:29:05.85ID:TOWtsDG5
>>423 Ruby
$><<$_.split(' | ').reduce(''){|s,e|[s.upcase,s+e][e.ord%-3]}while gets


-*- input -*-
hello
hello | world
hello | world | upper
world | hello
world | hello | upper

-*- output -*-
hello
helloworld
HELLOWORLD
worldhello
WORLDHELLO
428デフォルトの名無しさん
垢版 |
2020/05/02(土) 23:08:15.43ID:MMgV24Hu
>>423
Java
https://paiza.io/projects/xBPsF7Vihf9x1tS1U1asrQ
2020/05/03(日) 01:19:30.67ID:SFv1ny6W
>>423 Perl5, 要求仕様通り素直に三つの関数を定義し、文字列をparseした単語の関数名を呼び出す形で実装

sub hello { $o .= 'hello' }
sub world { $o .= 'world' }
sub upper { $o = uc $o }
for (<DATA>) {
 $o = '';
 &$_ for /(\w+)/g;
 print "$o\n";
}
__DATA__
hello
hello | world
hello | world | upper
world | hello
world | hello | upper
world | upper | hello


実行結果
~ $ perl 17_423_hello_world_upperl.pl
hello
helloworld
HELLOWORLD
worldhello
WORLDHELLO
WORLDhello
430289
垢版 |
2020/05/03(日) 07:15:48.78ID:E6IlR6fn
>>286 Ruby
https://ideone.com/VDiQyB
枝刈りを強化 38%ほど高速化
2020/05/03(日) 09:17:11.44ID:n5Gy3ytY
>>427
world | upper | hello
2020/05/03(日) 09:27:35.74ID:/8opEJBh
>>431
ちゃんと"WORLDhello"って出力される
433デフォルトの名無しさん
垢版 |
2020/05/04(月) 00:23:42.89ID:k2FsLwVs
>>423
Kotlin
https://paiza.io/projects/Opyd7gwTb5jwgD2LANwPeA

文字列を判定して対応する処理をするだけでも良かったが、Map に文字列と対応する処理をセットしてそれを呼び出して実行させるようにした。
また hello, world, upper 以外が入力されるとエラーが出るようになっている。
2020/05/04(月) 00:44:53.84ID:Jy1F1UMD
また変なTwitterの奴か
435289
垢版 |
2020/05/04(月) 07:13:05.12ID:p+pGQ7l4
>>286 C++
https://ideone.com/djJiyu
Ruby から移植。実行時間は Rubyより 90倍程度高速化
436デフォルトの名無しさん
垢版 |
2020/05/04(月) 07:38:47.50ID:kseU4FEU
>>435
端子の出現順を固定しないから無駄に組合せが増えているのではないだろうか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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