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

■ このスレッドは過去ログ倉庫に格納されています
2019/11/17(日) 09:00:22.10ID:xqEdXdr6
プログラミングのお題スレです。

【出題と回答例】
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/
2019/11/28(木) 22:48:21.15ID:PoPpbfsh
1以外の時には1が出ない
5以上は2個以上に分けた方が大きい
4は2+2にしても同じ
6は2+2+2より3+3よ方が大きい

だから
a>=2の時には
2、3、4以外の値はあらわれず
2と4をあわせて6以上にはならないことがわかる

つまり、(順番を無視すれば)以下の形のみになる

3+3+...+3
3+3+...+3+2
3+3+...+3+2+2
3+3+...+3+4
36デフォルトの名無しさん
垢版 |
2019/11/29(金) 15:19:10.07ID:Ursk3Xfl
>>35
なぜそれで「だから」となるのかわからない。
2019/11/29(金) 17:42:19.99ID:YkvT9y9m
2、3、4以外の値はあらわれず
2と4をあわせて6以上にはならない

どっちがわからない?
2019/11/29(金) 17:48:24.95ID:YkvT9y9m
.... が正として、

.... * n * 1 < .... * (n+1)
.... * n < .... * floor(n/2) * ceil(n/2) @nが5以上
.... * 2 * 2 * 2 < .... * 3 * 3
.... * 4 = .... * 2 * 2
2019/11/29(金) 17:57:55.99ID:YkvT9y9m
一応、
加算と乗算は交換法則と結合法則が成り立つ
ってのも必要な条件です
40デフォルトの名無しさん
垢版 |
2019/11/29(金) 20:54:17.14ID:dycaAJcC
>>37
なぜ現れないとわかるのか?
2019/11/29(金) 21:03:35.14ID:M9vvD3Fp
>>40
38で書いてくれてる
5以上なら分割したほうが大きくなるから最終的な数字は5未満になる
42デフォルトの名無しさん
垢版 |
2019/11/29(金) 21:19:59.63ID:dycaAJcC
え?そうなの?わかりづらいな。見てもわからんよ。
2019/11/29(金) 21:29:43.92ID:57KUyJj8
なんでわからんのかがわからん
2019/11/29(金) 21:39:03.80ID:M9vvD3Fp
38の内容は
1行目で1が無意味なので1が出ない
2行目で5以上は分割したほうがでかくなる
3行目で2*2*2と3*3は同じ
4行目で2*2と4は同じ
を説明している
3行目4行目はパターンを列挙するために必要な内容
2019/11/30(土) 02:03:19.03ID:8/O2xSEo
5以上は分割した方が大きくなる事に関しては数学的に証明できてるってこと?
2019/11/30(土) 02:12:04.92ID:NRfKrTi3
したつもり en=aのような感じのあれ
2019/11/30(土) 02:28:06.73ID:Qe4NE6bn
n/2*n/2=n^2/4
だからn=4ならnと同じ、5以上なら分子が大きくなるからnより大きくなる
整数でに分割なので↑は偶数のときに限定
奇数のときは
(n-1)/2*(n+1)/2=(n^2-1)/4
だからnが5以上ならnより大きい
2019/11/30(土) 07:09:20.92ID:WebQyLi7
>>45
より大きくなる具体的な分け方を>>38に書いた

半分の、小数点以下切り上げ
半分の、小数点以下切り捨て
に分ける

これの方が大きい証明はとても簡単
(でもあまりエレガントではない)

もちろんこの分け方が最大というわけではないが
最大の分け方が5以上を含むと仮定すると、
より大きなものが存在するので矛盾
だから5以上は含まない
と言う事が出来る
2019/11/30(土) 07:13:05.91ID:WebQyLi7
最大となる分け方が存在する
ってのは有限性から明らか

つまり、
少なくとも1個の分け方が存在する
分け方は有限個しかない
から明らか
2019/11/30(土) 11:15:44.62ID:WebQyLi7
n ≧ 5 の時

floor(n/2) * ceil(n/2) - n
> { (n - 1) / 2 } * { n / 2 } - n
= n (n - 5) / 4
≧ 0

よって
n < floor(n/2) * ceil(n/2)
2019/11/30(土) 17:07:38.94ID:0h0IqWCg
これでわからんのなら数学じゃなくて日本語が不自由と断言してよいレベルだな
2019/11/30(土) 17:44:52.22ID:hV/U21TG
>>26
https://ideone.com/5DzbUt
C++。二進数最強伝説を信じて書いてみたよ。
数学出来ないからいつも通り適当に解いてる。。。
2019/11/30(土) 18:01:19.21ID:hV/U21TG
あ、間違ってら。
2019/11/30(土) 18:08:13.55ID:+iwJeZ8g
>>44
今更だけど3行目の説明間違えてた
2*2*2より3*3が大きい
なので結果的に解は3がたくさん並んで後ろで足りない分を2、もしくは4つける形になる
2019/11/30(土) 18:12:03.75ID:hV/U21TG
>>26
https://ideone.com/nqON70
C++。理屈が良くわからんけど、これが俺の限界。
2で欠けたほうが普通はいいんだけど、3の倍数は2引くと1余るのでそういうところでコスト取られるのでしょうかねぇ??
プリミティブ触ったほうが詰め込めるというのは普遍的にあると思うのだけどね。。。
もしかしたら、どっかの素数がスイートスポットになってて変な切り方しないとうまくないってこともあるかもしれない。
2019/11/30(土) 18:18:01.40ID:hV/U21TG
屁理屈だけど、2と3の組み合わせで表せる数字は多いということかなぁ??
2019/11/30(土) 18:18:52.60ID:hV/U21TG
2の倍数で且つ3の倍数の時は2を使うのがいいのか3を使うのがいいのか解らない。
2019/11/30(土) 18:25:54.08ID:hV/U21TG
>>55も若干間違ってるなぁ。
2と3の倍数を兼ねる数字はその数字単体によって切り方を変えないといけないんだと思う。
なんかゲーム的。
2019/11/30(土) 18:26:46.97ID:hV/U21TG
うーん。わけ わか らん 。。
2019/11/30(土) 18:43:15.79ID:hV/U21TG
https://ideone.com/U2TQGy
オマケ・鼻から悪魔かいな。。。
2019/11/30(土) 19:36:20.16ID:hV/U21TG
https://ideone.com/EmXq6G
うがー、おまけのオマケ。>>60はオレのバグだった。。。Orz
2019/11/30(土) 19:40:07.22ID:8+8CeiWg
>>35で終わり
はい次
2019/11/30(土) 19:54:08.36ID:hV/U21TG
>>62
なるほど。一応そこにはたどり着いたが、迷いの中だ。。。
64デフォルトの名無しさん
垢版 |
2019/11/30(土) 20:15:09.44ID:c0k0ajHF
>>26の出題者です。>>32で正解ですが、お題の指示通りに自然数の組み合わせを
出力してもらいたかったな。こういう綺麗な三角形ができるから。

1: [1]
2: [2]
3: [3]
4: [4]
4: [2, 2]
5: [2, 3]
6: [3, 3]
7: [3, 4]
7: [2, 2, 3]
8: [2, 3, 3]
9: [3, 3, 3]
10: [3, 3, 4]
10: [2, 2, 3, 3]
11: [2, 3, 3, 3]
12: [3, 3, 3, 3]
13: [3, 3, 3, 4]
13: [2, 2, 3, 3, 3]
14: [2, 3, 3, 3, 3]
15: [3, 3, 3, 3, 3]
16: [3, 3, 3, 3, 4]
16: [2, 2, 3, 3, 3, 3]
17: [2, 3, 3, 3, 3, 3]
18: [3, 3, 3, 3, 3, 3]
19: [3, 3, 3, 3, 3, 4]
19: [2, 2, 3, 3, 3, 3, 3]
20: [2, 3, 3, 3, 3, 3, 3]
21: [3, 3, 3, 3, 3, 3, 3]
22: [3, 3, 3, 3, 3, 3, 4]
(以下略)
65デフォルトの名無しさん
垢版 |
2019/11/30(土) 20:17:08.99ID:c0k0ajHF
1から9までの行頭の半角空白が消えちゃったな。
2019/11/30(土) 22:34:49.11ID:jbs9cucn
並び替えは無視?
67デフォルトの名無しさん
垢版 |
2019/12/01(日) 01:13:31.67ID:2OVww3gB
「ループを使わずに1から100を順に出力するコードは書けますか」
68デフォルトの名無しさん
垢版 |
2019/12/01(日) 01:22:27.49ID:ed/fyTUF
>>67
C
https://ideone.com/WWuamo
2019/12/01(日) 01:55:41.13ID:ztn4h68A
seq 100
70デフォルトの名無しさん
垢版 |
2019/12/01(日) 02:00:13.95ID:vkZvYyYJ
>>67
void Array.from({length:100}, (_, i) => {
console.log(i + 1);
});
とか
let counter = 0;
void function count() {
if (counter++ < 100) {
console.log(counter);
count();
}
}();
とか。js
2019/12/01(日) 06:08:36.21ID:jm8+wa+d
>>67 Ruby アイデアは前スレの誰かのパクリ

p 10**303 / 999**2
# => 10020030040050060070080090100110120130140150160170180190200210220230240250260270
28029030031032033034035036037038039040041042043044045046047048049050051052053054
05505605705805906006106206306406506606706806907007107207307407507607707807908008
1082083084085086087088089090091092093094095096097098099100
72デフォルトの名無しさん
垢版 |
2019/12/01(日) 09:04:24.78ID:lTEhnVlg
>>67 julia
println.(1:100)
2019/12/01(日) 17:27:50.28ID:mlX7masq
>>67 GNU Smalltalk

(1 to: 100) asArray display

https://ideone.com/Ec2oby
74デフォルトの名無しさん
垢版 |
2019/12/01(日) 18:17:04.86ID:54WkPiOY
>>67
Kotlin script

(1..100).forEach(::println)

今スマホから書いてて試せないんだが多分これでできる。
forEachはループだというならこれではダメだが(確かに中ではループしていると思う)。
2019/12/01(日) 18:51:37.83ID:Enyr5Fgf
>>67
PowerShell
1..100
76デフォルトの名無しさん
垢版 |
2019/12/01(日) 19:26:37.77ID:IoGKXgrY
>>71
これが日本のIT産業。
2019/12/01(日) 21:21:54.10ID:3oGVZyBI
お題: アルファベットの文字列の大文字と小文字の対応を反転させて表示しろ

in < Hello, World!
out > hELLO, wORLD!
2019/12/01(日) 21:48:29.67ID:5gm7V8wf
>>77 Ruby
puts 'Hello, World!'.swapcase # => hELLO, wORLD!
2019/12/01(日) 22:32:24.47ID:ztn4h68A
vim 的には ~ 一発
80デフォルトの名無しさん
垢版 |
2019/12/01(日) 23:10:18.94ID:sAJI+X1W
>>77 Common Lisp
(defun string-invert-case (string)
  (map 'string
       (lambda (c)
         (if (lower-case-p c)
             (char-upcase c)
             (char-downcase c)))
       string))

(write-line (string-invert-case "Hello, World!"))
81デフォルトの名無しさん
垢版 |
2019/12/02(月) 02:15:21.91ID:6Q7teWoI
>>77
tr コマンド

tr a-zA-Z A-Za-z

実際に実行するとこうなる。
https://paiza.io/projects/s3D3AA0kePkEOELdCTfFqw
82デフォルトの名無しさん
垢版 |
2019/12/02(月) 08:36:45.67ID:gdxsQr6e
>>67 PHP

<?=implode(range(1,100)," ")?>
2019/12/02(月) 15:32:31.35ID:APM7ABg4
お題: コンビニでタバコ(マルボロ)を買いたい
喫煙者がコンビニでタバコを購入して喫煙するまでの疑似コードを書け
詳細にかつ現実的で、エラー/例外に可能な限り対応していれば高得点とする

例:
person.walk_to(conbini)
if conbini.has(person) {
employee = conbini.get_current_employee()
tobacco = person.request_to(employee, "マルボロ")
person.smoke(tobacco)
}
84デフォルトの名無しさん
垢版 |
2019/12/02(月) 16:09:21.37ID:KwsHxcvC
ヤニカスはしね
2019/12/02(月) 17:33:22.44ID:54OAxivC
1,マルボロ吸いてー。
2,そうだコンビニへ行こう
3,財布を確認
4,どうやって行こうか
5,準備して家を出る
6,道中色々
7,コンビニ到着
8,コンビニ物色
9,予備で買わなければいいけないモノを示唆
10,カゴ買うモノを入れる
11,レジに行く
12,レジでタバコの番号を「N個クレ」という。
13,ホットスナックを示唆する
14,会計が出る
15,ポイントカードを出す
16,お金を払う
17,品物を受け取る
18,コンビニをでる
19,喫煙スポット検索
20,喫煙スポットへいく
21,道中色々
22,到着
23,タバコを開けて一本取り出す
24,ライターで火をつける
25,吸う
26ぷれじゅあぁあああああああああああ
2019/12/02(月) 17:39:36.73ID:54OAxivC
タバコに火をつける時は、咥えて軽くチューブを吸わないとつかないのDA!!
87デフォルトの名無しさん
垢版 |
2019/12/02(月) 21:58:19.49ID:gdxsQr6e
>>67 Pxthon

print(*range(1,101))
88デフォルトの名無しさん
垢版 |
2019/12/02(月) 22:05:34.98ID:gdxsQr6e
>>87
すいません Python です
2019/12/02(月) 22:07:19.69ID:/Z+nXxB0
>>76
どゆ意味?
2019/12/02(月) 22:09:31.28ID:az4xQt0G
示唆 ってナニ
91デフォルトの名無しさん
垢版 |
2019/12/03(火) 01:47:20.32ID:dBsSbed7
令和元年(2019年)8月25日(日)・(再)9月1日(日)
テーマ: 未来につながる力を学ぶ プログラミング教育
内容: 2020年度から小学校で始まる「プログラミング教育」。
一体どんな授業が行われるのか?番組では一足先に
プログラミングを取り入れた授業を行っている小学校を取材。
そこには生き生きと楽しく学ぶ子供たちの姿が。さらに、
実際に授業で使われている教材で、徳光さんがプログラミングに初挑戦!
今回は文部科学省プログラミング教育戦略マネージャーの中川哲さんと共に、
進化する学び、「プログラミング教育」に迫ります。
  https://www.gov-online.go.jp/pr/media/tv/shiritai/movie/20190825.html
動画は上のURLにある
92デフォルトの名無しさん
垢版 |
2019/12/03(火) 17:02:12.57ID:/pkZgP0J
>>67 jq

range(1;101)
2019/12/03(火) 19:25:09.89ID:mUaHu9IR
>>67
perl5
perl -e 'print join "\n", 1..100'
94デフォルトの名無しさん
垢版 |
2019/12/03(火) 20:10:35.90ID:aor79FgV
>>67
Prel5 ってまだ出てないよね?

print join(' ', 1..100) . "\n";
95デフォルトの名無しさん
垢版 |
2019/12/04(水) 09:18:44.13ID:MGV4EHAd
永久に出ないんじゃないかなPrel5なんて
2019/12/04(水) 12:00:08.84ID:aCqgWIP/
プレル・ふぁいぶ ならショウガナイ
97デフォルトの名無しさん
垢版 |
2019/12/04(水) 12:58:50.91ID:61i6ZWvj
print(isletter(c)
98デフォルトの名無しさん
垢版 |
2019/12/04(水) 13:07:17.16ID:61i6ZWvj
>>97
すいません。ブロックされて書き込みができないのでいろいろテスト中。
99デフォルトの名無しさん
垢版 |
2019/12/04(水) 17:21:06.21ID:0j0R5u4a
>>95>>96
打ちまつがえた。
そしてリロードしてなくて書いた直後に上にPerl5の書き込みが出現orz
2019/12/04(水) 22:22:08.38ID:gi4YpuTv
>>67 Perl5

print "@{[1..100]}\n";
2019/12/04(水) 23:37:13.25ID:h1My/is4
お題: 1~100までの数列の和を計算する
2019/12/04(水) 23:58:51.63ID:+9nEsnh/
>>101 Ruby

$><<101.times.sum # => 5050
103デフォルトの名無しさん
垢版 |
2019/12/05(木) 00:15:30.27ID:5juZ/T5v
>>101 julia

print(sum(1:100))
2019/12/05(木) 06:49:18.13ID:5PaJAEA2
return 100*101/2;
2019/12/05(木) 07:16:44.06ID:P/hgT5Y1
>>104
なぜ return 5050; でないのか小一時間ほど問い詰めたい
2019/12/05(木) 07:38:40.50ID:5PaJAEA2
自分で計算したくないから
2019/12/05(木) 07:40:32.01ID:8H7awdOo
最適化されるから一緒
意図がわからない
変数に置き換えて汎用化できない

一時間しゃべってみろよおい
2019/12/05(木) 07:43:45.56ID:5PaJAEA2
>>105に対する>>104の利点

(比較的)変数に置き換えやすい
計算式がわかる
自分で計算しなくて良い
2019/12/05(木) 07:46:36.80ID:5PaJAEA2
>>104 に対する >>105 の利点は何?
2019/12/05(木) 07:47:29.56ID:5PaJAEA2
5文字少ない

だけかな?
2019/12/05(木) 10:43:44.48ID:P/hgT5Y1
>>108
そういうことを言うならせめて
return 100*(100+1)/2;
って書けよ
2019/12/05(木) 13:14:45.51ID:2uRKrxFi
+1
は手計算の手間もないし見ればわかる
非常に利点が少なく
文字入力の手間が相対的に大きくなる
2019/12/05(木) 13:17:19.85ID:2uRKrxFi
どっちでも大差無いけど
2019/12/05(木) 13:21:01.46ID:2uRKrxFi
次は>>105の利点を語ってくれよ
小一時間
115デフォルトの名無しさん
垢版 |
2019/12/05(木) 14:27:21.66ID:esMh+bxM
>>101
Kotlin script

println((1..100).sum())
116デフォルトの名無しさん
垢版 |
2019/12/05(木) 14:31:48.40ID:esMh+bxM
ま、しかし、昔々算数で四角を描いて 100 * (100 + 1) / 2 で出来ると習ったような気がするので馬鹿正直に1から100まで足す必要はないな。
2019/12/05(木) 15:17:30.85ID:2uRKrxFi
工夫出来るところは工夫する
>>105は間違った工夫の例
2019/12/05(木) 18:32:49.00ID:27clmKvC
>>105が小一時間いったい何を問い詰めるつもりだったのか気になる
2019/12/05(木) 18:59:48.69ID:2GEt9xQA
おっすおら小一時間!
これからの議論におらわくわくすっぞ!
120デフォルトの名無しさん
垢版 |
2019/12/05(木) 20:44:21.68ID:lop64poz
>>101
Cの冗談
https://ideone.com/5VLdfV
2019/12/05(木) 21:05:41.72ID:jKYC5XJL
決まり文句のネタレスにえらく執着すんねw
2019/12/05(木) 21:06:33.94ID:5PaJAEA2
1個目の関数で値だけ返すほうが簡単じゃ?
2019/12/05(木) 21:35:53.74ID:P/hgT5Y1
>>118
お前のアホさとか、多分一時間じゃ足りないw
2019/12/05(木) 21:36:32.26ID:P/hgT5Y1
>>117
中途半端な工夫ならしないほうがマシ
2019/12/05(木) 21:55:42.81ID:5PaJAEA2
出て来れないと思ったのに
面の皮厚いね
2019/12/05(木) 22:09:17.41ID:P/hgT5Y1
>>111にレスできないアホがなにか言ってるなw
2019/12/05(木) 22:40:10.86ID:JeZRd2se
小一時間とかサムいフレーズでウケると思ってるからウザがられんだよ
2019/12/05(木) 23:12:12.53ID:2GEt9xQA
俺は別にうざがってないぞ
なに全員がうざがってるみたいなまとめ方するんだよ
2019/12/05(木) 23:23:32.05ID:d0dfL3uy
いいからおまえはどっかで2GEtしてこい
2019/12/05(木) 23:25:08.31ID:8H7awdOo
小一時間問い詰めるとか
具体的に想像すると陰湿極まりないパワハラが思い浮かぶ
2019/12/05(木) 23:35:21.46ID:LiE2fHBS
5ch初心者かよw
2019/12/05(木) 23:39:56.44ID:8H7awdOo
5chのプロかよ
133デフォルトの名無しさん
垢版 |
2019/12/05(木) 23:56:23.39ID:uvnytkqs
こんな煽り合い久々に見たw
2019/12/06(金) 00:22:47.16ID:N/M0C4CM
初心者じゃない奴が全員プロだとでも思ってるのかなぁw
まあとりあえずこれ読んどけ
https://netyougo.com/2ch/2535.html
2019/12/06(金) 01:10:21.76ID:Rsc9FZ2h
用語とか以前に粘着っぷりがやばい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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