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

レス数が1000を超えています。これ以上書き込みはできません。
2019/05/18(土) 17:33:29.45ID:BWmpW4IF
プログラミングのお題スレです。

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

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

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1549160513/
904836
垢版 |
2019/07/23(火) 17:53:12.70ID:5GIBUFQK
>>903
正方形ではなく、長方形だね

マスの座標は、行列の順で、開始点は( 行0, 列0 )

漏れは、盤面の周囲に、番兵を置いて、考えてます
905896
垢版 |
2019/07/23(火) 18:05:44.96ID:GpNXeX+q
>>901
うん、ぼけてた
コスト20やなw

問2で盤面サイズが奇数x偶数とかの場合はゴールはどう考えればいいの? 同時移動だとすれ違っちゃうが
Sが常に先に動く (Eが居るところで合流)
Eが常に先に動く (Sが居るところで合流)
SとE好きな方が先に動く (コストが低いマスの方で合流)
SとEが同時に動く (すれ違って合流できない? 中間点で合流? その場合のコストは?)

たとえば S12E とかの場合
906836
垢版 |
2019/07/23(火) 20:32:34.55ID:5GIBUFQK
盤面のサイズが偶数では、問2 は無理

必ず、奇数×奇数
2019/07/23(火) 21:26:26.55ID:JcFEdZGk
>>885
回答いただき感謝いたします
2019/07/23(火) 22:05:37.82ID:GpNXeX+q
>>906
偶数×偶数も行けるやろ
偶数×奇数、奇数×偶数は無理だが
2019/07/24(水) 14:07:43.24ID:i9YSslum
目の前で出会うことが目的じゃないの?
910デフォルトの名無しさん
垢版 |
2019/07/25(木) 16:00:43.87ID:JLY47fmQ
任意の整数を引数に取り、フィボナッチ数か判別するisfib関数を作れ。
なお、フィボナッチ数では無い場合任意の整数と-1の組(Cなどは代わりの物)を、
フィボナッチ数ならフィボナッチ数=任意の整数とそれがフィボナッチ数列の何番めかを表す数の組を返す事。

例:
isfib 0 = (0,1)
isfib 1 = (1,2)
isfib 2 = (2,4)
isfib 3 = (3,5)
isfib 4 = (4,-1)
isfib 5 = (5,6)
2019/07/25(木) 18:03:38.63ID:D8pzUtDE
>>910
Common Lisp
https://pastebin.com/qqYUKSem

出力
(loop for i from 0 to 6 do (isfib i))
(0 . 1)
(1 . 2)
(2 . 4)
(3 . 5)
(4 . -1)
(5 . 6)
(6 . -1)
2019/07/26(金) 01:20:21.47ID:E/v28Z/A
>>910 Perl5

sub isfib {
 $v = shift;
 %h = map{$_ => $_} @s = (0,1);
 do {
  $f = $s[-2] + $s[-1];
  push @s, $f;
  $h{$f} //= @s;
 } while $f < $v;
 ($v, $h{$v} // -1);
}
printf "isfib $_ = (%d,%d)\n", isfib $_ for 0..5;

実行結果
$ perl 14_910_isfib.pl
isfib 0 = (0,0)
isfib 1 = (1,1)
isfib 2 = (2,4)
isfib 3 = (3,5)
isfib 4 = (4,-1)
isfib 5 = (5,6)
913デフォルトの名無しさん
垢版 |
2019/07/26(金) 06:33:07.15ID:NUjZudpe
>>910 Lua
function isFib(n)
  local a, b, c = 0, 1, 1
  while a < n do
    a, b, c = b, a + b, c + 1
  end
  if a ~= n then c = -1 end
  return n, c
end
914836
垢版 |
2019/07/26(金) 09:34:26.36ID:54Ib42km
>>908-909
確かに、偶数×偶数は、
同じターンで、同じマスに入れますね!

S1
2E

S12
34E
2019/07/26(金) 09:50:12.39ID:rMhs1i6l
>>910
戻り値がbooleanじゃないのが気持ち悪い
2019/07/26(金) 21:09:58.82ID:D2C6zjmj
>>913
4のとき
isfib 4 = (5,-1)
にならない?
2019/07/26(金) 22:09:57.95ID:wMkqv1Wf
「何番目かを返す」ってのが地味に難しいな
そこまでの全てのフィボナッチ数を求めないと無理じゃね?
2019/07/26(金) 22:53:34.40ID:XK3Q7RTy
>>916 勘違いした
isfib 4 = (4,-1)
になる。合っている。
2019/07/26(金) 23:11:48.79ID:PBeJ5BeU
キャッシュ層込みの問題だな
2019/07/26(金) 23:31:36.17ID:HmAxaouE
お題: 水素原子、酸素原子、炭素原子からなる分子の化学式が与えられる。原子の種類と個数から考えられる分子構造をデータ構造で表現し、コンソール画面に可能なかぎり表示しなさい。

(例)
H2O --> H - O - H
CO2 --> O = C = O
CH4 -->
  H
 |
H- C - H
  |
  H
2019/07/26(金) 23:39:37.50ID:HmAxaouE
(例2) 図式化が難しければ、データ構造だけでもいい。

CO2 → (C, O, O), ((0, 1), (0, 2)).
H2O → (H, H, O), ((0, 2), (1, 2)).
CH4 → (C, H, H, H), ((0, 1), (0, 2), (0, 3)).
2019/07/26(金) 23:40:57.41ID:XK3Q7RTy
>>920
サンプル回答キボンヌ
2019/07/26(金) 23:42:34.11ID:HmAxaouE
>>921
訂正。
CH4 → (C, H, H, H, H), ((0, 1), (0, 2), (0, 3), (0, 4)).
2019/07/26(金) 23:45:02.28ID:PBeJ5BeU
>>920
ベンゼン寒とかシクロヘキサン
3、5つあたりも鬼門か?
2019/07/26(金) 23:47:59.42ID:HmAxaouE
図式化は不可能に近いようだ。データ構造だけでOK.
2019/07/26(金) 23:48:10.95ID:XK3Q7RTy
そいうこと考えてから出題ヨロ
2019/07/27(土) 00:19:22.73ID:P0VdsVRX
備考。

ここでは単純のために「結合の手」を使ったモデルで考える。
原子によって結合の手の個数は決まっている(Cは4個、Oは2個、Hは1個)。
結合の手が余らないような分子構造のみを考える(一酸化炭素COのような構造は除外する)。
2019/07/27(土) 00:22:04.97ID:P0VdsVRX
電荷を持たない分子だけを対象とする。イオンではない。
2019/07/27(土) 00:24:45.04ID:A58wSpEe
ヨーク考えて、出題するレベルに練りあがってから出直したらどうですか
930デフォルトの名無しさん
垢版 |
2019/07/27(土) 03:29:25.97ID:IOXz7NXW
うわーおQZってまだ生きてたのか
昔NG推奨にしてスレ立てたような気がしたんだが
2019/07/27(土) 06:20:15.81ID:vbPXi5Ru
>>930
以下のレスのように、相変わらず身勝手なレスを繰り返してるよ

https://mevius.5ch.net/test/read.cgi/tech/1562581391/575
2019/07/27(土) 06:23:51.65ID:Okexx4cI
>>917
一般項 f(n) = (φ^n - (-φ)^(-n)) / sqrt(5) はnに対して狭義単調増加なので逆写像 fi(n) が存在して当然 fi・f(n) = n が成り立つ。
従って「そこまでの全てのフィボナッチ数を求めないと無理」は偽である。
2019/07/27(土) 06:26:39.77ID:Okexx4cI
>>920
化学式と分子構造は一対一対応してねえよ
そんなの今日日高校生ですら理解してるわ
二度と書き込むな
934デフォルトの名無しさん
垢版 |
2019/07/27(土) 10:14:18.78ID:yKuZ7Tou
お題
非負整数m, nに対し、
f(m, n)= n+1 if m==0
f(m, n) = f(m-1, 1) if n == 0
f(m, n) = f(m-1, f(m, n-1)) otherwise
なるf(m, n)の値を求めよ

f(2, 1) = ?
f(4, 1) = ?
2019/07/27(土) 10:45:11.97ID:aB6NIKG8
>>910
https://ideone.com/S7V4hf
C++。どや!
2019/07/27(土) 10:56:52.18ID:aB6NIKG8
>>934
https://ideone.com/zaOvTK
C++。2個目がスタックオーバーフローだと思う。
2019/07/27(土) 11:08:11.84ID:tV8GDyIW
>>932
あのさ、簡単に言うけどその逆関数は複素関数になるぞ
そこまで言うなら逆関数を使ってnを求めるプログラムを書いてみろ
ここはム板だ
2019/07/27(土) 11:11:50.71ID:1cAkezH+
>>934
perl5
https://pastebin.com/xxirNWW3

f(4,1) はPCが帰ってこなくなったからやらない
f(2,1) は5だった
2019/07/27(土) 11:57:13.11ID:g91Bo5NE
>>934
C++
http://ideone.com/5Y9XT3
2019/07/27(土) 12:10:03.51ID:aB6NIKG8
え?メモ化したら解けるの??
ガーン。
2019/07/27(土) 12:26:28.44ID:BeYdmmLD
お題と回答
5 : 6 10 32 36 44
9 : 15 34 35 79
11=575 : 48 (78) 138-139 (140) 142 146 151 154
19 :
50, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/tech/1549160513/988 == 164 : 59 61 167 169 189 192 201 202
90 : 95 96
99 :
200 : 214 219
215 : 227
220 : 232 240 248 256 268
235 : 236 237 238 239 247 249 259 342 353
320 : 321 323 327 330 340
322 : 325 328 329 331 332 339 341 358 359
362 : 367 369 370 371 374 379 380 382 414
368 : 390
388 : 487 (488) 553 559
400 : 401
408 :
417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
479 :
555 : 556 558 564 565
557 : 560 562 568 569
570 : 574 577
573 : 604 622
600 : 605 607 611 613 627 691
615,626 :
632 : 637 640 645 649 650 687 689-690
651 : 654 657 662 679 682
2019/07/27(土) 12:27:01.61ID:BeYdmmLD
655 :
661 :
683 : 685
695,704,716,721 : 696 697 701 703 711 713 714 715 718 722 723 724 727 740-741
708 : 714
717 :
752 :
753 : (760)
767 : 775
778 : 779 788 (792) 794
789 : 790 (793)
807 : 810 811 812 814 815 816 821 823
824 : 826 827-828 829 831
833 : 841
835 :
836,838,892 : 847 880 881 893 895
865,868 : 866 868
910 : 911 912 913 935
934 : 936 938 939
2019/07/27(土) 12:28:33.93ID:aB6NIKG8
https://ideone.com/iEyKYb
C++。constexprでもダメだったよ。
2019/07/27(土) 12:36:01.98ID:1cAkezH+
ああ まただよ(笑)
2019/07/27(土) 12:37:09.52ID:aB6NIKG8
d -_- b
2019/07/27(土) 13:05:36.13ID:hLAGzHLQ
>>941-942
統合失調症患者はどっか逝け
2019/07/27(土) 14:28:16.32ID:eTs80TG9
お題: cpu温度を表示せよ
2019/07/27(土) 15:01:57.99ID:Okexx4cI
>>937
論点ずらすな
「〜は無理」って言ってるからそれを否定しただけ
ただ 1 <= n <= 2 で狭義単調増加じゃないからそこだけは訂正しておくが

てかどんな頭で考えたらこの逆関数が複素関数になるんだか
可哀そうだから答え書いといてあげるけどさ
fi(x) = (log(sqrt(5) * x + sqrt(5 * x^2 - 4 * (-1)^((x + 1) % 3))) - log(2)) / log(φ)
2019/07/27(土) 15:15:49.31ID:b5LHfPHC
>>948
CやC++で ^ はXOR演算子なんだが
2019/07/27(土) 15:20:43.26ID:aB6NIKG8
ファイが何を指しているか・・・わからない・・・。
その定数5のいみがわからない。


そんな、ホラー。
2019/07/27(土) 15:23:42.00ID:Okexx4cI
動物園かよここは……

黄金比 φ := (1 + sqrt(5)) / 2

>>949
お前は一生クワス算でもやってろ
2019/07/27(土) 15:26:08.80ID:b5LHfPHC
>>951
そんなもん知ってるわアホ
上から目線で偉そうに
2019/07/27(土) 15:28:08.33ID:Okexx4cI
>>952
意味不明すぎてくっそ笑ったwww
自らの頭の悪さにキレててウケる
2019/07/27(土) 15:29:41.45ID:IpJBqisA
おおかた、数学的には反論できなくて悔しくなってc++では〜などという難癖をつけたのだろう
これ以上はスレチだからどっかよそでやれ
2019/07/27(土) 15:31:02.81ID:O5H2zazt
反論とかワロス
数学板でやれ
2019/07/27(土) 15:33:55.84ID:P0VdsVRX
phi
2019/07/27(土) 15:35:44.71ID:d+qHn5lK
数学(?)の話してんのにCやC++で ^ はXOR演算子なんだがとかいうやつ初めて見たわ
無能アピールだとしたらこれ以上ないくらいに効果出てるな
2019/07/27(土) 15:40:02.09ID:z4Poa3yK
数学の話は数学板で
2019/07/27(土) 15:40:49.84ID:7QbyGuYU
>そこまで言うなら逆関数を使ってnを求めるプログラムを書いてみろ!
どうせ無理だと思ってタンカを切ったら相手にあっさり答えを書かれてしまう(ついでに自分の間違いまで指摘されてしまう)
もし俺がこいつだったら、恥ずかしくなりすぎてXOR演算子云々で話をうやむやにする気持ちもわかるぞ
2019/07/27(土) 15:48:04.56ID:aB6NIKG8
>>951
https://ideone.com/PMTi9h
C++。コードに落としてみたけど、数学解らないから教えて。
フォークしてもいいよ。
2019/07/27(土) 15:51:41.66ID:aB6NIKG8
作ってて思ったのはね。
片方の関数は、フィボナッチ数知らないと動作しないのじゃないかということ。
片方の関数は、フィボナッチ数もとめにいくんだけど。

んで、鳥と卵の問題に見えるので、どういう風に使えばよいのかわからない。
2019/07/27(土) 15:52:21.85ID:3aZcsmVe
答え:カモノハシ
2019/07/27(土) 15:57:38.07ID:Okexx4cI
>>960
Fiの分子が微妙に違ったので訂正しておいたよ
https://ideone.com/SNN3mV
2019/07/27(土) 16:04:37.22ID:f7WK2xYd
炎上学習法か
例の頭のおかしな人かな?
2019/07/27(土) 16:04:59.65ID:1cAkezH+
あの逆関数?を単純に放りこんだら解けなかった
一筋縄じゃいかないね

Solve[(Log(Sqrt(5) * x + Sqrt(5 * x^2 - 4 * (-1)^((x + 1) % 3))) - Log(2)) *2/(1 + Sqrt(5)) ==5,x]
Solve::nsmet: This system cannot be solved with the methods available to Solve.
2019/07/27(土) 16:07:23.94ID:1cAkezH+
() [] に上の式を正しくなおしたがやはりだめだ
967デフォルトの名無しさん
垢版 |
2019/07/27(土) 16:08:06.87ID:7aZqje0Z
>>964
お前もまだいたの
2019/07/27(土) 16:08:36.42ID:aB6NIKG8
>>963
https://ideone.com/qN8CCx
幾つかNANになったのはコンピュータの問題かなぁ??
あんまり詳しくないんだけど。

中央値がきれいに取れてるので、境界線系のエラーもあり得る。
2019/07/27(土) 16:13:46.18ID:aB6NIKG8
しかしまー、数式で可逆式まで考えられるモノなのだねぇ。感心するわ。。。
2019/07/27(土) 16:27:26.01ID:aB6NIKG8
>>910 の題意からすると、こんな感じ?
https://ideone.com/WLv6dA

>>932の「有効」でエンド。
2019/07/27(土) 16:30:29.90ID:aB6NIKG8
いや、「技あり」か。
2019/07/27(土) 16:48:31.50ID:Okexx4cI
>>968
それのstd::pow(-1, 〜) が問題なので書き換えた
多少の誤差はあれどn = 2 を除いて右側の数字は0, 1, ..., 127と並んでいるよね
https://ideone.com/X7WSxR
2019/07/27(土) 16:51:51.51ID:aB6NIKG8
>>972
大体、求まってるね。

あなたつよいわ〜。
ここまで出来たら、あとは見せ方。
2019/07/27(土) 16:54:46.18ID:aB6NIKG8
念のため言っておくと、ideonは実行後コードと同じページにstdoutを表示する。
2019/07/27(土) 16:59:41.70ID:aB6NIKG8
>>972
三項演算子は、返す型が同じじゃないとエラーを吐く。
doubleとchar[]になってる。
2019/07/27(土) 17:02:12.84ID:aB6NIKG8
お、動いたか。

とりあえず、この辺で抜けるわ。
まったねー。
2019/07/27(土) 20:21:38.01ID:BeYdmmLD
>>934
アッカーマン関数であることにやっと気がつきました…
2019/07/27(土) 20:47:31.60ID:POROMEeh
>>977
どうてもいいけどお前は荒らすな
2019/07/27(土) 22:43:52.75ID:JtBf7oRg
>>972
誤差ないプログラム書けよ
2019/07/27(土) 23:00:24.26ID:JtBf7oRg
>>948
その式自分で考えた?
あと、>>934 の回答としてnが小さいときだけとか制約がある?
2019/07/28(日) 01:17:00.04ID:+ByOW8ha
お題
括弧のネストの深さの最大値を求めよ
括弧の対応が取れていない場合は-1を出力せよ


"{}" => 1
"}{" => -1
"" => 0
"{{{}{}}}{}" => 3
2019/07/28(日) 02:35:31.10ID:/N9EqgUo
>>981
python3
http://ideone.com/Nuqjvc
983デフォルトの名無しさん
垢版 |
2019/07/28(日) 04:13:25.02ID:QWXlr9dJ
>>910
Pythonで素直に書くとこんな感じ。

http://ideone.com/3HvxyP

これをそのままHaskellで書くと負けるが、こっちならPythonに勝つる。

http://ideone.com/iwLONj
984デフォルトの名無しさん
垢版 |
2019/07/28(日) 06:16:51.79ID:YNZYuVVC
>>981 Ruby

f = -> str {s = -str; (0..1.0/0).each{|i| s.gsub!('{}', '') || (break s.size.zero? ? i : -1)}}
['{}', '}{', '', '{{{}{}}}{}'].each{|e| puts "%p => %d" % [e, f[e]]}

# =>
"{}" => 1
"}{" => -1
"" => 0
"{{{}{}}}{}" => 3
2019/07/28(日) 12:26:21.14ID:/N9EqgUo
>>981
perl5
http://ideone.com/HOpSCt

言語変えたらより見やすくなった
2019/07/28(日) 14:44:03.09ID:NJaTvOic
>>981 Perl5

use List::Util 'max';
%h = qw({ 1 } -1);
for ('{}', '}{', '', '{{{}{}}}{}') {
 ($l, $m) = (0, 0);
 for (map{$h{$_}} split'') {
  $l += $_;
  $m = max $l, $m;
  last if $l < 0;
 }
 $m = -1 if $l;
 print "'$_' => $m\n";
}

実行結果
$ perl 14_981.pl
'{}' => 1
'}{' => -1
'' => 0
'{{{}{}}}{}' => 3
2019/07/28(日) 16:06:00.72ID:T1A0+dDM
>>979-980
もともと提示されてたのは式だけだし、式自体に誤差はないじゃん。アホなの?
てかさ、(-1)^((x+1)%3)で場合分けを吸収してるところは素直に上手いなぁとは思うけど元のフィボナッチ数列の式からの変形自体は高校生レベルじゃんこれ
「自分で考えたの?」てお前アホなの?
誰が解いても上の部分以外は同じになるっつーの

「2次方程式の解の公式で解きました!」
「その公式って自分で考えたの?」
くらい間抜けでアホ馬鹿丸出し生きる価値無し短小包茎白癬菌
2019/07/28(日) 17:09:34.39ID:a6lmPEp9
むきになって長文書くなよ
迷惑行為だぜ
2019/07/28(日) 17:23:37.85ID:6a78I9O8
基地外だから仕方ないね
2019/07/28(日) 18:48:49.76ID:38YML8XX
そろそろ次のスレ
2019/07/28(日) 18:51:08.82ID:vDw8KJqW
まだ早い
2019/07/28(日) 19:41:08.34ID:832c/ukY
次スレ
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
2019/07/28(日) 19:42:06.95ID:bnGezINl
>>992
おつ
2019/07/28(日) 23:35:47.94ID:GPK25ks7
>>992
お疲れさまです…
2019/07/28(日) 23:40:41.46ID:/N9EqgUo
>>994
書き込み禁止
2019/07/28(日) 23:50:56.98ID:GPK25ks7
>>995
はいはい&hearts;
2019/07/29(月) 20:09:26.82ID:p0mLxaof
お題: このスレッドのアンカーの数を出力せよ
2019/07/29(月) 20:11:57.84ID:VkmvAKd6
w3m https://mevius.5ch.net/test/read.cgi/tech/1558168409/| grep -o ">>[0-9]" | wc -l
909

あれのせいだな
2019/07/30(火) 05:43:03.94ID:RYwsY7rK
>>164
あまり他の言語にない redo を使う perl5
http://ideone.com/46mcQl
2019/07/30(火) 07:12:39.03ID:RYwsY7rK
>>417
13694289/134217728
を使えば満足するだろうか?なぜなら
(rational
0.102030405060708090
10011012013014015016
01701801902002102202
30240250260270280290
30031032033034035036
03703803904004104204
30440450460470480490
50051052053054055056
05705805906006106206
30640650660670680690
70071072073074075076
07707807908008108208
30840850860870880890
90091092093094095096
0970980990100
)
13694289/134217728
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 72日 13時間 39分 10秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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