プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
2016/12/01(木) 16:58:30.97ID:gTkHDluD
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part8©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1444216746/

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
http://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
http://runnable.com/
http://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。
914デフォルトの名無しさん
垢版 |
2017/12/25(月) 06:21:01.65ID:P1JMpVx5
>>909 lisp
https://ideone.com/6D7LRp
915デフォルトの名無しさん
垢版 |
2017/12/25(月) 12:28:00.12ID:Lg9qxqUa
>>909
Kotlinらしくしてみようとはしたが、あまりにも短く、更に俺がまだよくKotlinを知らないためにこんな風になった。
https://paiza.io/projects/BpAXUQuDCaOSD6Q6GN4O8A
肝心な所はJavaとほぼ同じ。
2017/12/25(月) 19:56:50.93ID:IEH/2als
>>909 F#
https://ideone.com/rRZ949
2017/12/26(火) 10:23:38.85ID:Hd2qVaf/
>>909 Squeak/Pharo Smalltalk

| n |
n := '16 deadbabe' replaceAll: Character space with: $r; asNumber.
2 to: 36 do: [:i | Transcript cr; show: i; space; show: (n radix: i) asLowercase]
2017/12/28(木) 04:53:27.57ID:N8L362th
お題を捏造してやるぜ。
アンサーが42になる式を捏造せよ。という数学パズル。
小難しい式をでっち上げた人が優勝。
算数から数学、物理まで式になってればすべての手法が使用可能。統計とかでもいいよ。
制約は答えが42になることのみ。
解けるものはいるか?
2017/12/28(木) 04:55:12.31ID:N8L362th
あー、忘れてた。
ちゃんと検算して答えを確認できること。
俺、算数しかできないから、各種サービスにかけて検算できるのが望ましい。
2017/12/28(木) 04:57:55.88ID:8O6aNcDe
ぷろぐらみんぐ・・・?
2017/12/28(木) 05:01:29.85ID:N8L362th
ベンチマーク的な感じだな。
たまには本気を出したいだろ?お前ら。
2017/12/28(木) 05:04:57.45ID:N8L362th
当たり前だが、必要な関数が標準ライブラリになかったら自作すること。
2017/12/28(木) 07:10:57.10ID:s+AqweGp
>>918 ruby
require 'open-uri'

expr = "the Answer to the Ultimate Question of Life, the Universe, and Everything"

uri = "https://www.google.com/complete/search?output=toolbar&;q=%s"
puts open(format(uri, expr.gsub(' ', '%20'))).string[/data="\K[^"]*/]
#=> 42
2017/12/28(木) 07:34:31.76ID:N8L362th
>>923
元ネタはそれ。正解の一端。
2017/12/28(木) 08:07:25.24ID:i+4FV8XV
>>918
brainfuck
https://ideone.com/eJSjws
2017/12/28(木) 09:35:15.49ID:wX0EFIYP
>>918
難しさの判定を人間が気分でするしかないとなると死ぬまで気に入らないと
言い続けて終わらないようにもできてしまうわけで、少なくともお題の判定
方法としては適切ではないのではないか?
2017/12/28(木) 11:19:23.23ID:ZkyapKMq
式を捏造せよと言ってんのに、検算して答えがあってることを確かめろとか矛盾してて草
2017/12/28(木) 11:41:23.15ID:N8L362th
>>925
基本的かつ合理的。

>>926
投票制にする?

>>927
答えは42になることだけは決まってるんだから、検算できないのはどういう理由?
プログラミングやるんだから、イデオンとか使うんじゃだめなの?
2017/12/28(木) 15:25:23.94ID:0tvuK50P
片山に次ぐ逸材かもしれないが出題者が馬鹿だとやる気が出ないという良い見本
2017/12/28(木) 15:31:12.30ID:N8L362th
自由を泳げないって不便だね。
何やっても良いんだからなんかすればいいって話なんだけど。
定型の答えなんか求めてないのは出題見ればわかるだろ。
発想力が欠如してるんじゃないか?

基本的にベンチマークだと言ってるでしょ?
捏造っていう言葉が悪かったら謝るが。構成しろってことにすれば大体同じや。
2017/12/28(木) 15:32:51.23ID:N8L362th
口だけのやつはぶっぶーですわ。
2017/12/28(木) 16:00:26.20ID:4ng0NpPh
自由を泳げないって
2017/12/28(木) 18:49:12.75ID:Er3In3fn
Cコ:彡
2017/12/29(金) 00:30:23.43ID:+gfutoXL
>>909 rust
https://ideone.com/H6mdNM
・BigInt不使用
・n.to_s(b)の形にしたかったが素早く諦めた
・色んなところに迷いと妥協が見え隠れ
2017/12/29(金) 02:28:40.84ID:IV3yH5ho
お題:入力があったら6面のサイコロを振って出た目を出力してください
ただし数字を使ってはならない
2017/12/29(金) 03:07:31.93ID:GekNq94X
そういう数字を使ってはいけないって誰得なの?
937デフォルトの名無しさん
垢版 |
2017/12/29(金) 05:31:16.53ID:5y9SQxLe
>>935
Unicode の U+2680 〜 U+2685 は?
??????
2017/12/29(金) 09:00:41.20ID:IV3yH5ho
>>936
さぁ。。。

>>937
確認してないけどいいのでは
2017/12/29(金) 09:20:10.35ID:GekNq94X
>>935
https://ideone.com/GrYSWB
C++。こんな感じ?
2017/12/29(金) 09:29:20.12ID:GekNq94X
https://ideone.com/ZRXCD5
こっちの方がそれっぽいか。
2017/12/29(金) 20:57:46.71ID:QkO9em45
数字を使ってはならないってのが謎
AAで出力しろってか?
942デフォルトの名無しさん
垢版 |
2017/12/29(金) 21:21:03.51ID:aTe03Y1I
>>935
Rubyで。
p rand('abcdef'.length) + 'z'.length
2017/12/29(金) 21:28:13.36ID:FAMD2vO+
数字を使うなって表示なのかそれともソースなのか?

表示なら
●●●●●●とか
2017/12/29(金) 21:29:41.90ID:u/2CuQjm
両方だろ
2017/12/29(金) 21:50:46.64ID:VnRfvHlH
そもそも入力が何なのかすら意味不明。却下
946デフォルトの名無しさん
垢版 |
2017/12/29(金) 22:22:21.11ID:1z8qBjEb
お題
自然数 n を入力とし, a と b を乗ずると n になるような自然数 a と b を出力する.
a と b の侯補が複数存在する場合は, a と b の和がもっとも小さなものを出力すること.
947デフォルトの名無しさん
垢版 |
2017/12/29(金) 22:32:07.85ID:5y9SQxLe
>>938
じゃあUnicodeのU+2680からの文字を使った版。Kotlinで。
https://paiza.io/projects/GElJ8jIbi45jocyYirbO8w
入力があったらの部分は最初の readLine() だ。
下の「入力」タブの所で改行を一つ入れてあるので開いたら即出力がある。
948デフォルトの名無しさん
垢版 |
2017/12/29(金) 23:03:49.04ID:5y9SQxLe
>>935
また Kotlin。
サイコロの目の一つは5x5ビットあれば表現できるので配列に詰め込んで後で変換して出すようにした。
https://paiza.io/projects/uGhQ6cuRqbnlGc2TTvT92w?language=kotlin
別に配列でなくてもとにかく 5*5*6 (=150) bit 詰め込めるなら何でも良い。
2017/12/29(金) 23:13:30.16ID:VnRfvHlH
>>946
15.times{|n|
sqrt_n = Integer.sqrt(n)
(2 * sqrt_n..n + 1).each { |s|
(sqrt_n..n).each { |i|
next unless i * (s - i) == n
puts '%d * %d = %d' % [i, s - i, n]
break
} || break
}
}

0 * 0 = 0
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
2 * 2 = 4
5 * 1 = 5
2 * 3 = 6
7 * 1 = 7
2 * 4 = 8
3 * 3 = 9
5 * 2 = 10
11 * 1 = 11
3 * 4 = 12
13 * 1 = 13
7 * 2 = 14
2017/12/29(金) 23:14:32.74ID:VnRfvHlH
>>949はRuby2.5.0ね
951デフォルトの名無しさん
垢版 |
2017/12/29(金) 23:25:01.60ID:IY4nOP57
>>935
https://paiza.io/projects/dpm1gJDuxMLd6pvQau8rig?language=kotlin
952デフォルトの名無しさん
垢版 |
2017/12/30(土) 00:34:17.12ID:64dx8gku
>>946
def r9_946(n)
Math.sqrt(n).to_i.downto(1) do |e|
return [e, n / e] if (n / e) * e == n
end
end

1.upto(100) do |n|
a, b = r9_946(n)
printf("%d = %d * %d¥n", n, a, b)
end
2017/12/30(土) 00:45:39.83ID:6/kbfUjB
>>949から100倍くらい早くなった
https://ideone.com/4qZ3Di
2017/12/30(土) 01:37:16.58ID:2QbO+yEX
>>951
出目が0〜6?

確率的には
0: 1.56%
1: 9.38%
2: 23.44%
3: 31.25%
4: 23.44%
5: 9.38%
6: 1.56%
くらいか?
2017/12/30(土) 09:12:17.38ID:6VD4P8Az
>>946
https://ideone.com/GSawYb
C++。条件足りてるかよくわかってないけど、適当に書いたらそれぽい感じになった。
あってる保証はない。
2017/12/30(土) 09:19:03.41ID:6VD4P8Az
なんか俺の劣化>>953みたいな感じだな。
うーん。名案だとは思ったのだけど。むむむ・・・。
2017/12/30(土) 09:31:25.37ID:6VD4P8Az
うほ、フィルターしてる条件にバグがあった。良く動いてたな。
2017/12/30(土) 09:33:18.81ID:6VD4P8Az
これ、片方1のやつって素数かな?
エラトステネスの篩とどっちが軽いかな。
959デフォルトの名無しさん
垢版 |
2017/12/30(土) 12:46:04.20ID:ZPxTZMGf
お題
要素が素数, かつ要素の総和が2018になる集合のうち, 要素数がもっとも大きい集合を出力する.
960デフォルトの名無しさん
垢版 |
2017/12/30(土) 12:59:47.50ID:64dx8gku
>>959
[2]*(2018/2)
2017/12/30(土) 14:25:23.55ID:6VD4P8Az
>>959
https://ideone.com/lwcNQR
C++。DPの練習。必要な数はわかったが過程の表示の仕方がわからない。
どうすれバインダー。Orz
2017/12/30(土) 15:14:55.24ID:6VD4P8Az
>>961
https://ideone.com/DdepmL
C++。あってるか知らんけど、力業でベタ作業した結果、それっぽい数字にたどり着いた。
と、思ったら全然違う数字を指していた。
2017/12/30(土) 15:16:57.66ID:6VD4P8Az
>>959
https://ideone.com/XzeJ1E
C++。でけたー。DP難しいなぁ。
964デフォルトの名無しさん
垢版 |
2017/12/30(土) 15:18:24.57ID:ZOKm+QEU
>>959
それ1なのでは?
2017/12/30(土) 15:25:04.70ID:6VD4P8Az
要素数だから、コンテナカウントだと思って書いたんだけど。
え?題意勘違いしてる?
2017/12/30(土) 15:25:53.45ID:6VD4P8Az
element countだよね?
2017/12/30(土) 15:30:31.85ID:qiSXHyFx
2が1009個ある集合、>>960で答えが出てる
2017/12/30(土) 15:32:23.03ID:6VD4P8Az
>>967
あー、それそういう意味だったのか。
うわー俺、蛇足だった。
2017/12/30(土) 15:36:57.18ID:6VD4P8Az
>>967
それをさ、プログラムで解くのきつくない?
総当たりしないと俺は無理。重複許可すると途端に大変になる。
2017/12/30(土) 16:05:45.05ID:6VD4P8Az
https://ideone.com/RVtf4i
適当に拡張してみたが、搭載メモリ8Gを使い切ってしまいデバッグ不可。
これ、意外と難問かもしれん。
2017/12/30(土) 16:20:15.12ID:6VD4P8Az
ちょっとくどいけど、
これさ、量子アニーリングじゃないと解けないやつかなぁ??
なんかさっきからいじってるけど、ローカルポケットに落ちてる気がする。
グローバルポケットに落とす方法が皆目見当つかない。
解説頼む。
972デフォルトの名無しさん
垢版 |
2017/12/30(土) 16:48:17.65ID:ZPxTZMGf
すみません, お題での 集合 は Ruby では Setクラス のような, 要素に重複や順序性のないものを考えていました.
想定していた回答例は以下です.
answer
(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 113 127 131 137 139)
(apply #'+ answer)
2018
(length answer)
33
2017/12/30(土) 17:07:30.49ID:YKsh4iwJ
9個まではすぐ見つかるんだけど10個になった途端重くなる
10個の場合は存在しない?
逆に21個や33個の場合はすぐ見つかるんだ、どういう分布なんだろな
2017/12/30(土) 17:11:07.91ID:6VD4P8Az
>>972
おー、よかった。どこまで深淵があるのか怖かったよ。
多分、>>963であってると思う。たぶん。
2017/12/30(土) 18:48:52.49ID:YKsh4iwJ
>>959 C#
https://ideone.com/J9MmxS
33個と決め打ちした場合は4通りがすぐ出る
そのあと延々ループしてるがTime limit exceededで打ち切ってくれる
976デフォルトの名無しさん
垢版 |
2017/12/30(土) 21:03:54.80ID:30TR5CU8
>>959
1も素数なんだが1が2018個ある集合はありなのか?
それだとお題としてほとんど意味のないひっかけ問題みたいになるわけだが、
そうではないなら問題を修正しろ。
2017/12/30(土) 21:15:48.77ID:KgXg1sy3
>1も素数なんだが
>1も素数なんだが
>1も素数なんだが
978デフォルトの名無しさん
垢版 |
2017/12/30(土) 21:23:36.74ID:bLWDJrON
>>977
あ、2か。
でも問題がこれだと同じことだよなあ。
2017/12/30(土) 21:26:45.29ID:bA88XQgg
>>976
4つ上のレスも確認できないくせに何言ってんの
980デフォルトの名無しさん
垢版 |
2017/12/30(土) 21:42:01.90ID:ZPxTZMGf
一般に, 素数は 1およびその数自身のほかに約数を有しない正の整数 と定義されますので, ここではその定義に従います.

また一般に, 重複や順序性のない もののあつまり を 集合(set) と呼ぶことが多いので, ここではその用法に従います.
集合(set)に対して, ものをならべたものは列(sequence)と呼ぶことが多いです.
ここでは『AABBCC』は文字列ですが, 文字集合ではないとします.

% irb
irb(main):001:0> require 'prime'
=> true
irb(main):002:0> 1.prime?
=> false
irb(main):003:0> 2.prime?
=> true
irb(main):004:0> require 'set'
=> true
irb(main):005:0> Set.new([1]*2018).size
=> 1
2017/12/31(日) 00:33:09.15ID:UjqOw9qv
お題:指定した複数の wav フォーマットを連結して一つ wav ファイルを作成するプログラムを書け
・ファイルの指定方法はコマンドライン引数指定でかまわない
・wav ファイルフォーマットの仕様上の上限である 4GiB まで正常に結合できることを必須の最低条件とする
・PCM フォーマット・ステレオ2ch・サンプリング周波数 44.1kHz に対応しておればよい
・GUI に対応しておればなおよい

背景:いや、いろいろダウンロードして試しているのだけれども、4GiB まで正常に結合できるソフトウェアが見つからないのです‥
2017/12/31(日) 01:09:52.02ID:iFZSMKfw
それでこのスレに辿り着くのは面白い
2017/12/31(日) 01:21:45.50ID:QH0un2fa
前からこのスレにいる人でしょ。
お題としてはまったくこのスレに向いてないと思うが。
2017/12/31(日) 01:55:26.47ID:mjAZsjOp
2000から3000位まで試してみたが、大体33前後になるみたい
(微妙に増加していくが緩慢)
985デフォルトの名無しさん
垢版 |
2017/12/31(日) 03:02:32.19ID:rf+Z6LCT
>>981
これ使えないか?
http://hakobe932.hatenablog.com/entry/20060613/1150208682
2017/12/31(日) 05:23:36.13ID:Q5J3BQB7
>>981
waveチャンクって2gbまでだっけ?sizeフィールドが32bitsignedだったような気がするんだけど。どうだっけ?
2017/12/31(日) 05:28:08.43ID:Q5J3BQB7
書き出すのはそんなに難しくないんだけど、読み込むのが面倒なんだよなぁ。
それに、適当にくっつけるとくっつけたところにブツ!っていうのノイズが入ることがあったはず。
2017/12/31(日) 05:33:17.47ID:Q5J3BQB7
https://ideone.com/AExWE6
これで、ちっちゃいやつは書き出した実績がある。ローカルの話だけどな。
読み込みはRiffの仕様よく知らないからわからない。
2017/12/31(日) 09:49:37.67ID:Jha/n6sD
自分で書くよりfoobar2000でMerge all tracks into one output fileしちゃうよな
むしろ6GBとかいける、wave64になってんのかな
2017/12/31(日) 10:12:35.10ID:vp+PvkVL
完全にスレチ
2017/12/31(日) 13:06:54.78ID:UjqOw9qv
>>989
foobar2000 に merge する項目はありますか?
最新バージョンをインストールしましたが見当たりません‥
2017/12/31(日) 14:14:14.10ID:Jha/n6sD
>>991
foo_converter.dllが標準で入ってるからそのまま使えるよ
スレチというかこの場合はサイト違いだな、Hydrogenaudioで検索した方が沢山みつかる
2017/12/31(日) 19:53:16.48ID:R6E+DNla
"2018と素数" 類似問題
[お題]
前問よりどうやら、ユニークな素数の和で2018を作ると、
構成(要素)数 33個が最大で 4種類あるらしい。
最小は2個で27種類あるみたいだ。
3個だと 73種類、 4個だと 85014種類あるみたいだ。

ユニークな素数の和で2018を作る時、
最大の種類が作れるのは、構成数何個のときで、何種類か。

(注) 8個を超えると10億超えがしばらく続くらしい。
2017/12/31(日) 19:58:31.90ID:Q/CIq2T0
>>981
ちゃんと理想の仕様を書けば作るけど
2017/12/31(日) 20:02:31.92ID:Q/CIq2T0
>>986
32bit unsignedで(4Gi-1)Bまでだね
ファイルサイズも32bit unsigned
2017/12/31(日) 22:29:40.39ID:q2wUTltf
>>993 Java
https://ideone.com/DHe5Ij
2018/01/01(月) 00:07:03.13ID:JOZ5/YyG
>>981
http://mevius.2ch.net/test/read.cgi/tech/1434079972/30
‥‥書初めになりました
998デフォルトの名無しさん
垢版 |
2018/01/01(月) 06:04:16.51ID:4wMbPbHX
どうして2048ではなく2018などという中途半端な数にしたんだろうとずっと不思議に思っていたのだが(お題だから敢えて変な数にしたのかとか思ったんだが)、ようやっとわかったよ。今年の西暦年だったんだね。
2018/01/01(月) 06:13:54.33ID:+ZNxt5nC
>>995
勘違いしてたか。訂正ありがとう。
2018/01/01(月) 08:09:01.71ID:OeEKMk/d
>>997
そっちのスレに書くと本当にBTC貰えるの?
てか、出題者と交渉したって貰える保障が全くなくて無意味なスレのような気がするんだけど。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 395日 15時間 10分 31秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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