プログラミングのお題スレです。
前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
プログラミングのお題スレ Part11
■ このスレッドは過去ログ倉庫に格納されています
2018/04/24(火) 20:45:14.49ID:ZY7R7Sru
557デフォルトの名無しさん
2018/06/29(金) 14:20:21.27ID:1XSLHtbi558デフォルトの名無しさん
2018/06/29(金) 21:50:25.20ID:mF6xIVde やれるものならやってくださいお願いします
559デフォルトの名無しさん
2018/06/30(土) 11:21:27.07ID:xZj/2lQZ ライブラリを入れ込んだver
https://ideone.com/6WfH7S
https://ideone.com/6WfH7S
560デフォルトの名無しさん
2018/06/30(土) 12:55:28.86ID:xZj/2lQZ これでこんなこともできる
https://chainflyer.b;itflyer.jp/Address/1MayukoMuraokaXXXXXXXXXXXXXXX5f8QC
https://chainflyer.b;itflyer.jp/Address/1MayukoMuraokaXXXXXXXXXXXXXXX5f8QC
561デフォルトの名無しさん
2018/07/03(火) 01:47:57.66ID:dVWXwhE2 >>543
io !(?<_><.?>)(.)\k<_>! <- '\1'
io !(?<_><.?>)(.)\k<_>! <- '\1'
562デフォルトの名無しさん
2018/07/03(火) 01:49:38.99ID:dVWXwhE2 >>548
d~-(n+1).round
d~-(n+1).round
563デフォルトの名無しさん
2018/07/03(火) 10:14:17.19ID:2Hrfam1D >>561>>562
それなんてエロゲ、じゃない、なんて言語?
それなんてエロゲ、じゃない、なんて言語?
564デフォルトの名無しさん
2018/07/04(水) 00:42:21.28ID:EM1Kat0+565デフォルトの名無しさん
2018/07/04(水) 21:23:39.48ID:N4SCi1OC 情報オリンピックの問題って組合せ最適化ばかりなのかなぁ?
ttps://www.ioi-jp.org/joi/problem_archive-light.html
ttps://www.ioi-jp.org/joi/problem_archive-light.html
566デフォルトの名無しさん
2018/07/04(水) 21:52:08.71ID:gFgZc5FG VXU
567デフォルトの名無しさん
2018/07/05(木) 16:25:31.76ID:AeL6VB/V 567
568デフォルトの名無しさん
2018/07/06(金) 02:46:13.60ID:uFkmqose 568
569デフォルトの名無しさん
2018/07/08(日) 08:40:53.67ID:PyVF6x+z 鈴木貫太郎
灘中 中学入試 整数問題
https://youtu.be/okKan0C_--E
問1
4つの異なる数字、1, 3, 9, x から、
異なる数字を取り出して並べる、3桁の整数は24個あり、それらの平均値は555 である時、x は何の数字か?
問2
5桁の36の倍数で、2, 3, 5 のどれもが、
いずれかの桁に、1回以上現れる整数のうち、最小のものを求めよ
答え、問1 : 7、問2 : 13,572
灘中 中学入試 整数問題
https://youtu.be/okKan0C_--E
問1
4つの異なる数字、1, 3, 9, x から、
異なる数字を取り出して並べる、3桁の整数は24個あり、それらの平均値は555 である時、x は何の数字か?
問2
5桁の36の倍数で、2, 3, 5 のどれもが、
いずれかの桁に、1回以上現れる整数のうち、最小のものを求めよ
答え、問1 : 7、問2 : 13,572
570デフォルトの名無しさん
2018/07/08(日) 09:46:25.71ID:zc7zM8II 瞬殺
灘中入れるかな?
灘中入れるかな?
571デフォルトの名無しさん
2018/07/09(月) 14:21:35.87ID:RPo/jFjY 灘中の問題は、以下の性質を使うものが多い
2 の倍数は、下1桁が偶数
4 の倍数は、下2桁が4の倍数
3 の倍数は、各桁の数字を足したものが、3の倍数
9 の倍数は、各桁の数字を足したものが、9の倍数
だから数字を因数分解して、これらに該当するかどうかで、問題を判別できる
2 の倍数は、下1桁が偶数
4 の倍数は、下2桁が4の倍数
3 の倍数は、各桁の数字を足したものが、3の倍数
9 の倍数は、各桁の数字を足したものが、9の倍数
だから数字を因数分解して、これらに該当するかどうかで、問題を判別できる
572デフォルトの名無しさん
2018/07/09(月) 16:13:07.36ID:OMEWQnbN いただきぃ!!
https://goo.gl/uAcy7u
https://goo.gl/uAcy7u
573569
2018/07/11(水) 18:04:55.63ID:I//Y0R5O >>569
問1 を、Ruby で作った。
問2 は、難しくて作れない
nums_3 = [1, 3, 9]
nums_4 = nums_3 + [0]
(0..9).each do |num|
next if nums_3.include? num # 含まれていれば
nums_4[-1] = num
sum = 0
nums_4.permutation(3) { |a, b, c| sum += (a*100 + b*10 + c) }
puts num if sum == 24 * 555 #=> 7
end
問1 を、Ruby で作った。
問2 は、難しくて作れない
nums_3 = [1, 3, 9]
nums_4 = nums_3 + [0]
(0..9).each do |num|
next if nums_3.include? num # 含まれていれば
nums_4[-1] = num
sum = 0
nums_4.permutation(3) { |a, b, c| sum += (a*100 + b*10 + c) }
puts num if sum == 24 * 555 #=> 7
end
574デフォルトの名無しさん
2018/07/11(水) 18:38:10.32ID:XuPZzMyT じゃあ問2を酷いコードで
>>569 Java
java.util.stream.IntStream.range(10000, 100000).filter(i -> i % 36 == 0).mapToObj(Integer::toString).filter(s -> s.matches("(?=.*2)(?=.*3)(?=.*5).*")).findFirst().ifPresent(System.out::println);
>>569 Java
java.util.stream.IntStream.range(10000, 100000).filter(i -> i % 36 == 0).mapToObj(Integer::toString).filter(s -> s.matches("(?=.*2)(?=.*3)(?=.*5).*")).findFirst().ifPresent(System.out::println);
575デフォルトの名無しさん
2018/07/11(水) 21:04:09.51ID:9T5mO0zj コンピュータを使ってブルートフォースで答えを探す方法はわかってもコンピュータを使わずに数学的に解く方法が思い浮かばない。
しかしそれを小学生が解いて入学するという現実。orz
しかしそれを小学生が解いて入学するという現実。orz
576デフォルトの名無しさん
2018/07/11(水) 23:18:42.60ID:83LTUfxJ >>569 Squeak/Pharo Smalltalk
"問1"
((0 to: 9) copyWithoutAll: #(1 3 9)) detect: [:n |
| set |
set := Set new.
'139', n asString combinations: 3 atATimeDo: [:comb |
comb permutationsDo: [:perm |
perm first ~= $0 ifTrue: [set add: (perm as: String) asInteger]
]
].
set size = 24 and: [set average = 555]
] "=> 7 "
"問2"
((10000 roundTo: 36) to: 99999 by: 36) detect: [:n | n asString includesAllOf: '235'] "=> 13572 "
"問1"
((0 to: 9) copyWithoutAll: #(1 3 9)) detect: [:n |
| set |
set := Set new.
'139', n asString combinations: 3 atATimeDo: [:comb |
comb permutationsDo: [:perm |
perm first ~= $0 ifTrue: [set add: (perm as: String) asInteger]
]
].
set size = 24 and: [set average = 555]
] "=> 7 "
"問2"
((10000 roundTo: 36) to: 99999 by: 36) detect: [:n | n asString includesAllOf: '235'] "=> 13572 "
577デフォルトの名無しさん
2018/07/12(木) 00:00:29.98ID:gpOSM7dO このスレprologニキっていないの?
手続き型以外の解法見たい
あとJニキ最近見なくて寂しい
手続き型以外の解法見たい
あとJニキ最近見なくて寂しい
578デフォルトの名無しさん
2018/07/12(木) 01:08:11.22ID:gc75XwOp >>569
問1
4種の数字から作られる24個の数字の平均が555
→合計が1110になる12組の数字にまとめられる→どの桁も合計が10になる2組の数字の組合せで構成される
→1,3,9,xのうち1と9を除外した3と「足して10になる数」→x=7
問2
36の倍数→4の倍数かつ9の倍数
→5桁の数字は9の倍数なので各桁の数字の合計が9の倍数になる
→5桁の数字には「2,3,5」が少なくとも1つ以上含まれているので、この時点で各桁の数字の合計は10より多くなる。
→各桁の数字の合計は9ではないので、18とする。残り2桁の数字の合計は8。この中で一番小さな数が作れるのは1,7。
→「1,2,3,5,7」の組み合わせの内、下2桁が4の倍数で最も小さい数は13572となる。
かなり乱暴に書くとこんな感じで解けば良いのかな?
しかし、これをプログラムで表現しようとするのはかなり骨っぽい(数を1桁ずつ分解するのに余計な手間がかかりそう)。
それよりも総当たりで解いた方がコンピュータ的には手っ取り早い気がしますね。
問1
4種の数字から作られる24個の数字の平均が555
→合計が1110になる12組の数字にまとめられる→どの桁も合計が10になる2組の数字の組合せで構成される
→1,3,9,xのうち1と9を除外した3と「足して10になる数」→x=7
問2
36の倍数→4の倍数かつ9の倍数
→5桁の数字は9の倍数なので各桁の数字の合計が9の倍数になる
→5桁の数字には「2,3,5」が少なくとも1つ以上含まれているので、この時点で各桁の数字の合計は10より多くなる。
→各桁の数字の合計は9ではないので、18とする。残り2桁の数字の合計は8。この中で一番小さな数が作れるのは1,7。
→「1,2,3,5,7」の組み合わせの内、下2桁が4の倍数で最も小さい数は13572となる。
かなり乱暴に書くとこんな感じで解けば良いのかな?
しかし、これをプログラムで表現しようとするのはかなり骨っぽい(数を1桁ずつ分解するのに余計な手間がかかりそう)。
それよりも総当たりで解いた方がコンピュータ的には手っ取り早い気がしますね。
579デフォルトの名無しさん
2018/07/12(木) 01:52:58.79ID:2elGYyrL >>578
最初の「合計が1110になる12組の数字にまとめられる」が何故なのかわからん。
最初の「合計が1110になる12組の数字にまとめられる」が何故なのかわからん。
580578
2018/07/12(木) 07:07:01.02ID:gc75XwOp >>579
作成される数字を順列とみなした時に
「ABCD ABDC ACBD ACDB ...」を逆順にした
「DCBA DCAB DBCA DBAC ...」という列を組み合わせたら…なんて考えてたんですが、後で見ると意味不明でした。申し訳ない。
問1について、それよりも単純な方法がありました。
xがどの桁で使用されてるかで場合分けし、それぞれを合計する
x不使用:139 193 319 391 913 931 :2886
xが1の桁:13x 19x 31x 39x 91x 93x :2860 + 6x
xが10の桁:1x3 1x9 3x1 3x9 9x1 9x3 :2626 + 60x
xが100の桁:x13 x19 x31 x39 x91 x93 :286 + 600x
上記をすべて合計:8658 + 666x
24個の数字の平均が555だから合計は 555*24=13320
8658+666x=13320
666x=4662 x=7
若干手続きはコンピュータ向けと言えなくもないですが、やはりプログラミングするには手間ですね。
作成される数字を順列とみなした時に
「ABCD ABDC ACBD ACDB ...」を逆順にした
「DCBA DCAB DBCA DBAC ...」という列を組み合わせたら…なんて考えてたんですが、後で見ると意味不明でした。申し訳ない。
問1について、それよりも単純な方法がありました。
xがどの桁で使用されてるかで場合分けし、それぞれを合計する
x不使用:139 193 319 391 913 931 :2886
xが1の桁:13x 19x 31x 39x 91x 93x :2860 + 6x
xが10の桁:1x3 1x9 3x1 3x9 9x1 9x3 :2626 + 60x
xが100の桁:x13 x19 x31 x39 x91 x93 :286 + 600x
上記をすべて合計:8658 + 666x
24個の数字の平均が555だから合計は 555*24=13320
8658+666x=13320
666x=4662 x=7
若干手続きはコンピュータ向けと言えなくもないですが、やはりプログラミングするには手間ですね。
581デフォルトの名無しさん
2018/07/12(木) 07:41:52.96ID:KB59nVpm 問1
24=4! なので4個の数字はすべて異なる
24通りを並べると各桁1, 3, 9, x が同じ回数出現する
これらの平均が555なので
1, 3, 9, x の平均が5とわかる
1, 9の平均が5なので3, xの平均が5となる7が答え
問2
最小を求めるので10000の位が1になる数を考える
(考えて、なければ他を考える)
各桁の合計が9の倍数から1, 2, 3, 5, 7とわかる
この中で偶数は2だけなのでこれが1の位
1の位が4で割りきれないので10の位は奇数であれば4の倍数
つまり10の位が3, 5, 7のどれでも36の倍数になる
3, 5, 7を小さい順にならべて13572が答え
24=4! なので4個の数字はすべて異なる
24通りを並べると各桁1, 3, 9, x が同じ回数出現する
これらの平均が555なので
1, 3, 9, x の平均が5とわかる
1, 9の平均が5なので3, xの平均が5となる7が答え
問2
最小を求めるので10000の位が1になる数を考える
(考えて、なければ他を考える)
各桁の合計が9の倍数から1, 2, 3, 5, 7とわかる
この中で偶数は2だけなのでこれが1の位
1の位が4で割りきれないので10の位は奇数であれば4の倍数
つまり10の位が3, 5, 7のどれでも36の倍数になる
3, 5, 7を小さい順にならべて13572が答え
582デフォルトの名無しさん
2018/07/12(木) 07:47:08.70ID:KB59nVpm 以上が東大数学科卒の考え方
両方で20秒くらい
両方で20秒くらい
583デフォルトの名無しさん
2018/07/12(木) 09:03:09.86ID:ax9CLQnp 問1
x = 111 * (24 * 5 - 6 * (1 + 3 + 9) ) / (6 * 111)
= 7
問2
5つの数を A, B, 2, 3, 5 とすると
A + B + (2 + 3 + 5) = 0 mod 9 <=> A + B + 1 = 0 mod 9
かつ末尾2桁が4の倍数になる
従って一番左の桁は1で確定し {A, B} = {1, 7}も確定
2が末尾に来ることは確定していてかつそのとき任意の並びで4の倍数になるため13572が題意を満たす数
以上が東大理学部物理学科卒の考え方
両方合わせて40秒くらい
x = 111 * (24 * 5 - 6 * (1 + 3 + 9) ) / (6 * 111)
= 7
問2
5つの数を A, B, 2, 3, 5 とすると
A + B + (2 + 3 + 5) = 0 mod 9 <=> A + B + 1 = 0 mod 9
かつ末尾2桁が4の倍数になる
従って一番左の桁は1で確定し {A, B} = {1, 7}も確定
2が末尾に来ることは確定していてかつそのとき任意の並びで4の倍数になるため13572が題意を満たす数
以上が東大理学部物理学科卒の考え方
両方合わせて40秒くらい
584デフォルトの名無しさん
2018/07/12(木) 09:17:45.00ID:kqFyQCjZ やっぱ紙と鉛筆で解く問題だよね。
最初から解析的に解けない問題出して欲しい。
最初から解析的に解けない問題出して欲しい。
585デフォルトの名無しさん
2018/07/12(木) 10:06:30.92ID:nIR9VMIg >>580
小学生が解く場合に途中で 8658+666x=13320 のような数学的表現で考えるのはありなのか?
回答者個人にそれができるかできないかの問題ではなく小学校が教えている範囲にそれが含まれるのかの問題ね。
もし含まれていないとしたら他の方法で解く事が可能という事になる。
小学生が解く場合に途中で 8658+666x=13320 のような数学的表現で考えるのはありなのか?
回答者個人にそれができるかできないかの問題ではなく小学校が教えている範囲にそれが含まれるのかの問題ね。
もし含まれていないとしたら他の方法で解く事が可能という事になる。
586デフォルトの名無しさん
2018/07/12(木) 12:00:25.05ID:hJKe2JzT587デフォルトの名無しさん
2018/07/12(木) 14:03:35.77ID:Jbx8ub/k 36の倍数は、4, 9 の倍数で、それらの特徴を利用できるかどうかだけ
捨て問題だろ。
考えたり解いたりすると、2問で10分使うから、落ちるだけ。
即座に無視しないといけない。
新パターンの問題は、時間を使わせるから無視しろっていう、受験テクニック
灘中高は、100%塾の生徒しか受からない。
灘用の受験技術だから、その授業を受けていないと受からない
文系が東大工学部に入る、受験技術のマンガ「ドラゴン桜」と同じ。
賢い者ではなく、塾代という貧富の格差で決まる
大型資格もそう。
TAC, 大原などに行ってないと受からない
貧富の格差、貧富の遺伝
捨て問題だろ。
考えたり解いたりすると、2問で10分使うから、落ちるだけ。
即座に無視しないといけない。
新パターンの問題は、時間を使わせるから無視しろっていう、受験テクニック
灘中高は、100%塾の生徒しか受からない。
灘用の受験技術だから、その授業を受けていないと受からない
文系が東大工学部に入る、受験技術のマンガ「ドラゴン桜」と同じ。
賢い者ではなく、塾代という貧富の格差で決まる
大型資格もそう。
TAC, 大原などに行ってないと受からない
貧富の格差、貧富の遺伝
588デフォルトの名無しさん
2018/07/12(木) 17:25:23.25ID:Tq83uIBL >>587だと灘の問題全て捨て問題になりそう
589デフォルトの名無しさん
2018/07/12(木) 18:14:20.08ID:ax9CLQnp >>586
ものすごくかみ砕いて言うと
A + B + 1 = 0 mod 9 (A, B ∈ {0, 1, ..., 9}) を満たす A, B に関して
任意のAに対して対応するBが少なくとも1つは存在することは自明なので
A = 1 として 1XX32 という数を考えればこの数は36の倍数でありかつ 2, 3, 5 を各桁に含む
(XXには A = 1 に対応する B の値の内の1つと 5 が入る)
解は10000以上1XX32以下の整数なので左端の桁は1であると確定する
ものすごくかみ砕いて言うと
A + B + 1 = 0 mod 9 (A, B ∈ {0, 1, ..., 9}) を満たす A, B に関して
任意のAに対して対応するBが少なくとも1つは存在することは自明なので
A = 1 として 1XX32 という数を考えればこの数は36の倍数でありかつ 2, 3, 5 を各桁に含む
(XXには A = 1 に対応する B の値の内の1つと 5 が入る)
解は10000以上1XX32以下の整数なので左端の桁は1であると確定する
590デフォルトの名無しさん
2018/07/12(木) 19:16:30.21ID:uRWdzVZq えらい省略したねえ
591デフォルトの名無しさん
2018/07/13(金) 02:14:22.89ID:brGVybd4592デフォルトの名無しさん
2018/07/13(金) 02:29:27.10ID:brGVybd4593デフォルトの名無しさん
2018/07/13(金) 07:35:11.88ID:isSSIGbX >>569
Rubyで問1。
def odai_11_569_1(a_ary, a_avg)
(a_ary.size + 1) * (a_avg / 111) - a_ary.inject(:+)
end
w_ary = [1, 3, 9]
w_avg = 555
p odai_11_569_1(w_ary, w_avg)
結果:7
Rubyで問1。
def odai_11_569_1(a_ary, a_avg)
(a_ary.size + 1) * (a_avg / 111) - a_ary.inject(:+)
end
w_ary = [1, 3, 9]
w_avg = 555
p odai_11_569_1(w_ary, w_avg)
結果:7
594デフォルトの名無しさん
2018/07/13(金) 08:03:43.23ID:isSSIGbX >>569
Rubyで問2。
def odai_11_569_2(a_ary, a_base, a_col)
a_ary.map!(&:to_s)
w = 10**(a_col - 1)
w = w / a_base - (w % a_base > 0 ? 0 : 1)
w *= a_base
loop do
w += a_base
next if (a_ary - w.to_s.split('')) != []
return w
end
end
a_ary = [2, 3, 5]
a_base = 36
a_col = 5
p odai_11_569_2(a_ary, a_base, a_col)
# 結果:13572
Rubyで問2。
def odai_11_569_2(a_ary, a_base, a_col)
a_ary.map!(&:to_s)
w = 10**(a_col - 1)
w = w / a_base - (w % a_base > 0 ? 0 : 1)
w *= a_base
loop do
w += a_base
next if (a_ary - w.to_s.split('')) != []
return w
end
end
a_ary = [2, 3, 5]
a_base = 36
a_col = 5
p odai_11_569_2(a_ary, a_base, a_col)
# 結果:13572
595デフォルトの名無しさん
2018/07/13(金) 08:58:11.48ID:IlVyAeDp rubyならさくっとワンライナーで
p (10000-10000%-36).step(10**5,36).find{|i|(i.digits&[2,3,5])[2]}
#=> 13572
p (10000-10000%-36).step(10**5,36).find{|i|(i.digits&[2,3,5])[2]}
#=> 13572
596569
2018/07/13(金) 16:26:20.44ID:oo2UOY38 >>569
Rubyで、問2
str_ary = %w(2 3 5)
(10_000...100_000).select do |num|
next unless num % 36 == 0
# 2, 3, 5 をすべて含む
if str_ary.all? { |s| num.to_s.include? s }
puts num #=> 13,572
break
end
end
Rubyで、問2
str_ary = %w(2 3 5)
(10_000...100_000).select do |num|
next unless num % 36 == 0
# 2, 3, 5 をすべて含む
if str_ary.all? { |s| num.to_s.include? s }
puts num #=> 13,572
break
end
end
597デフォルトの名無しさん
2018/07/14(土) 05:33:19.05ID:jpR0mrXc598デフォルトの名無しさん
2018/07/14(土) 13:47:04.74ID:3J9Q4qmi そろそろ新しいお題を。
既出なら申し訳ない。
お題:
再帰・スタックを使用しないマージソートを実装し、整数型のデータn個の配列をソートするプログラムを作成しなさい。
データの個数は不定とし、特定の条件を満たす個数の配列にのみ有効なプログラムは不可とします。
データの内容はランダムとします。乱数の生成法はお任せします。
出来ればソート完了後に配列(の一部)を表示する、正しくソート出来たかチェックする処理を追加してみて下さい。
追加お題:
上記のマージソート処理の際、作業領域を元のデータの半分の量しか確保せずにソートを実行するプログラムを作成しなさい。
既出なら申し訳ない。
お題:
再帰・スタックを使用しないマージソートを実装し、整数型のデータn個の配列をソートするプログラムを作成しなさい。
データの個数は不定とし、特定の条件を満たす個数の配列にのみ有効なプログラムは不可とします。
データの内容はランダムとします。乱数の生成法はお任せします。
出来ればソート完了後に配列(の一部)を表示する、正しくソート出来たかチェックする処理を追加してみて下さい。
追加お題:
上記のマージソート処理の際、作業領域を元のデータの半分の量しか確保せずにソートを実行するプログラムを作成しなさい。
599デフォルトの名無しさん
2018/07/14(土) 15:13:06.98ID:QznZ4U7X 1から100までの数字から4つを取り出したそれぞれに番号を振る速い方法ありますか?
メモリもあまり使わずに
1 2 3 4 -> 1
1 2 3 5 -> 2
1 2 3 6 -> 3
96 97 98 99 -> 3921221
96 97 98 100 -> 3921222
96 97 99 100 -> 3921223
96 98 99 100 -> 3921224
97 98 99 100 -> 3921225
メモリもあまり使わずに
1 2 3 4 -> 1
1 2 3 5 -> 2
1 2 3 6 -> 3
96 97 98 99 -> 3921221
96 97 98 100 -> 3921222
96 97 99 100 -> 3921223
96 98 99 100 -> 3921224
97 98 99 100 -> 3921225
600デフォルトの名無しさん
2018/07/14(土) 15:22:22.12ID:wSvgACAH >>598
残念ながら余り良い問題じゃない希ガス
残念ながら余り良い問題じゃない希ガス
601デフォルトの名無しさん
2018/07/14(土) 15:57:46.49ID:ETmmav0O スタック不可だとスタック操作が隠蔽されてる高級言語はほぼ使用出来ない
無理やりCやC++でやるとしてもローカル変数や関数呼び出しを殆ど封印しなければならない
これを良い問題と見るか悪い問題と見るかは分からないが俺はやる気が出ない
無理やりCやC++でやるとしてもローカル変数や関数呼び出しを殆ど封印しなければならない
これを良い問題と見るか悪い問題と見るかは分からないが俺はやる気が出ない
602デフォルトの名無しさん
2018/07/14(土) 16:00:11.93ID:4RxIMQwD603デフォルトの名無しさん
2018/07/14(土) 17:25:12.68ID:btN22RWl お題:Hello, World!を出力せよ。ただし出力系の関数を使ってはならない。
604デフォルトの名無しさん
2018/07/14(土) 18:41:01.92ID:3J9Q4qmi605デフォルトの名無しさん
2018/07/14(土) 20:04:39.81ID:wFLY+TGv お題: マップの広さと部屋の個数及び部屋間の繋がりが与えられた時、ダンジョンを作成せよ
・ダンジョンは部屋と通路からなる
・部屋は少なくとも3x4の大きさを持つ
・通路の幅は1
・部屋同士は接しない
・マップ外に部屋や通路は無い
一応、想定としては標準出力に'#'と'.'で表示を考えてる
生成方法は自由だからゲーム的面白さのあるマップ作っても良い
・ダンジョンは部屋と通路からなる
・部屋は少なくとも3x4の大きさを持つ
・通路の幅は1
・部屋同士は接しない
・マップ外に部屋や通路は無い
一応、想定としては標準出力に'#'と'.'で表示を考えてる
生成方法は自由だからゲーム的面白さのあるマップ作っても良い
606デフォルトの名無しさん
2018/07/14(土) 20:21:35.37ID:xV7EJA5w 解釈がいろいろあり過ぎて
コードに対して仕様の説明文が必要になるぞ
コードに対して仕様の説明文が必要になるぞ
608デフォルトの名無しさん
2018/07/14(土) 22:17:39.11ID:7G4bCYRL >>603
出力せよといいつつ、出力系は使うなとは、まるで一休さんのような
出力せよといいつつ、出力系は使うなとは、まるで一休さんのような
609デフォルトの名無しさん
2018/07/14(土) 22:31:41.56ID:ZSFOzkp/ まて、関数は、とある
つまりはシステムコールを直につかうんだ!
つまりはシステムコールを直につかうんだ!
610デフォルトの名無しさん
2018/07/15(日) 00:13:47.62ID:upVjqm6g611デフォルトの名無しさん
2018/07/15(日) 00:14:11.69ID:upVjqm6g ごめん途中で書き込みボタン押してしまった。
612デフォルトの名無しさん
2018/07/15(日) 00:15:38.60ID:upVjqm6g613デフォルトの名無しさん
2018/07/15(日) 00:16:57.24ID:iXIp3nZ5614デフォルトの名無しさん
2018/07/15(日) 00:17:46.78ID:iXIp3nZ5 >>612
それ関数
それ関数
615デフォルトの名無しさん
2018/07/15(日) 00:23:22.27ID:upVjqm6g >>609
クラスもありかも知れない。クラスの中にはメソッドがある。メソッドはメソッドであって関数ではない。
あるいは procedure でも良いのかも知れない。procedure は手続きであって関数ではない。
サブルーチンもありかも知れない。
昔のマイコン用のBASICでVRAMに直接 POKE で値を書き込んだりするのもありかも知れない。
もはや一休さん並のトンチであり言葉遊びである。
クラスもありかも知れない。クラスの中にはメソッドがある。メソッドはメソッドであって関数ではない。
あるいは procedure でも良いのかも知れない。procedure は手続きであって関数ではない。
サブルーチンもありかも知れない。
昔のマイコン用のBASICでVRAMに直接 POKE で値を書き込んだりするのもありかも知れない。
もはや一休さん並のトンチであり言葉遊びである。
616デフォルトの名無しさん
2018/07/15(日) 00:24:49.27ID:upVjqm6g >>614
出力系の関数は一切使っていない。
出力系の関数は一切使っていない。
617デフォルトの名無しさん
2018/07/15(日) 00:26:13.41ID:iXIp3nZ5 関数を使わないとなると
int 21
とかじゃないの?
int 21
とかじゃないの?
618デフォルトの名無しさん
2018/07/15(日) 00:46:35.39ID:YSciq3u7619デフォルトの名無しさん
2018/07/15(日) 01:18:12.57ID:i/vgUFG7620デフォルトの名無しさん
2018/07/15(日) 03:18:16.17ID:upVjqm6g cat
Hello, World!
もはやプログラムですらない。
Hello, World!
もはやプログラムですらない。
621デフォルトの名無しさん
2018/07/15(日) 08:10:13.37ID:YZu0PDvL >>599
100この中から4個を選ぶことだから完全最小ハッシュ関数が使える
100この中から4個を選ぶことだから完全最小ハッシュ関数が使える
622デフォルトの名無しさん
2018/07/15(日) 08:20:59.61ID:YZu0PDvL >>603
紙にペンでHello, World! と書く。
紙にペンでHello, World! と書く。
623デフォルトの名無しさん
2018/07/15(日) 08:21:04.86ID:YZu0PDvL >>603
紙にペンでHello, World! と書く。
紙にペンでHello, World! と書く。
624デフォルトの名無しさん
2018/07/15(日) 08:24:39.94ID:iXIp3nZ5 10 PRINT "Hello, World!"
625デフォルトの名無しさん
2018/07/15(日) 09:17:28.76ID:rFf4w5JC 「何々禁止で何々を書け」って類いの問題で面白くなることはあんましないな
626デフォルトの名無しさん
2018/07/15(日) 09:35:01.35ID:d2Ttt1A+627デフォルトの名無しさん
2018/07/15(日) 12:21:14.41ID:9lve5q3D628デフォルトの名無しさん
2018/07/15(日) 13:09:18.09ID:+eT7t0LR 質問一回許すとなし崩しに宿題だらけになるぞ。警告はした。
629デフォルトの名無しさん
2018/07/15(日) 13:13:37.51ID:9lve5q3D これ宿題じゃないですよ
ここに書く前にコードも書いてたしもっと効率いい方法ここの人達なら知ってそうだと思ったから
ここに書く前にコードも書いてたしもっと効率いい方法ここの人達なら知ってそうだと思ったから
630デフォルトの名無しさん
2018/07/15(日) 13:15:21.60ID:kiP00q0W631デフォルトの名無しさん
2018/07/15(日) 14:11:04.01ID:d2Ttt1A+ >>629
よし、そのコードを貼るのだ
よし、そのコードを貼るのだ
632デフォルトの名無しさん
2018/07/15(日) 14:14:11.66ID:9lve5q3D633デフォルトの名無しさん
2018/07/15(日) 14:19:01.22ID:ugn7dRUi いいから貼れ
634デフォルトの名無しさん
2018/07/15(日) 14:26:45.03ID:9lve5q3D635デフォルトの名無しさん
2018/07/15(日) 14:33:39.46ID:ugn7dRUi それの何が不満?
何をどう改善したいのかわからないと
テーブル作成の速度?
テーブル検索の速度?
コードサイズ?
バイナリサイズ?
コードの分かりやすさや移植性?
何をどう改善したいのかわからないと
テーブル作成の速度?
テーブル検索の速度?
コードサイズ?
バイナリサイズ?
コードの分かりやすさや移植性?
636デフォルトの名無しさん
2018/07/15(日) 14:35:44.41ID:9lve5q3D 何がってほぼ全てが不満だけど
637デフォルトの名無しさん
2018/07/15(日) 14:36:24.88ID:ugn7dRUi ああ、
速度とメモリって書いてあったね
速度とメモリって書いてあったね
638デフォルトの名無しさん
2018/07/15(日) 15:22:45.17ID:ZKe7bXB/ 宿題スレでやれ
639デフォルトの名無しさん
2018/07/15(日) 21:44:41.62ID:WaX+Eind 605、出題しておいて何だがこれめっちゃ難しいな
マップの大きさの制約があると通路引くのが難しすぎる
マップの大きさの制約があると通路引くのが難しすぎる
640デフォルトの名無しさん
2018/07/15(日) 22:38:32.27ID:/hZTTtWu いちおう解けるのを自分で確認してから出してくれないと困る
641デフォルトの名無しさん
2018/07/15(日) 23:36:44.29ID:ugn7dRUi642デフォルトの名無しさん
2018/07/16(月) 00:30:52.75ID:DlxdbTiq 入力と出力の例とかあると良いよね
643デフォルトの名無しさん
2018/07/16(月) 10:10:17.82ID:7UvME/Zj >>607
で、出来てる?
で、出来てる?
>>643
一般に、再帰を非再帰に書き下すのは難しいのです…
一般に、再帰を非再帰に書き下すのは難しいのです…
645デフォルトの名無しさん
2018/07/16(月) 13:51:43.31ID:yJ4dWfp7 お題
ポーランド記法による計算機を実装せよ
演算子は加算(+)と乗算(*)をサポートすること
* + 1 5 + 2 3
=> 30
* * * * 2 3 4 5 6
=> 720
ポーランド記法による計算機を実装せよ
演算子は加算(+)と乗算(*)をサポートすること
* + 1 5 + 2 3
=> 30
* * * * 2 3 4 5 6
=> 720
646デフォルトの名無しさん
2018/07/16(月) 13:53:41.91ID:JYSC+BEo ただし、スタックを使用してはならない
647デフォルトの名無しさん
2018/07/16(月) 13:56:53.16ID:TD/1pPmS さらに、分数と複素数をサポートすること
648デフォルトの名無しさん
2018/07/16(月) 14:01:43.77ID:rAvhQng0 まーた、〜を使わないで、か。
宿題か何かかな
宿題か何かかな
649デフォルトの名無しさん
2018/07/16(月) 14:36:11.63ID:dBK+PWCu >>645 Ruby 2.5.0
[
"* + 1 5 + 2 3",
"* * * * 2 3 4 5 6"
].each do |_exp|
exp = +-_exp
nil while exp.gsub!(/([^\d\s]+) +(\d+) +(\d+)/){$2.to_i.send($1, $3.to_i)}
puts '%s => %s' % [_exp, exp]
end
#=>
* + 1 5 + 2 3 => 30
* * * * 2 3 4 5 6 => 720
[
"* + 1 5 + 2 3",
"* * * * 2 3 4 5 6"
].each do |_exp|
exp = +-_exp
nil while exp.gsub!(/([^\d\s]+) +(\d+) +(\d+)/){$2.to_i.send($1, $3.to_i)}
puts '%s => %s' % [_exp, exp]
end
#=>
* + 1 5 + 2 3 => 30
* * * * 2 3 4 5 6 => 720
650デフォルトの名無しさん
2018/07/18(水) 02:22:22.35ID:7Z3eO87O >>645
Kotlin で二つ作った。
Stack 使ったやつ。
https://paiza.io/projects/Qnrrux74abDRsr1kh77FNA
Stack 使わずに MutableList で 計算記号、数、数のパターンを計算できなくなるまで繰り返し計算するやつ。
enumも使用。
https://paiza.io/projects/rHKDVtB2yjTvymuFLlBL7g
Kotlin で二つ作った。
Stack 使ったやつ。
https://paiza.io/projects/Qnrrux74abDRsr1kh77FNA
Stack 使わずに MutableList で 計算記号、数、数のパターンを計算できなくなるまで繰り返し計算するやつ。
enumも使用。
https://paiza.io/projects/rHKDVtB2yjTvymuFLlBL7g
651デフォルトの名無しさん
2018/07/19(木) 21:45:59.55ID:bv0mlJEL お題
N個の整数(a_1, a_2, ..., a_n, ..., a_N)と*+/()を使った数式の値が、ある整数aにもっとも近い数式とその値(実数)を出力せよ
引き算はなし
a_n = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
N個の整数(a_1, a_2, ..., a_n, ..., a_N)と*+/()を使った数式の値が、ある整数aにもっとも近い数式とその値(実数)を出力せよ
引き算はなし
a_n = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
652デフォルトの名無しさん
2018/07/19(木) 21:52:08.91ID:QlKeHbXC うんざり
653デフォルトの名無しさん
2018/07/24(火) 10:08:13.30ID:Dnr6z2Ly654デフォルトの名無しさん
2018/07/24(火) 12:45:23.08ID:msj5ObGA これ見た目では普通だけどかなり横に長い部屋なんだよな
655デフォルトの名無しさん
2018/07/24(火) 12:55:16.04ID:jy7p1ZdA 部屋と通路以外の場所も存在するのかよ
656デフォルトの名無しさん
2018/07/24(火) 13:01:35.53ID:m/xgtmWb >>654
今だと全角文字で作ればいいかな。絵文字もまじえて。
今だと全角文字で作ればいいかな。絵文字もまじえて。
657デフォルトの名無しさん
2018/07/26(木) 00:47:20.34ID:PpbivrbM >>597 Java
https://ideone.com/VUgSXO
1行〜5行までしか答え出ないな
うちの環境で
9行を探索するのに4.6秒
10行を探索するのに61.6秒
2018行はあかんww
https://ideone.com/VUgSXO
1行〜5行までしか答え出ないな
うちの環境で
9行を探索するのに4.6秒
10行を探索するのに61.6秒
2018行はあかんww
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市朗報】 日本政府「一昨年は1300億円。去年も防衛費が1100億円余ったw」 日本の防衛費は充分足りてる事が判明。増やす必要無し [485983549]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
