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

■ このスレッドは過去ログ倉庫に格納されています
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/
2019/06/09(日) 12:49:50.56ID:W8wtcQAp
1.出題者が複数の解釈のできる曖昧な書き方(1/2y)をした。
2.多くの回答者は曖昧さを理解した上で自然に取れる解釈(1/(2y))をした。
3.一部の回答者はプログラミングや数学的な記法の厳密な解釈として((1/2)y)であるべきとした。
4.3と3を煽る奴らのどうでもいい喧嘩←今ここ
2019/06/09(日) 12:50:30.57ID:fheL3UO0
お題をみてそれにあわせたコードをかくのがプログラミングだろ
お題は文章なり数式でプログラミングのルールにのっとる必要はないじゃん
表現が曖昧で複数にとれるようなものは出題者に確認するだけの話だと思うけど
2019/06/09(日) 13:03:13.41ID:Gi1Jt9cY
ゴミみたいな書き方する出題者がそもそも悪いでしょ
そういうヤツは除外しなきゃ
叩いて叩いて叩きまくればいいんだよ
2019/06/09(日) 13:08:30.37ID:SqGEiAZe
誤解を生まないように書けば良いのにな。
2019/06/09(日) 13:42:29.09ID:VJkUGCEU
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11 : 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
2019/06/09(日) 13:48:39.24ID:7ZWYIG6V
>>307
> 物理などの世界では並置優先ルールが有る。
そういうルールを知らなかった奴が引っ込みつかなくなってるだけでしょ
314デフォルトの名無しさん
垢版 |
2019/06/09(日) 14:28:03.28ID:zgQq0a06
>>308
> 2.多くの回答者は曖昧さを理解した上で自然に取れる解釈(1/(2y))をした。

多く?そもそも回答者がほとんどいないのでは?
それでもどちらかの解釈で回答した人は居るが、その回答はどちらの解釈が多かった?
315デフォルトの名無しさん
垢版 |
2019/06/09(日) 14:30:26.74ID:zgQq0a06
>>307
それならばそのようなルールで書くと断りを入れてから書くべきだな。
2019/06/09(日) 15:51:50.05ID:30kMM31D
>>313 並置優先ルールがない世界に、並置優先ルールが有るものだと言う前提で問題を出せば混乱するに決まってる。

そんな仕様書を書いたら即座に首だろ。

(唯一の救いはこの場合答えがあるから、確認することはできたが、確認せずに回答した人がいることも忘れてはならない)
プログラムの世界は、1点の曇りもあってはならない。
2019/06/09(日) 16:06:31.19ID:BPlIESHh
曖昧さも糞も無いだろ
答えまで書かれてたんだからそれで確認するのが正常な頭脳の持ち主
数学できない阿呆が噛み付いてるだけ
惨めだからもうやめときな
2019/06/09(日) 17:01:23.49ID:wmlwj4f3
単なる匿名掲示板で仕様書ガーとかw
バカにされて悔しいのはわかるけど流石にそろそろアキラメロン
319デフォルトの名無しさん
垢版 |
2019/06/09(日) 17:31:39.31ID:4d8N5HDz
激しい自演と正当化
2019/06/09(日) 17:55:17.43ID:KzhGDYKc
お題:Hello, World!を二進数で出力せよ
2019/06/09(日) 18:46:11.83ID:iI/aMWbb
>>320 Perl5

print map{sprintf'%b ',ord}split'','Hello, World!';

実行
~ $ perl 14_320.pl
1001000 1100101 1101100 1101100 1101111 101100 100000 1010111 1101111 1110010 1101100 1100100 100001
2019/06/09(日) 20:11:20.28ID:v5VOLpEn
お題
x=1から始めて一度のステップで
・xに1を足す
・xを2倍する
のいずれかを行うことができます。

正の整数Nが与えられるので、
x=Nに到達するのに必要な最小ステップ数を求めなさい。

N=34
=> 6 (1 -> 2 -> 4 -> 8 -> 16 -> 17 -> 34)

N=1
=> 0

N=10000
=> 17
2019/06/09(日) 20:18:23.01ID:SSgQq8CW
>>320
https://ideone.com/WlBY5N
括弧強い!
2019/06/09(日) 20:26:39.07ID:Gi1Jt9cY
>>322
シフト回数と1足した回数調べりゃいいんじゃないの

10000 (10) = 10011100010000 (2)
34 (10) = 100010 (2)
325デフォルトの名無しさん
垢版 |
2019/06/09(日) 20:58:31.04ID:8GuoKRFn
>>324
なるほどね!

VB
https://paiza.io/projects/RU2L7bgni8qwq8dSAWGlKA
2019/06/09(日) 21:12:31.05ID:jNBSWirB
>>325
桃白白改めミスターポポ改めピラフ改めピッコロさんには少し難しかったかな
2019/06/09(日) 21:18:39.26ID:OSjRKT39
>>320 Python

print( ['{:08b}'.format(ord(s) ) for s in 'Hello, World!' ] )

# ['01001000', '01100101', '01101100', '01101100', '01101111', '00101100', '00100000', '01010111', '01101111', '01110010', '01101100', '01100100', '00100001']
2019/06/09(日) 21:25:43.55ID:D5Urc2jv
>>322 Ruby
f=->n{n.digits(2).sum+n.bit_length-2}
p f[34] # => 6
p f[1] # => 0
p f[10000] # => 17
2019/06/09(日) 22:04:49.27ID:OSjRKT39
# >>322 Python 取り敢えずオーソドックスに

def step(n):
 for cnt , _ in enumerate( range(n ) ):
  if n == 1 : break
  n = n//2 if n%2 == 0 else n-1
 return cnt

print(step(34)) #6
print(step(10000)) #17
print(step(1)) #0
330デフォルトの名無しさん
垢版 |
2019/06/09(日) 22:08:37.43ID:8GuoKRFn
>>320
Java
https://paiza.io/projects/zA8YxDpbM7SdnR-ghzkqrA?language=java
2019/06/09(日) 22:49:04.65ID:OSjRKT39
>>322 Python >>328を真似して

f = lambda n: bin(n).count('1') + n.bit_length()-2

print(f(34)) #6
print(f(10000)) #17
print(f(1)) #0
2019/06/10(月) 10:26:34.05ID:Xpp6HhX6
>>322 Squeak Smalltalk

| fn |
fn := [:n | n bitCount + (n numberOfDigitsInBase: 2) - 2].
fn value: 34. "=> 6 "
fn value: 1. "=> 0 "
fn value: 10000. "=> 17 "
333デフォルトの名無しさん
垢版 |
2019/06/11(火) 00:54:15.70ID:aZcuYhl5
>>322
以下みたいに、すべてのステップ数を記録する、表を作っていくのか?

0 step : 1
1 : 2
2 : 3, 4
3 : 4, 6 | 5, 8 => 4, 5, 6, 8
4 : 5, 8 | 6, 10 | 7, 12 | 9, 16 => 5, 6, 7, 8, 9, 10, 12, 16
334333
垢版 |
2019/06/11(火) 02:58:39.60ID:aZcuYhl5
表を作らなくても、これで良いのか

1. 偶数なら、2で割る
2. 奇数なら、1を引いてから、1へ行く
2019/06/11(火) 09:40:44.16ID:9nwOHJjF
>>334 少し前すら読んでいないんだな。
その考え方で解いたのが。>>329

さらなるアイデアが、>>328 >>331 >>332
2019/06/11(火) 09:58:48.09ID:p0Xp2yNy
>>335
そいついつも人の話を聞かない奴だからスルーしとけばいいよ
337デフォルトの名無しさん
垢版 |
2019/06/11(火) 10:35:23.49ID:fys+McUU
最小ステップの証明は?
2019/06/11(火) 11:02:34.44ID:9nwOHJjF
>>337 1足す2が3であることを証明しろと言うのか?
まあいいや、最小ステップは2倍が最大回数になればよいだけの話。
339デフォルトの名無しさん
垢版 |
2019/06/12(水) 01:58:04.75ID:vCbGNUwk
>>322
kotlinスクリプト

>>> fun f(n: Int) = println("N=$n\n=> ${n.toString(2).map { it - '0' + 1 }.sum() - 2}")
>>> f(34)
N=34
=> 6
>>> f(1)
N=1
=> 0
>>> f(10000)
N=10000
=> 17
340デフォルトの名無しさん
垢版 |
2019/06/12(水) 02:51:35.08ID:vCbGNUwk
>>320
Kotlin

https://paiza.io/projects/w4z9UaR7KG9qv6Zmc7KE_Q

文字コードを2進数で出すのでは簡単過ぎるので・・・
341333
垢版 |
2019/06/12(水) 06:36:52.68ID:vWkgJgOw
>>322
Ruby で、

def f( n )
n_2 = n.to_s( 2 ) # 2進数

# 2進数の桁数 + 1の個数 - 2
n_2.length + n_2.count( "1" ) - 2
end

p [ 1, 34, 10_000 ].map { |n| f( n ) }
#=> [0, 6, 17]
342デフォルトの名無しさん
垢版 |
2019/06/12(水) 08:43:05.24ID:PSW3BzBK
>>235 Io
f := method(s,
((65+90)*26/2 - s sum)asCharacter
)
Io> f("BCDEFGHIJKLMNOPQRSTUVWXYZ")
==> "A"
2019/06/12(水) 09:55:38.00ID:6rY4ofim
何かと思ったら'A'から'Z'の総和か、その求め方は草
2019/06/12(水) 12:18:37.17ID:5tKK6KtT
お題:特定ドライブ配下の*.jpgファイルを削除し、そのjpgファイルが格納されていたフォルダも削除する
2019/06/12(水) 12:31:12.34ID:x67noP4p
質問スレへどうぞ。
346デフォルトの名無しさん
垢版 |
2019/06/12(水) 13:19:30.21ID:apqCeTcN
>>344
rm -rf /
2019/06/12(水) 15:25:36.12ID:5tKK6KtT
>>346
ありがとうございます。試してみます。
2019/06/12(水) 16:38:42.58ID:cGak2oax
面白いことになりそうだな、ワクワク
2019/06/12(水) 17:30:57.74ID:8XpDs8H3
最近のrmはそれじゃ実行できないとマジレス
2019/06/12(水) 17:36:01.92ID:cGak2oax
何にせよ良い子は、>>344 なんてお題は無視するように。
いろんな人間がいるのに、ファイルを削除とかディレクトリを削除とか言う問題は危険すぎる。
せめてrename で済ませるべき。

経験のある人間でも、テストでいきなり削除なんてしないぞ。 怖くてできるわけがない。

>>344 の問題は却下。
2019/06/12(水) 23:51:44.14ID:1cw0Fvdf
>>350
回答という形での投票行動がもっとも自然な見解なのでは?
2019/06/13(木) 00:08:48.60ID:NulSwGzN
Ruby には、FileUtils::DryRun みたいに、
実際には実行されなくて、どうなるかだけを見るモードがある

PowerShell の、-WhatIf もそう

>>346
は、あちこちで、rm -rf /
を書いてる荒らしだから、実行しないように!
353デフォルトの名無しさん
垢版 |
2019/06/13(木) 01:15:05.86ID:uE2MTK17
>>235
Kotlin

https://paiza.io/projects/e1tMs1B9gF4m-AWN-z-Gyg

Set に全て入れて'A'..'Z'のSetから引くやり方で足りない文字は全て出すようにした。
2019/06/13(木) 01:43:17.30ID:SaZXT9dZ
>>352 dry run はいろんなツールにもあるけど、良い子の皆がそんな事に気付く訳ないじゃないか。
危険なものには近づかないのが一番。

>>344 は、単にアホな問題というだけ。 無視虫蒸し
355デフォルトの名無しさん
垢版 |
2019/06/13(木) 01:44:02.67ID:uE2MTK17
>>344
Linux や UNIX 系 OS で良く使われる find コマンドの場合は次のようにできる。

find '対象のディレクトリ' \( -type f -name '*.dir' -o -type d \) -delete

-delete が使えない find の場合は

find '対象のディレクトリ' -depth -type f -name '*.jpg' -exec rm {} \; -o -type d -exec rmdir {} \;

但し *.jpg 以外のファイルがあったら削除されないのでそのディレクトリの削除はできない。

Windows の場合でも WSL の Linux 環境か、Cygwin環境等では同じやり方が使える。
素の Windows だと find.exe という同名の全く違う動きをするコマンドがあるので同じやり方はできない。
2019/06/13(木) 02:18:28.38ID:N68D4F9N
>>352
あれだけ周りから荒らし認定されても全く態度を改めないお前が、他人を荒らしだなどとよく言えるな。
2019/06/13(木) 07:56:16.47ID:C3vlVMf6
>>355
「jpegファイルが入っていたディレクトリの」削除になっていないですよ
358デフォルトの名無しさん
垢版 |
2019/06/13(木) 09:22:03.12ID:387c3JPq
>>322
Haskellでオーソドックスに。

main = mapM_ (print.f) [1,34,10000,0]

f = length.f'
where
f' n | n < 1 = error "Please n > 0 number."
f' 1 = []
f' n | even n = n:f' (n `div` 2)
f' n = n:f' (n - 1)

Out:

0
6
17

Program error: Please n > 0 number.
359デフォルトの名無しさん
垢版 |
2019/06/13(木) 09:23:37.93ID:387c3JPq
>>235
Haskellで正規表現知らん奴が。。。

import Data.List

main = mapM_ (print.f) ["BCDEFGHIJKLMNOPQRSTUVWXYZ", "YIZFOADLMWCRUTGSVQKJEHNBP"]

f = f' ['A'..'Z']
where
f' [x] _ = x
f' az (x:xs) = f' (delete x az) xs

Out:

'A'
'X'
360デフォルトの名無しさん
垢版 |
2019/06/13(木) 09:39:44.91ID:Br2wLKeL
>>357
ああ。入ってなくても空だと消されるか。
じゃあもう一捻り必要だな。
2019/06/13(木) 10:41:34.39ID:n1M8G6tH
良問ですな
362デフォルトの名無しさん
垢版 |
2019/06/13(木) 20:07:47.87ID:CBVgpEUY
お題
実行すると1から6までの数字のどれか1つを返すサイコロのプログラム
表示可能なら以下の文字列を使っても良い
⚀⚁⚂⚃⚄⚅
2019/06/13(木) 20:39:06.34ID:Kt3d2lSx
⚀ しか出さないものでもいいのけ?w
2019/06/13(木) 20:40:29.16ID:l9amdy+N
>>362 PHP
1
2019/06/13(木) 21:09:03.26ID:UDXJ1rkZ
>>362 javascript
'⚀'
2019/06/13(木) 21:18:28.25ID:Oox4dDUw
>>362 Ruby
p$.
2019/06/13(木) 21:29:38.97ID:yBwKh2Mt
>>362 Ruby
def dice
n = [0, 0, 0, 0, 0, 0]
1000000.times do n[(0...6).to_a.sample] += 1 end
p n
n.rindex(n.max) + 1
end
puts dice
2019/06/13(木) 21:38:38.55ID:FGFZkT/Z
お題: トランプのハートの1〜mとダイヤの1〜mの合計2m枚(1≦m≦9)を使って神経衰弱ゲームをするプレーヤーを実装し、n人のプレーヤーで神経衰弱ゲームをシミュレーションせよ。
カードは横一列に並べられる。最初は全て裏面でランダムな並びとする。
プレーヤーはカード番号の並びを文字列として読み取ることができる(裏面はゼロと見なす)。
369デフォルトの名無しさん
垢版 |
2019/06/13(木) 21:41:29.88ID:flist1Oo
>>362
Bash
https://paiza.io/projects/1Rp_TQc1ZZJTYLnPpC-kLg?language=bash
2019/06/13(木) 21:45:57.30ID:V6nODsfN
>>362 Pharo/Squeak Smalltalk

#('⚀' '⚁' '⚂' '⚃' '⚄' '⚅') atRandom. "=> '⚁' "
2019/06/13(木) 21:47:11.24ID:yBwKh2Mt
>>362
puts Time.now.sec % 6 + 1
2019/06/13(木) 22:27:44.15ID:FGFZkT/Z
>>368
出力例。
000000
プレーヤー1が開きました。
100200
不一致。閉じます。
000000
プレーヤー2が開きました。
110000
一致。プレーヤー2は計2枚獲得。
プレーヤー2が開きました。
110202
一致。プレーヤー2は計4枚獲得。
プレーヤー2が開きました。
113232
一致。プレーヤー2は計6枚獲得。
プレーヤー2の勝ち。
2019/06/13(木) 22:55:45.20ID:FGFZkT/Z
>>368
補足。文字列でも配列でもいい。
一枚ずつでも二枚ずつでもいい。
プレーヤーは
374デフォルトの名無しさん
垢版 |
2019/06/15(土) 12:26:21.79ID:n7CfuAo6
>>362
Kotlin スクリプト

Unicode の DIE FACE-1 〜 6 を使う場合はこれ。

println((0x2680 + kotlin.random.Random.nextInt(6)).toChar())

ASCII の数字(所謂半角の数字)にしたい場合はこれ。

println(('0' + kotlin.random.Random.nextInt(6)).toChar())

漢数字にしたければこれ。(これにサイコロの文字を割り当てても良い)

println("一二三四五六"[kotlin.random.Random.nextInt(6)])
2019/06/15(土) 12:27:27.56ID:n7CfuAo6
あ、ASCII の場合は何も考えずに1足してただ出力すれば良いだけだった。
まあいか。
2019/06/15(土) 14:29:00.37ID:54Zm/EIO
>>362 なんでそんなの出すんだよ。、問題になってないじゃないか。
解答 ⚄
2019/06/15(土) 16:05:02.20ID:BY4KYcRQ
ダイスってトライグラフじゃねーか!!
色々変換かけないと出せなくて苦しい。@C++。

ちなみにトライグラフの仕様は削除されました。
2019/06/15(土) 16:38:27.08ID:0Ytlw1xG
>>371
イカサマ賽じゃねーか
2019/06/15(土) 16:46:37.42ID:BY4KYcRQ
https://ideone.com/HU8OdB
>>362 C++
メモリ上に持つことはできてデバッガでも表示されるが、iostreamが認識なくて数字になる。
wchar_tのように組み込み型になってないみたい。@VC++

にわかにはここまでしかできない。Orz
380デフォルトの名無しさん
垢版 |
2019/06/16(日) 12:54:26.74ID:yFpqmFPd
>>362 R
cat(sample(1:6,1))
2019/06/16(日) 14:16:01.82ID:e+LWqLgl
>>362 Python

import random

for _ in range(10) : print(random.choice("⚀⚁⚂⚃⚄⚅"), end=' ')

# ⚅ ⚅ ⚁ ⚃ ⚀ ⚃ ⚁ ⚄ ⚂ ⚀
2019/06/16(日) 14:54:11.08ID:NJ2skO19
もふもふ
2019/06/16(日) 16:47:25.75ID:NJ2skO19
神経衰弱を作っていたが、VC2019が仮想関数をうまく扱ってくれない感じで大爆死。
2019/06/16(日) 16:54:34.40ID:NJ2skO19
https://dotup.org/uploda/dotup.org1873815.zip
ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。
2019/06/16(日) 17:02:05.88ID:e+LWqLgl
>>384 前の方からの VC++ の人かな?
なんでそんなに苦労してるのかが理解できない。
使った事ないから知らないけど。

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

張りなおすわ。
2019/06/16(日) 17:16:39.10ID:NJ2skO19
https://ideone.com/mqLP90
C++。開発中だが、頓挫したので挙げておく。
面倒なことしてるとは言うけど、プレイヤー分けたほうがそれっぽいかと思って分けてある。
あまり深い意味はないよ。
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 を求めよ
2019/06/16(日) 18:10:27.80ID:0YuYzKwS
>>387
仮想関数名前違うじゃん
2019/06/16(日) 18:59:11.36ID:NJ2skO19
https://ideone.com/StMJSA
>>神経衰弱。
一応、ランダムプレイヤーで終了まで走ったのでアップ。おしまい。
いい暇つぶしになった。

>>389
あぁ、別スレにも投げたんだが、即反応があって赤っ恥だよ。
直したところ、通ったので適当にデバッグが可能になった。
2019/06/16(日) 19:15:07.52ID:SF357sr+
NervousBreakdown って名前はユーモアでそうしてるだけ?
カードゲームの神経衰弱って、(一部の)日本人しか連想できなさそうな名前だけど
392デフォルトの名無しさん
垢版 |
2019/06/16(日) 19:15:53.29ID:EJ1uP6fE
俺は英語に詳しいんだ
2019/06/16(日) 19:17:19.26ID:NJ2skO19
>>391
グーグルで翻訳かけたらそれが出たので脳死で採用。
英語下手なんだ。
2019/06/16(日) 21:36:03.28ID:0GeuHYqO
ゲーム名とかは翻訳に掛けるんじゃなくてwikipediaとかで調べればいいと思うよw
395デフォルトの名無しさん
垢版 |
2019/06/16(日) 21:52:41.52ID:paRCIAHR
>>393
concentration または memory ではないかな。
2019/06/16(日) 22:00:19.21ID:NJ2skO19
>>395
ウィキペディアには、前者が書いてあった。
ローカルの直しておくかな。
イデオンは編集可能期限が過ぎてる。
2019/06/16(日) 22:15:01.42ID:gDHKfsB6
>>388
条件を追加します、a, b, c, d, e, f, g, h, i, j は互いに異なる正の整数です
試算では
x = 1412774811
になりました
2019/06/16(日) 22:24:36.49ID:81Mc3quK
数学の宿題解いてくださいスレ立てれば
2019/06/16(日) 23:19:03.49ID:gDHKfsB6
>>398
どうして、あるいはどういう点によって、これは宿題だと思ったのですか?
2019/06/16(日) 23:21:46.39ID:QegIZpn+
お題: 入力からC言語の整数リテラルもしくは浮動小数点数リテラルを読み取り、型の種類、実際の値の十進表現、そして型のバイトサイズを出力するプログラム。
入力が不正な場合はERRORと出力せよ。
前後の空白は読み飛ばすこと。
2019/06/17(月) 01:22:44.99ID:ikLTlFyV
https://ideone.com/tSqKkb
>>400
ベターC。今流行りのTrueパーサーというやつです、はい。
怒られるヤツです、はい。

ローレベルは苦手だ。
2019/06/17(月) 01:30:23.22ID:ikLTlFyV
>>397
数字が異なるモノであることをチェックするのが面倒だなぁ。字数多くて。
2019/06/17(月) 03:31:09.45ID:lxC/KfUO
>>388,397
俺も適当に回したもので1412774811が出たが、
それが正しいかどうか調べるのは21701までの総当たりで1412774811より小さい条件を満たすものが無けりゃええんよな?
21702^3 - 21701^3が1412865307になって1412774811を超えるけーの
2019/06/17(月) 14:19:11.19ID:ikLTlFyV
https://ideone.com/yqze0k
>>388 >>397
総当たり(予定)
概算書いてあるから簡単かと思ったら、リリースでも終わらないでござる。
よく考えたら、15ビットの10乗だったので死ぬわ。でござる。
2019/06/17(月) 14:44:54.54ID:ikLTlFyV
https://ideone.com/LROfLu
>>404 の おまけ。
ハッシュにしてみたら、面倒なチェック落とせるんじゃね?と思い、物故んでみたところ。
メモリ限界に達して死にました。南無。
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, 'の勝ち。'])
2019/06/17(月) 18:07:12.55ID:1OuEx0ms
>>397 >>388
お、なんか簡単に出来なさそうだから、やってみるかな。 たまたま記号計算の勉強中だから、やってみるがそっちの勉強の方が難しすぎて答えまでたどり着けるかどうかわからんが、良い練習問題になる。
2019/06/17(月) 18:27:18.50ID:00OaCjzA
お題: あなたは完全予約制の映画館の運営責任者だ。映画館にある10x10席について予約アプリを作ることになった。

仕様:
2桁の座席番号で空いてる席を予約できる。
「おまかせ」ボタンで席を決めてくれる。
席が決まったら、整理券を発券する。
「印刷」ボタンで予約状況を印刷できる。
「売上」ボタンで売上を計算できる。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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