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

■ このスレッドは過去ログ倉庫に格納されています
2018/01/01(月) 11:15:04.40ID:2Vr1CPKy
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part9
https://mevius.5ch.net/test/read.cgi/tech/1480579110/

【出題と回答例】
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/

宿題は宿題スレがあるのでそちらへ。
2018/04/08(日) 17:47:47.72ID:FgO8HAKn
>>641
その宿題とやらが問題として面白いものであれば、それならそれを解くことは個人的にはありうることでしょうね
2018/04/08(日) 18:45:27.43ID:wX43tNlZ
競争性の放棄とコードも書かないのに他人を煽る。ギルティですね。
2018/04/08(日) 18:54:09.19ID:wX43tNlZ
俺は書いたけど、無視されるわ、あげく必要ないっていわれましたからね。
70行も読めないなんてたかが知れてる。
2018/04/08(日) 19:12:49.68ID:aVOeIiR5
こんな依頼者相手にコードを提供するのがおかしい
2018/04/08(日) 19:14:36.93ID:wX43tNlZ
最初はフラットなので、見分けるの大変なんですよ。
2018/04/08(日) 19:16:13.27ID:wX43tNlZ
>>645のことは考えてないですよ?611とやらに怒ってます。
やったこと無駄でした。ヒント与えなければよかった。
2018/04/08(日) 20:46:20.65ID:sgyAjV8F
お題
ビンゴゲームでリーチ数が最大の盤面をすべて列挙せよ
2018/04/08(日) 21:26:48.16ID:wX43tNlZ
そうですか。頑張ってください。
2018/04/08(日) 21:53:53.31ID:ZTQwWTkx
>>648 Ruby ただしπ/2回転させた解は省略
出力はi行目に穴の空いていないマスの列数(0〜4)を表示

[*1..4].combination(2).flat_map{|i,j|
[*1..4].combination(2).map{|k,l|
a = [4, 0, 1, 3, 2]
a[i], a[j] = a[j], a[i]
a[k], a[l] = a[l], a[k]
next if (1..4).any?{|i| a[i] == 4 - i} || a[2] + a[3] > 4 || a[1] + a[4] > 4
a
}
}.uniq.compact
#=> [[4, 0, 1, 3, 2], [4, 2, 0, 3, 1], [4, 1, 3, 0, 2], [4, 1, 0, 2, 3]]
2018/04/08(日) 22:15:08.50ID:TRlBW4xM
>>641
俺も>>642と同意見かな
出題者は勝手に出すだけ
回答者は勝手に回答するだけ
出題者の意図も回答者の意図もどっちも問わない

ただ、頼まれもしないのに延々糞コード書いて晒すやつは脳の障害とは思う
2018/04/08(日) 22:20:36.69ID:xR9rWW4L
回答者は回答するだけってのはまさにその通り
なんかc++の変なコードあげる人いるじゃん
変なコードは別に見ないからいいんだけど、その上 構ってちゃんなのがちょっとあれなのよね
2018/04/08(日) 22:22:09.19ID:TRlBW4xM
あ、おれが糞コードつってんのもそいつのことねw
といかこのスレで糞コードつったらそれしかないけど
まともにC++やってきた人間からしたら血圧上がるような糞コードなw
2018/04/08(日) 23:18:12.27ID:drN9+cfC
c++ で書いてるヤツなんて俺以外いないよ…と思ったがNGID解除してみるといた

ruby のコードは読みやすいからruby使った回答は歓迎なんだけど、
回答もしたいからあんまり限定して欲しくはないな
(rubyで回答するほど好きではないから)
2018/04/08(日) 23:31:45.71ID:FWiZcz2s
ダラダラ長ったらしく書かれたC++コードも、ぱっと見意味の掴みにくいワンライナーコードも、同じくらいクソだと思うんですが・・・
2018/04/08(日) 23:38:49.63ID:drN9+cfC
J言語好きとして読みにくいからクソというのには党派的に反対する
読みにくさを愛でる人もいる

でもさっきはうっかりしていた
ruby 限定とか C++ 禁止とかあってもいいと思います
2018/04/08(日) 23:53:13.66ID:b4O4Usd0
限定する目的がわからん
特定の言語だと簡単すぎるとか?
658デフォルトの名無しさん
垢版 |
2018/04/08(日) 23:58:04.55
ID:wX43tNlZ みたいなのをシャットアウトする目的なら限定してもいいだろう
2018/04/09(月) 00:06:52.35ID:4voddLA5
>>658
ええな
2018/04/09(月) 00:30:16.34ID:/QZ8FXxd
>>612
>>621
いきなり最後の式が出ると思うんだが
わざわざ知識をつかわなくても
2018/04/09(月) 00:37:01.24ID:/QZ8FXxd
最上位桁の数字は 1〜9 の9通り
最上位桁と異なる数字は 0〜9中で最上位桁以外 9通り
最上位桁以外の2種類の選び方は
N-1個それぞれが2個の数字から1個を選ぶ場合の数-全て最上位桁と同じになる場合の数 = 2^(N-1)-1

よって81*(2^(N-1)-1)通り
2018/04/09(月) 00:42:15.33ID:kgPSL5h+
>>648
C++で書いた。コードは不明。
8分くらいで解いた。あってるかは知らない。
Count:1
Score:9
11110
11110
11110
11110
00000
2018/04/09(月) 00:43:45.37ID:kgPSL5h+
>>658
ちゃんとコード書いてても村八分にされるんですね。
ここは怖いインターネッツですね。
2018/04/09(月) 00:52:16.18ID:rENMvr1T
>>663
やることやってれば他は何してもいいという訳ではないのは、インターネットもリアルも同じ。
勉強できようが仕事ができようが、人から嫌われる言動をしてれば迷惑がられるのは当然。
まして、本人が得意気にできてると思ってるだけで実際は
大したことなければ尚更だろう。
2018/04/09(月) 00:52:41.77ID:kgPSL5h+
https://ideone.com/xQYd3O
バグがあったので直したら値変わった。
2018/04/09(月) 00:56:15.06ID:kgPSL5h+
>>664
ほう。大したことないとおっしゃる?どの口で?
まぁいいけど。さすがにムカツクな。
俺意外に上げてる人間ってそんなに多くないぞ?
アンタはあげたことあるんだろうね。自治気取りだけど。

ふむそういうことなら。そのように対応する。
2018/04/09(月) 01:09:33.57ID:kgPSL5h+
おい出て来いよ。
2018/04/09(月) 01:11:54.34ID:kgPSL5h+
なんか最近ビジネス色強いから裏で何やってるんだろうと思ってたけど。
くだらねーな。
2018/04/09(月) 01:24:20.55ID:kgPSL5h+
5CHで何言ってるか自覚ないみたいだな。
従順な奴隷でも探してろ。ばかやろー。
2018/04/09(月) 06:13:27.90ID:Y3Lep2Gi
言語を限定されてもそんなのに構わず好きな言語で回答してしまえばいいよ
2018/04/09(月) 07:53:04.73ID:3mzXDd2F
野糞落ちてるだけでも不快なのによ
得意げに野糞していく奴の存在とか
2018/04/09(月) 08:04:05.81ID:yXqzhiVB
>>670
そうそう
昔、一途に prolog で解きまくっている人がいて、すごくかっこいい、っておもっていました
2018/04/09(月) 12:31:23.52ID:M/BmQ9Z1
C++ は可読性が低くて、ビジネスロジックに無関係な、儀式部分が多いから、
読む方も、自分の時間を使うから、かなりの損。
書いている人は面白いのだろうけど

Ruby なら、ほぼビジネスロジックに集中できる。
だから多くのアルゴリズム・パズル本は、Rubyで書かれている

Rubyで書いてって頼まれても、言語指定を無視して書けばよいだけ。
他の言語で書いても、必ず見る人はいる
674デフォルトの名無しさん
垢版 |
2018/04/09(月) 12:44:33.93ID:pBiH2JPL
ま、ここはデフォルトでは言語指定なしだから書きたい言語で書けば良い。
2018/04/09(月) 13:13:38.81ID:rSzJcNe3
Pythonで書かれてるが。いつの時代の話だよw
676デフォルトの名無しさん
垢版 |
2018/04/09(月) 14:15:37.60ID:Ptdpw/63
2の倍数:下一桁が偶数
3の倍数:各桁の和が3の倍数
4の倍数:下二桁が4の倍数
5の倍数:下一桁が5の倍数
6の倍数:2の倍数かつ3の倍数

8の倍数:下三桁が8の倍数
9の倍数:各桁の和が9の倍数
10の倍数:下一桁が0
11の倍数:各桁を交互に足し引きした値が11の倍数
12の倍数:3の倍数かつ4の倍数
2018/04/09(月) 15:56:24.14ID:yXqzhiVB
>>676
7 の倍数、11 の倍数、13 の倍数は同一の事実にもとづいて判定できる
つまり 7 * 11 * 13 = 1001
2018/04/09(月) 18:34:30.66ID:arNj8dw4
スレタイ
679デフォルトの名無しさん
垢版 |
2018/04/09(月) 22:25:36.32ID:6uICJjyK
簡単なお題
>>605の漢数字版。
上限は2^32でなくても良い。しかし最低でも億の位までは欲しいところだな。
2018/04/09(月) 23:15:38.09ID:Y3Lep2Gi
エサが与えられてるんだからさっさと食らいつけよ畜生共
2018/04/09(月) 23:45:10.55ID:GweYAzQS
>>673
もっともらしく言ったところでruby厨が好き勝手に振る舞える理由にはならないよ
2018/04/09(月) 23:57:17.62ID:1DnKLeEW
>>679
ローマ記数法やフランス語記数法とか頭おかしくていいお題かも。
2018/04/10(火) 00:10:16.46ID:mR/iFs0H
>>682
それも良いねえ。フランス語は知らんのだが、ちょっと調べたら嘘のようにややこしいな。フランス人はこんなのでよく大丈夫だな。
2018/04/10(火) 00:21:47.03ID:qmeNshHp
>>683
いい数学者輩出してるんだよなぁ…
2018/04/10(火) 02:06:58.01ID:5lWeQ397
>>679
逆変換, 漢 -> 数
https://ideone.com/a8sMTP
686679
垢版 |
2018/04/10(火) 02:17:28.72ID:mR/iFs0H
>>679
自分で作った。 Kotlin。
https://paiza.io/projects/eNXAAROxenLmNFSy5mSRqw?language=kotlin

1000だと「千」だけど10000000だと「一千万」という具合に「一」が入れるのが一般的だったりして、
ほんのちょっと例外があることに改めて気づいた。
687679
垢版 |
2018/04/10(火) 02:22:57.60ID:mR/iFs0H
>>685
おお。いいね。
俺も気が向いたら作ってみよう。
688デフォルトの名無しさん
垢版 |
2018/04/10(火) 21:13:27.90ID:TIeJSw3E
>>673
C++のようなシステム用言語をビジネスアプリに使うのがそもそもの間違い。
作者のビャーネ・ストロヴストルップが意図した使い方じゃないしね。
2018/04/11(水) 01:55:25.98ID:rGUvV2b9
気軽に「こんなソフトありませんか?」Part.175 [無断転載禁止]©2ch.net
https://egg.5ch.net/test/read.cgi/software/1469784906/15

15 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/08/02(火) 11:00:10.21 ID:2cA8AwqS0
200個ほどある文書の1行目だけ、一括でアルファベットを小文字に出来るソフトありませんか?
当方スルースキルあるんで、このレスに気づいた方、気長にレス待ってます
2018/04/11(水) 07:07:47.94ID:jfPKheqL
>>689
Ruby で作って、向こうのスレに書き込んだ
691デフォルトの名無しさん
垢版 |
2018/04/11(水) 07:59:50.61ID:nTOtPPqx
お題
立方体の2色の塗り分けの全種類を展開図で示せ
2018/04/11(水) 10:09:29.48ID:jfPKheqL
NetworkX, ZDD
2018/04/11(水) 14:46:07.95ID:nGNQyhwo
お題に合同条件くらい書かないとどの面も区別するつまんない回答が出て来るぞ
2018/04/11(水) 14:48:16.12ID:0UD5Vzkt
合同条件?
なんか日本語がおかしい
2018/04/11(水) 14:50:49.91ID:nGNQyhwo
わからないならいい
2018/04/11(水) 15:07:26.30ID:TZfcO+VR
数学の時間いつもケチつけてたのかな?
「互いに素」「同様に確からしい」etc…

「日本語としておかしい!」「俺が数学できないのはそのせい!」
697デフォルトの名無しさん
垢版 |
2018/04/11(水) 15:20:54.42ID:TvIzhvdC
>>691の問題は俺の解釈では物凄く簡単なのだが、こういうことなのか?

立方体ということは展開すると例えばこうなるよな。


□□□□


で、これに二種類色付けして、例えば


□□□□


とか


■□□□


とかになる。これの全パターンを出すって問題でいいの?

そうすると6面なので6bitを1bitづつ各面に割り当てて出すだけの誰にでもできそうな簡単なお仕事になると思うんだが、そういう問題?
698デフォルトの名無しさん
垢版 |
2018/04/11(水) 15:25:13.66ID:TvIzhvdC
あ、もしや組み立ててひっくり返したりしたら同じになるパターンは省くのか?
2018/04/11(水) 16:03:19.27ID:QsDOKQlt
このスレは質問スレじゃないので出題者の意図は気にせず好きな解釈で回答すればよい
2018/04/11(水) 16:29:15.11ID:kkx2Nyh4
matlabの質問なのですがこの@r=の式はどのように記述したらいいのですか?

r = sin(5θ);
x = r*cos(θ);
y = r*sin(θ);

としてプロットしてもエラーになってしまいました



https://i.imgur.com/yK7edDT.jpg
2018/04/11(水) 17:09:59.63ID:hSvs5cp7
>>700
スレチ

matlabしらないけどこれでいけんじゃね
r = sin(5 * θ)
2018/04/11(水) 17:43:34.08ID:kkx2Nyh4
>>701
どこで聞けばよいでしょうか
2018/04/11(水) 18:04:52.30ID:PSt1mUEK
>>702
google先生かその課題を出した先生にでも聞いてみたら?
2018/04/11(水) 18:16:58.13ID:Z0egFvSN
>>702
検索🔍も出来ない知能じゃ無駄かもしれんけど

MATLABプログラミング 質問箱 その4
http://mevius.5ch.net/test/read.cgi/tech/1346661308/
2018/04/11(水) 19:37:33.05ID:oecHnyiq
>>691 Java
https://ideone.com/DzIEkK
2018/04/11(水) 20:46:33.17ID:oecHnyiq
>>705
あ、バグってるわ…
2018/04/11(水) 21:00:50.79ID:oecHnyiq
>>705 バグ修正
https://ideone.com/l5N7Y8
2018/04/11(水) 21:08:58.17ID:0UD5Vzkt
コンピューターじゃないと出来ない課題の方が良いと思うんだ
特に数学っぽいのは
2018/04/11(水) 21:12:18.35ID:0UD5Vzkt
数学的知識をどこまで使って良いか迷うし
ガシガシに最適化をしたら結果をテーブルで持つ
みたいになったらつまらんし
2018/04/11(水) 21:45:46.47ID:oecHnyiq
>>708
こんなんとか?

プログラミングのお題スレ Part7
https://peace.5ch.net/test/read.cgi/tech/1429195275/41
> 41 :デフォルトの名無しさん:2015/05/01(金) 14:31:24.98 ID:9G1+bMO9
> お題:ちょうどn個(1 < n)の格子点(x座標もy座標も整数の点)を通る円の半径の
> 最小値を求める。円の中心点は格子点でなくてよい。
> 例
> n=2 -> 0.5
> n=5 -> 16.170331
> n=6 -> 2.5
※ n=5 は 5.89256 が正しい


サンプルデータ(最小ではない可能性あり)
https://ideone.com/wVBe61
2018/04/11(水) 21:52:59.57ID:5X4H9iqq
>>710
考えてみる

最小ではない可能性ありが貼られてるってことは
まだ出来た人がいないってことかな?
2018/04/11(水) 22:14:47.69ID:hSvs5cp7
まずnの値によっては最小値が存在しないから問題が破綻してる
結局数値計算するだけの問題だし
2018/04/11(水) 22:16:44.50ID:oecHnyiq
nの値によって最小値が存在しないってどういうことだ?
2018/04/11(水) 22:25:53.20ID:hSvs5cp7
一から実数の定義と上限下限の説明しないとダメなの
2018/04/11(水) 22:27:48.82ID:5X4H9iqq
n=1の時に最小値が存在しないことはすぐわかるが
1<nだから関係ない

n=2の時は簡単にわかる

特定の3個以上の格子点を通る円は高々1個しか存在せず
また、ある点から特定の距離以内の格子点の数は有限なので
存在するなら最小値は存在しそう
2018/04/11(水) 22:37:40.38ID:5X4H9iqq
>>712 >>714
説明よろしく
2018/04/12(木) 00:18:24.92ID:1gf/4w6V
結局>>712はなんか勘違いしてたのけ?
2018/04/12(木) 00:40:22.94ID:ysEoI2/K
>>691
Kotlin
とりあえず >>697 の通りのビットを面に対応させて全部出すだけのプログラム。
https://paiza.io/projects/MN90ETk9Kk3odk-Jlk2DEQ
回すと同一になるパターンを省くのはこれから考える。
2018/04/12(木) 00:58:08.26ID:/+iNh+t9
>>691 C
https://ideone.com/i4fH8G

なんかダメダメなコードになった
しかも8通りで合ってるのか分からん
2018/04/12(木) 01:09:29.57ID:Tk+dtr/S
>>691
https://ideone.com/sl1872
10通りかな

回転処理が自信が持てない
2018/04/12(木) 03:43:27.29ID:T93bDVFD
>>691-695
立方体の展開図は、384 通り。
同型のものを1つとして数えると、11 通りになる

この本に書いてある

超高速グラフ列挙アルゴリズム−〈フカシギの数え方〉が拓く,
組合せ問題への新アプローチ
ERATO 湊離散構造処理系プロジェクト・湊真一、2015

計算時間が何百億年も掛かるのが、数秒で解けた
「おねえさんの問題」で有名な、
湊真一の超高速グラフ列挙アルゴリズム ZDD
2018/04/12(木) 05:28:52.38ID:bmPcyOmC
おねえさんの問題作った人?w
すげえバズったよなアレwwww
723720
垢版 |
2018/04/12(木) 07:11:40.78ID:Tk+dtr/S
>>720
https://ideone.com/4YO0hK
回転処理を修正
べた塗り(全白,全黒)を除外
8通り
2018/04/12(木) 07:53:54.58ID:iYyApZ27
お題
正20面体の3色の塗り分けの全種類を展開図で示せ
725611
垢版 |
2018/04/12(木) 08:56:31.07ID:T93bDVFD
>>611
>2種類の数字だけでできている、N桁の数字は、いくつあるか?

これを馬鹿正直にnested loop すると、N=4, 5 では、4・5階層と、
Nの数によって、階層が異なってくるから難しい

Nが幾つでも、ループの階層が同じになるように、作らなければならない
726611
垢版 |
2018/04/12(木) 10:59:42.57ID:T93bDVFD
>>611
Ruby で作った

DIGITS = [4, 5] # number of digits 桁数
# 答え、567, 1,215

DIGITS.each do |digit|
count = 0
wrapper = Array.new digit - 1
# [*0..9] で、配列にする
[*0..9].combination(2) do |ary|
(digit - 1).times { |i| wrapper[i] = ary }

# 先頭が0 のものと、1つの数字だけを使ったものを排除する
# *wrapper で、外側の[ ] をはずす
count += ary.product(*wrapper)
.reject { |item| item[0] == 0 }
.reject { |item| item.uniq.length == 1 }.length
end
puts count
end
2018/04/12(木) 12:56:22.91ID:nAeVzt+r
>>611の通りに単純な数値計算をすればいいだけ
2018/04/12(木) 13:52:20.61ID:T93bDVFD
数学で解くのと、プログラミングで解くのは、異なる。
理論と実践。机上と現実

両方で解いて、確かめたものだけが、現実でも正しい
2018/04/12(木) 14:01:35.93ID:1gf/4w6V
うん?つまりコンピュータが存在しない時代の数学者はすべて間違えていると?
2018/04/12(木) 14:03:11.18ID:nAeVzt+r
簡単すぎる性質を使わないのはバカだと思う
N=10000の場合は?
2018/04/12(木) 21:33:52.89ID:mVSzUkBa
>>710は要するにN=197が無い
ttps://ideone.com/wVBe61
このリストで初めての欠品がN=197だ

N=197は計算しきれないような余りにもバカでかい円になるのか、そもそも数学的に存在しないのか、円が存在できないのか、分からない
N=197の円が存在できないとすれば、無いものを延々と探し続けることになる

ついでに、例えばN=320ともなると、この円が数学的に本当に存在してるのか、
それとも計算の誤差でOKが出てるのか、分からない
2018/04/12(木) 21:44:36.64ID:1gf/4w6V
数学的にはどんなNの円でも存在する
http://mathworld.wolfram.com/SchinzelCircle.html
ただしこの計算で出てくる円は(一部のNを除き)最小ではない

円周上の格子点は整数で計算出来るから誤差はないし検算も難しいものではない
2018/04/12(木) 21:47:30.14ID:mVSzUkBa
へぇ……
もはや数式まであるのかよ
2018/04/12(木) 21:55:34.08ID:1gf/4w6V
ということで>>712が何を言ってるのかがわからんわけですよ
2018/04/12(木) 22:04:42.99ID:vJMR7aa5
円が存在することと最小値が存在することは全く別だがな
十分に大きいnに対してはその辺微妙だと思うんだけどどう?
2018/04/12(木) 22:10:25.49ID:1gf/4w6V
最小は存在はするだろ。
計算や探索で出た数値が本当に最小かどうかは(俺には)わからんが。
2018/04/12(木) 22:18:36.57ID:iYyApZ27
>>735
>>715
2018/04/12(木) 22:35:20.29ID:iYyApZ27
N個の格子点を通る円は、
x, y方向に1移動してもN個の格子点を通る為
原点を通る円に限定しても一般性を失わない

N≧3とする
原点を通りちょうどN個の格子点を通る半径r未満の円は、原点からr未満の距離にある格子点しか通らない
原点からr未満の距離にある格子点は有限個であり、この中からN個の格子点を選ぶ選び方も当然有限個
特定のN個の格子点を通る円は1個しか存在しない為、原点を通りちょうどN個の格子点を通る半径r未満の円も有限個である

よって、ちょうどN個の格子点を通る(半径rの)円が存在すれば、最小値は存在する
2018/04/12(木) 22:39:01.75ID:vJMR7aa5
おお、わかりやすいな、サンクス
740デフォルトの名無しさん
垢版 |
2018/04/12(木) 22:55:32.88ID:7+VvzBGk
この円の問題は何度も取り上げられるが
毎回うだうだと話が続くだけで何の進展もないみ
アプローチを変えてNを限定するとか
半径を整数にするとかしてみたら
2018/04/12(木) 23:53:08.79ID:1gf/4w6V
円問題、昔書いたコード探してみたがよくわからないことやってるから困る…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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