X



プログラミングのお題スレ Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/
0385デフォルトの名無しさん
垢版 |
2019/06/16(日) 17:02:05.88ID:e+LWqLgl
>>384 前の方からの VC++ の人かな?
なんでそんなに苦労してるのかが理解できない。
使った事ないから知らないけど。

でも、貼るんだったらzip は辞めようよ。 怖くて開けない。 ソースだけなら動かなくてもideon に張り付ければ良いじゃん。
0386デフォルトの名無しさん
垢版 |
2019/06/16(日) 17:12:16.15ID:NJ2skO19
>>385
ソースが2分割されててまとめたほうがいいかと思ったけど。
ZIPって脆弱性あるの?

張りなおすわ。
0387デフォルトの名無しさん
垢版 |
2019/06/16(日) 17:16:39.10ID:NJ2skO19
https://ideone.com/mqLP90
C++。開発中だが、頓挫したので挙げておく。
面倒なことしてるとは言うけど、プレイヤー分けたほうがそれっぽいかと思って分けてある。
あまり深い意味はないよ。
0388 ◆QZaw55cn4c
垢版 |
2019/06/16(日) 17:58:27.24ID:gDHKfsB6
お題:
a, b, c, d, e, f, g, h, i, j, x は正の整数で
a^3 - b^3 = c^3 - d^3 = e^3 - f^3 = g^3 - h^3 = i^3 - j^3 = x
を満たす.
条件を満たす最小x と対応する a, b, c, d, e, f, g, h, i, j を求めよ
0390デフォルトの名無しさん
垢版 |
2019/06/16(日) 18:59:11.36ID:NJ2skO19
https://ideone.com/StMJSA
>>神経衰弱。
一応、ランダムプレイヤーで終了まで走ったのでアップ。おしまい。
いい暇つぶしになった。

>>389
あぁ、別スレにも投げたんだが、即反応があって赤っ恥だよ。
直したところ、通ったので適当にデバッグが可能になった。
0391デフォルトの名無しさん
垢版 |
2019/06/16(日) 19:15:07.52ID:SF357sr+
NervousBreakdown って名前はユーモアでそうしてるだけ?
カードゲームの神経衰弱って、(一部の)日本人しか連想できなさそうな名前だけど
0392デフォルトの名無しさん
垢版 |
2019/06/16(日) 19:15:53.29ID:EJ1uP6fE
俺は英語に詳しいんだ
0394デフォルトの名無しさん
垢版 |
2019/06/16(日) 21:36:03.28ID:0GeuHYqO
ゲーム名とかは翻訳に掛けるんじゃなくてwikipediaとかで調べればいいと思うよw
0395デフォルトの名無しさん
垢版 |
2019/06/16(日) 21:52:41.52ID:paRCIAHR
>>393
concentration または memory ではないかな。
0396デフォルトの名無しさん
垢版 |
2019/06/16(日) 22:00:19.21ID:NJ2skO19
>>395
ウィキペディアには、前者が書いてあった。
ローカルの直しておくかな。
イデオンは編集可能期限が過ぎてる。
0397 ◆QZaw55cn4c
垢版 |
2019/06/16(日) 22:15:01.42ID:gDHKfsB6
>>388
条件を追加します、a, b, c, d, e, f, g, h, i, j は互いに異なる正の整数です
試算では
x = 1412774811
になりました
0399 ◆QZaw55cn4c
垢版 |
2019/06/16(日) 23:19:03.49ID:gDHKfsB6
>>398
どうして、あるいはどういう点によって、これは宿題だと思ったのですか?
0400蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/06/16(日) 23:21:46.39ID:QegIZpn+
お題: 入力からC言語の整数リテラルもしくは浮動小数点数リテラルを読み取り、型の種類、実際の値の十進表現、そして型のバイトサイズを出力するプログラム。
入力が不正な場合はERRORと出力せよ。
前後の空白は読み飛ばすこと。
0403デフォルトの名無しさん
垢版 |
2019/06/17(月) 03:31:09.45ID:lxC/KfUO
>>388,397
俺も適当に回したもので1412774811が出たが、
それが正しいかどうか調べるのは21701までの総当たりで1412774811より小さい条件を満たすものが無けりゃええんよな?
21702^3 - 21701^3が1412865307になって1412774811を超えるけーの
0406デフォルトの名無しさん
垢版 |
2019/06/17(月) 17:11:31.48ID:DBfNM9nt
>>368 Squeak/Pharo Smalltalk

| m scores turn cards mask print |
m := 3.
scores := #(0 0).
cards := ((1 to: m), (1 to: m)) shuffled.
Transcript open; clear.
(print := [:val | Transcript cr; show: val]) value: cards * (mask := Array new: m*2 withAll: 0).
turn := 1.
[mask includes: 0] whileTrue: [
| player choice prevMask pair |
player := turn - 1 \\ 2 + 1.
choice := (mask negated + 1 * (1 to: m * 2) copyWithout: 0) shuffled first: 2.
prevMask := mask copy.
pair := choice collect: [:pos | mask at: pos put: 1. cards at: pos].
print value: 'プレーヤー', player asString, 'が開きました。'; value: cards * mask.
pair asSet size caseOf: {
[2] -> [print value: '不一致。閉じます。'; value: (mask := prevMask) * cards. turn := turn + 1].
[1] -> [print value: ('一致。プレーヤー{1}は計{2}枚獲得。' format: {player. scores at: player incrementBy: 2})]
}
].
print value: (scores asSet size = 1
ifTrue: ['引き分け。']
ifFalse: ['プレーヤー', (scores indexOf: scores max) asString, 'の勝ち。'])
0407デフォルトの名無しさん
垢版 |
2019/06/17(月) 18:07:12.55ID:1OuEx0ms
>>397 >>388
お、なんか簡単に出来なさそうだから、やってみるかな。 たまたま記号計算の勉強中だから、やってみるがそっちの勉強の方が難しすぎて答えまでたどり着けるかどうかわからんが、良い練習問題になる。
0408蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/06/17(月) 18:27:18.50ID:00OaCjzA
お題: あなたは完全予約制の映画館の運営責任者だ。映画館にある10x10席について予約アプリを作ることになった。

仕様:
2桁の座席番号で空いてる席を予約できる。
「おまかせ」ボタンで席を決めてくれる。
席が決まったら、整理券を発券する。
「印刷」ボタンで予約状況を印刷できる。
「売上」ボタンで売上を計算できる。
0409 ◆QZaw55cn4c
垢版 |
2019/06/17(月) 18:52:34.71ID:mDiaA7dQ
>>402
問題文が悪いようですね、ごめんなさい
言いたいことは
任意の正の整数 a, b, の三乗差 a^3 - b^3 で表される整数について、これが 5 通りの三乗差で表現できる最小の整数を求めよ
のつもりだったのです

4通りの三乗差で表現できる最小の数は
165^3-93^3=162^3-111^3=178^3-63^3=678^3-3^3=4118877
です。

>>403
最悪 (10進4桁)^3 でなんとかなると思っていましたが…
0410 ◆QZaw55cn4c
垢版 |
2019/06/17(月) 20:32:11.25ID:mDiaA7dQ
>>409
こちらで書いた試行プログラムにバグが見つかりました

4通りの三乗差で表現できる最小数は
165^3-72^3=162^3-51^3=178^3-115^3=678^3-675^3=4118877

20年ぶりにバグ出ししてしまった…てへぺろ
0411デフォルトの名無しさん
垢版 |
2019/06/17(月) 20:39:53.72ID:kwMyLS9e
いっっっつも問題修正してるじゃん。
雑なんだよ。センスも能力も無いのでは?
0412 ◆QZaw55cn4c
垢版 |
2019/06/17(月) 20:45:27.57ID:mDiaA7dQ
>>411
はい、能力もセンスもありませんので、こちらで胸を借りようかと(宿題スレもあわせて)10年くらい書き続けてこの様だったりするのです…
0414デフォルトの名無しさん
垢版 |
2019/06/17(月) 23:25:47.26ID:kD34CthS
>>362 なでしこ

(6 の 乱数) + 1 を 表示
0416デフォルトの名無しさん
垢版 |
2019/06/18(火) 06:13:34.61ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
0418デフォルトの名無しさん
垢版 |
2019/06/18(火) 14:41:48.42ID:C7xWA/+P
>>417 Squeak/Pharo Smalltalk

1000 / 999 squared asScaledDecimal: 300

"=> 0.001002003004005006007008009010
011012013014015016017018019020
<snip>
081082083084085086087088089090
091092093094095096097098099100s300 "
0419デフォルトの名無しさん
垢版 |
2019/06/18(火) 17:18:04.54ID:yt+j24gZ
>>417
Kotlin スクリプト
こういうのアリか?

println((1..100).joinToString())
0422デフォルトの名無しさん
垢版 |
2019/06/18(火) 23:24:46.27ID:iS/QjWZR
>>417 そもそもなんのためにこんな小汚いコーディングしてるのか理解不能。 >>417 の出題者の目的はなんだ?

Python for loop 無しというルールがわからん
これはループしてないだろ?

print( [i for i in range(1,101) ] )
0423デフォルトの名無しさん
垢版 |
2019/06/18(火) 23:31:47.74ID:uzZY1452
パズルとか頓智とかゴルフとかそういう系統でしょ
あなたにはおそらく今後5年間は理解できそうにないからわざわざ首を突っ込まなくていいんじゃない?
それとそのコードだとforを使ってることになるからダメだよ
「なんでダメなの?」と聞かれてもその手の遊びを本当に理解できない物体がいるのでコミュニケーション不可能だから答える必要はない
0425デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:18:45.19ID:SHnWP/2E
>>424
別にいいけど、受けないとわかってるギャグを言う時と同じくらい恥ずかしいと感じるんじゃないかな
0426デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:25:06.13ID:vbzhpePV
>>423 ま、いいけどさ、for という言葉が嫌いなら

>>417 Python

print(list(range(1,101)))
結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
0427デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:26:59.96ID:5w3Qflb9
rangeもダメです
0428デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:29:09.75ID:fEpvNKSm
>>397
2分46秒で答えが出た。このくらいで答えが出るはいいお題。
0429デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:29:30.92ID:vbzhpePV
>>427 何なら良いんだよ。まさかgoto 文以外はダメだとか言わないだろうな。
もう一度聞くが、for と range 以外なら良いのか?
0430デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:31:10.59ID:5w3Qflb9
>>429
じゃあrangeは良いです
0431デフォルトの名無しさん
垢版 |
2019/06/19(水) 01:07:24.29ID:vbzhpePV
>>417 >>427 >>419 kotlin と、>>421 commonLisp もダメなんだな?

とにかく自動生成される数列は許さないんだろ?
かつループも、再帰コールも、goto も使うなと。

やーめた。
0432デフォルトの名無しさん
垢版 |
2019/06/19(水) 01:35:17.48ID:mmqopiXL
>>417 Perl5

print "@{[1..100]}\n";


実行結果
$ perl 14_417.pl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
89 90 91 92 93 94 95 96 97 98 99 100
0434デフォルトの名無しさん
垢版 |
2019/06/19(水) 01:57:49.22ID:G/RPQnNp
言い訳するんやったら、ループじゃなくて、掛け算です。

と、言ってみる。
0435デフォルトの名無しさん
垢版 |
2019/06/19(水) 03:30:31.24ID:4D/OEXM7
>>431
ダメってことはないけど「お!」って思わせる意外さや面白さはないよね?

>>417は「およそ誰もが最初に思いつく方法(つまりループ等)以外で
1から100までを表示するコードをひねくり出してみてください」
という知性やユーモアを問うゲーム
0436デフォルトの名無しさん
垢版 |
2019/06/19(水) 05:20:19.54ID:NxDxxkQ7
>>417 R
cat(1:100)
0438デフォルトの名無しさん
垢版 |
2019/06/19(水) 10:47:05.36ID:WYELJAwQ
>>417
bash

echo {1..100}
0439デフォルトの名無しさん
垢版 |
2019/06/19(水) 11:28:35.01ID:AE1x6OvS
だから言ったじゃん
その手のユーモアを全く理解できない物体がいて、そいつらとはコミュニケーション不可能だ、って
わざわざ首を突っ込んできてクソ呼ばわり、害悪そのものだ

「理解不可能」「出題者の目的」「ルールが分からん」と三拍子揃ってるからコミュニケーション不可能の異質な生物だと思った方がいい
for rangeのを出して来て「ループしてないだろ?」と聞く時点でもはやコミュニケーション不可能、価値感が根本から違う
表面だけは人間の姿形をしてるが中身は全然違う物体で、そいつらとはコミュニケーションや意志疎通は出来ない
絶望的に話が合わないし価値感も全く違うので、人語を解するコミュニケーション不可能な人型生物、程度に見ておいた方がいい
0447デフォルトの名無しさん
垢版 |
2019/06/19(水) 22:25:22.23ID:n9mQOThz
>>388
a^n-b^nの因数分解を眺めていたらnが素数の時はa-bの項しかないようだ。そして項数が素数になっている。
0450デフォルトの名無しさん
垢版 |
2019/06/20(木) 02:37:37.28ID:oTe0B3jI
>>433
そのコードを見て1から100までを表示するプログラムだと
仕様を解釈するのは困難、
何のためにコードを書いてるのか意義が…
ドカタから脱却しなよ
0453デフォルトの名無しさん
垢版 |
2019/06/20(木) 03:22:25.03ID:BE85dc2p
>>417 PHP
1
0999999999988888888887777777777666666666655555555554444444444333333333322222222221111111111
0987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654354321
縦書きなので右から左へ。
0454デフォルトの名無しさん
垢版 |
2019/06/20(木) 08:15:15.24ID:eWAtuK2L
>>450
何のためにって、お題に対して面白い解き方をするコードを挙げているのだから、コードから仕様を解釈するのが困難だなんて指摘は的外れだろうよ
0456デフォルトの名無しさん
垢版 |
2019/06/20(木) 12:35:25.86ID:C9bRCGTz
>>417
スクリプトか、それに準ずる文法持ってる言語有利やな。

Haskell

main = print [1..100]

それは1ー100のリストやろ言うなら

main = mapM print [1..100]

とか改行無しなら

main = mapM (putStr.show) [1..100]

“,”で区切れデコ助野郎言うなら

main = (putStrLn.init.concat.map ((++ ",").show)) [1..100]
0459デフォルトの名無しさん
垢版 |
2019/06/20(木) 15:39:33.58ID:lLho4HyI
>>450
書いた人間だけど。
5個表示するのが5個あったら25個表示出来て、それを4個並べて100個!
完璧な作戦じゃないですか!!!!遂行するのが不可能ということもない。

5*5*4=100!!
0460デフォルトの名無しさん
垢版 |
2019/06/20(木) 16:32:25.26ID:Gh9YFRfh
>>417 はループ禁止とか言いながら、プログラムの外でループしてるだけのプログラムじゃないか。
プログラムにループかなくて繰り返しなんてあり得ない事がわからないバカなんだろうな。
0462デフォルトの名無しさん
垢版 |
2019/06/20(木) 16:43:22.80ID:xEuEtm2x
そういう意味ではソフトから見て最小単位であるアセンブラのブロック転送命令もマイクロコードでループしてるわね。
と言う訳で、解なしが正解かな?
0464デフォルトの名無しさん
垢版 |
2019/06/20(木) 17:20:12.64ID:Gh9YFRfh
こんなドカタの力仕事の訓練しても何にもならない、こんなので楽しめるなんて ドM だろ。
綺麗なプログラムは許さない。できるだけ小汚いプログラムしかダメ。 いかに小汚くプログラム出来るかのコンテストです。

>>463 屁理屈だな。map や range などは明らかなループじゃないだろ。 明らかなループってなんだ?
1行で書かれた綺麗なプログラムは許しませんと言えよ。
0466デフォルトの名無しさん
垢版 |
2019/06/20(木) 17:25:50.68ID:UeiaYI4k
mapだめって言ってるのが出題者どうかもわかんねえじゃん
あと解きたくないなら解きたくないでいいしほっとけばいい
曖昧だと思うなら質問すればいい
あと訓練するためのスレでもない
0471デフォルトの名無しさん
垢版 |
2019/06/20(木) 18:43:56.11ID:8yknygrc
>>457
あからさまの定義は何?
map内部でループ使ってるからダメってなら、printf内部でループ使ってたらダメって言ってるのと一緒じゃん。

Haskell

main = sequence_ [print x | x <- [1..100]]
0472デフォルトの名無しさん
垢版 |
2019/06/20(木) 18:48:20.30ID:PrZKlplW
>>471 1行で書けるものは嫌いなんだってさ。
[1..100] なんて大っ嫌いだってさ。 自動生成される数字は全て反則だって。
0473デフォルトの名無しさん
垢版 |
2019/06/20(木) 19:12:37.52ID:lLho4HyI
一応、どの辺がプリミティブかっていうのはあると思うぞ。
オブジェクト指向と手続き型と関数型で均質なプリミティブとはいったい・・・。

ごごご・・・...,,,
0475デフォルトの名無しさん
垢版 |
2019/06/20(木) 19:49:49.24ID:Gh9YFRfh
>>474 よう解らんけど、それらはループの塊らしいよ。
要はプログラムの中で完結してる解は、全てループが入ってるはず。
0477◆QZaw55cn4c
垢版 |
2019/06/20(木) 21:09:58.62ID:j5hWgvM1
>>428
試算プログラムでは40秒でした
個人的には ideone で実行結果まで出るくらいには高速化したいと思っています、ある程度高速化した上でのこの要求はかなり厳しいです
0478デフォルトの名無しさん
垢版 |
2019/06/20(木) 21:16:47.46ID:QhoGDCwl
>>475
ん、そんなことは誰もいっとらんとおもうけど?
shiroさんの解、良いじゃないか!

rangeはさておき、rangeをmapしてたらそれはもうループ処理だろう…
0479デフォルトの名無しさん
垢版 |
2019/06/20(木) 22:04:45.76ID:lLho4HyI
お題:犬作りましょう。(自由回答)
サンプル:https://ideone.com/jimp7B

人口無能・ドッグを作りましょう。
どこまで作りこむかはあなた次第。
なるべくビジュアライズして見せられるようにすると高得点です。

おひとついかがですか?
0480デフォルトの名無しさん
垢版 |
2019/06/20(木) 22:29:29.17ID:fMa85Kci
>>417 JavaScript
var n=1,t=setInterval(function(){console.log(n++);if(n>100){clearInterval(t);}},0);
>>451をJavaScriptで書き換えてみたけど明らかにループでしょこれ
0483デフォルトの名無しさん
垢版 |
2019/06/21(金) 00:14:32.42ID:5YMvPAfL
>>481 出題者がループの定義をしていないんだから解らんよ。
format もループといえばループだろ。 繰り返しが入ってるものは全てループ。
■ このスレッドは過去ログ倉庫に格納されています

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