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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/02/03(日) 11:21:53.20ID:72eosYJ+
プログラミングのお題スレです。

【出題と回答例】
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.2ch.net/test/read.cgi/tech/1538096947/
2019/02/11(月) 02:35:42.19ID:ucqIUq+7
>>85
一番能書き垂れてんのお前だろ
クソみたいな御託並べる前に自分のことを考えろっつったろうが

GMPが一体どこで
> n**2%(2**24-1) のリスト
なんか使ってんだ?91で割った場合のテーブルでさえ12byte必要だってのにどうやってそんな巨大なテーブル用意するんだ?
GMPの中身なんか数学の成果の塊だぞ?お前が数学したくないだか出来ないだか知らんがアルゴリズム考えるようなスレでクソみたいなこと喋ってんじゃねぇよ
お前はコードを書いても価値がない
2019/02/11(月) 02:35:55.83ID:8Hdd2FlG
単なるbitmaskで済まない様な場合
あるいは除算して剰余を求めるなら
さんざ研究されていると思うから自力で1から考える前に
先人の業績を知れってことだろ
アバヨ ノシ
2019/02/11(月) 02:36:00.30ID:IhaR3BEX
お題:ポーカーダイス

通常のサイコロを5個振って出た目をポーカーの役になぞってそれぞれの出現確率を求める。
役は、5カード、4カード、ストレート、フルハウス、3カード、2ペア、1ペア、ブタ(ノーペア)
例えば出た目が 1,1,3,1,4 ならスリーカード。2,5,4,6,3 ならストレート。
5カードは6/(6^5)、4カードは(5*5*6)/(6^5)というように数学的に
求めても難しくはないのですが、ここはプログラミングのスレなので
全通り力技でチェックして求めてみてください。

解答例:C言語 https://ideone.com/4X62Am
2019/02/11(月) 03:04:24.50ID:8Hdd2FlG
6^5総当りせよってか…
native compiler系言語で力技か
2019/02/11(月) 03:20:03.89ID:K/18SmCD
Jニキはよ
2019/02/11(月) 03:29:32.98ID:ucqIUq+7
大した数じゃないからズルいことが出来る
https://ideone.com/yEcdPV
2019/02/11(月) 04:00:05.29ID:8Hdd2FlG
お なかなか
2019/02/11(月) 08:16:46.17ID:b3B7Bg4u
python3
https://ideone.com/k6Ea4j

最後の出力部分はpython 3.6以降だと
for k,v in hand.items(): print("{} :\n {} / 7776 ({} %)".format(k,v, round(100*v/7776,2)))
でいけるけど実行環境が3.5なのでやむなく
2019/02/11(月) 16:44:30.42ID:xTuBWJbc
なんか数学でもできる力技お題増えてきたな
もっとプログラミングじゃないとできないような良いお題無いんだろうか
2019/02/11(月) 17:22:02.16ID:7gZS39yo
>>96
そんなの存在しないんじゃない?
2019/02/11(月) 17:28:00.80ID:6aFdKLEP
確率の問題でも特定の疑似乱数と種を使った偏りを求めるとかは数学では難しい
2019/02/11(月) 17:37:44.75ID:adj8EvAq
お題: 日本語文字とカッコ { } とスラッシュ(/)で構成された入力文字列Sが与えられる。{ }で囲まれ、かつ
スラッシュで区切られた部分文字列について、それぞれ場合分けを行って、複数の文字列のリストに展開して改行区切りで出力せよ。
カッコの対応が間違っている場合はERRORを出力せよ。

(例1) {ひまわり/あさがお}は{植物/花}です。
(出力結果)
ひまわりは植物です。
あさがおは植物です。
ひまわりは花です。
あさがおは花です。
2019/02/11(月) 17:59:47.38ID:BEdrdhIs
なお、展開の順序については問わない。カッコがなくなるまで繰り返し展開せよ。
2019/02/11(月) 18:20:25.29ID:BEdrdhIs
(1) {あ{いう/え}/お{か/き}/く}け{こ}
(2) さ{し/す}せそ{{た/ち}つ/て}と
2019/02/11(月) 19:00:31.50ID:MkFOBvt9
ネストありかよ、ちょっと面倒だな
2019/02/11(月) 19:03:55.20ID:BEdrdhIs
ヒント: まず、適当な場所でブツ切りにしてノードに分ける。
2019/02/11(月) 19:20:26.84ID:Q78+FEDq
>>101 で、どう言う結果を正解とするの?
2019/02/11(月) 19:32:34.31ID:BEdrdhIs
(1)の答え(※ソート済み)
あいうけこ
あいうけこ
あえけこ
あえけこ
おかけこ
おかけこ
おきけこ
おきけこ
くけこ
くけこ
くけこ
くけこ
2019/02/11(月) 19:33:13.25ID:BEdrdhIs
(2)の答え(※ソート済み)
さしせそたつと
さしせそちつと
さしせそてと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
さすせそてと
2019/02/11(月) 19:36:37.18ID:MkFOBvt9
これでいいのか?

> (1) {あ{いう/え}/お{か/き}/く}け{こ}
あ いう け こ
あ え け こ
お か け こ
お き け こ
く け こ

> (2) さ{し/す}せそ{{た/ち}つ/て}と
さ し せそ た つ と
さ す せそ た つ と
さ し せそ ち つ と
さ す せそ ち つ と
さ し せそ て と
さ す せそ て と
2019/02/11(月) 19:37:56.93ID:MkFOBvt9
あれ?
変化しないケースも出力するの?
2019/02/11(月) 19:40:50.96ID:BEdrdhIs
>>107
間違い。
2019/02/11(月) 19:46:19.44ID:adj8EvAq
ごめんなさい。間違えました。重複は単一化して下さい。
2019/02/11(月) 19:52:58.89ID:adj8EvAq
>>105-106 >>109 間違い。
2019/02/11(月) 20:21:24.27ID:BEdrdhIs
単純に場所分けを樹木図で考えると重複ができるようだ。すみません。
113デフォルトの名無しさん
垢版 |
2019/02/11(月) 20:48:49.82ID:uHNor3GB
お題:Aが真であるならばBが真である ことをプログラムしなさい。
2019/02/11(月) 21:04:41.39ID:BEdrdhIs
アホちゃいまんねん、パーでんねん。
2019/02/12(火) 00:09:52.31ID:VqanzRzk
バカなのか?AとBに因果関係があるわけじゃないし、この世の全てがプログラム言語でマッピングできるわけじゃない、数学徒は帰れ
2019/02/12(火) 00:29:24.58ID:xM7yD0R2
const A = true;
const B = A === true ? true : false;
console.log(B);
2019/02/12(火) 01:58:51.98ID:ww6cDCbZ
>>113
If A = True Then
B = True
End if
2019/02/12(火) 01:59:52.12ID:/350tEey
>>113
!A&&B
2019/02/12(火) 02:31:32.61ID:qK/pLy4w
>>118 python
B = A
2019/02/12(火) 02:31:55.89ID:qK/pLy4w
>>113 の間違い
2019/02/12(火) 02:52:28.28ID:jwrsqhME
{あ{いう/え}/お{か/き}/く}けこ
 あいうけこ
 あえけこ
 おかけこ
 おきけこ
 くけこ

さ{し/す}せそ{{た/ち}つ/て}と
 さしせそたつと
 さしせそちつと
 さしせそてと
 さすせそたつと
 さすせそちつと
 さすせそてと
2019/02/12(火) 07:13:30.28ID:WW36R8Qd
>>113
> Bが真である
をどう解釈するかによる
文字通りの解釈なら
If A Then Assert(B)
かな
Bを真にすると解釈するなら>>117が正解かな
>>116>>119はAが偽の時にBを偽にしちゃうので誤りやね
2019/02/12(火) 09:01:25.53ID:eC1lEXzI
>>117も間違い。偽のときは未定義なんだからエラー吐かなきゃ
2019/02/12(火) 10:15:35.66ID:EWuoyvxz
未定義じゃねえだろアホ
2019/02/12(火) 10:18:36.24ID:eC1lEXzI
>>124
>>113
2019/02/12(火) 10:38:38.54ID:/lUdPPCt
Aが偽の時はエラー吐かなきゃいけないとかBを偽にしてはいけない
とかいうのは勝手な拡大解釈でしかない
2019/02/12(火) 10:45:59.39ID:dUnMTtNo
真面目に考えるだけ時間の無駄
2019/02/12(火) 11:03:54.75ID:8L309PqZ
>>125
アホかお前
AならばBでAが偽ならばそれは真だっつーの
義務教育からやり直せよ
2019/02/12(火) 11:18:15.32ID:eC1lEXzI
>>128
> AならばBでAが偽ならばそれは真だっつーの

えっ、どういうことなの?
それは
AならばB
のとき
AでないならばB
ということ?
BはAに関わらず真ということ?

> AならばBでAが偽ならばそれは真だっつーの

の意味がよくわからん…
2019/02/12(火) 11:29:33.12ID:dUnMTtNo
>>129
論理としては A => B (AならばB)は対偶論理 ¬B => ¬A (BでないならばAでない)を成り立たせるために通常 ¬A∨B (AでないかまたはBである) で定義される
つまり A => B という論理式は A が偽であれば B の真偽に依らず真になる

だから何だという話ではある
2019/02/12(火) 11:30:20.12ID:7Ldk0kbC
>>129
そう決まってるじゃん
前提が偽ならどんな推論でも導けるし真になる
論理学の初歩
2019/02/12(火) 11:36:13.30ID:puzbyhsI
AならばBと
Aが真ならばBが真
とは違うだろ
2019/02/12(火) 11:43:29.03ID:puzbyhsI
「AならばB」
と言う命題は
「Aが真でBが真である
Aが偽であればBは真である」という命題の
上の文の3行目のはじめの部分をプログラムしろということだぞ
2019/02/12(火) 11:45:33.01ID:puzbyhsI
4行目間違えた
2019/02/12(火) 12:10:48.64ID:2r3VUiS2
A: 自然数 : 1,2,3,・・・・・
B: 整数  : ・・・・・ , -2,-1,0,1,2,3,・・・・・

AならばBである
AでなければBでもない
BでなければAでもない
136デフォルトの名無しさん
垢版 |
2019/02/12(火) 12:11:50.75ID:/o8EBvgR
>>99 Bash
https://ideone.com/rMrZEf
2019/02/12(火) 12:12:39.52ID:2r3VUiS2
>>135 間違い
A: 自然数 : 1,2,3,・・・・・
B: 整数  : ・・・・・ , -2,-1,0,1,2,3,・・・・・

AならばBである
Aでなければ不定
BでなければAでもない
2019/02/12(火) 12:31:09.58ID:eC1lEXzI
>>130
ありがとうこれは分かりやすい。
高校出てないけど義務教育は真面目にやったんだがなぁ…こんなのあったっけ?
2019/02/12(火) 12:36:07.27ID:puzbyhsI
そういうことは日本の教育問題になるからな
2019/02/12(火) 12:42:53.41ID:YxhBMJOC
>>99
2019/02/12(火) 12:43:36.37ID:YxhBMJOC
送信しちゃった
https://paiza.io/projects/33hywoLmd5aRCzkTicwRUQ
2019/02/12(火) 12:47:20.67ID:cy1s3mXO
>>136
よくできました。

お題: ひらがなで与えられた五段活用動詞の五段活用を表示しなさい。
明らかに五段活用動詞でない場合は、ERRORと表示しなさい。
2019/02/12(火) 13:39:39.30ID:dUnMTtNo
>>138
義務教育ではやらない
というか高校数学でも明示的に教えはしない(証明ではしばしば暗に使う)
そして大学の数学科では何をおいてもまず最初に学ぶ
2019/02/12(火) 14:05:55.07ID:/4hrfCEw
ゆとり以降は知らんが高校で習ったぞ
2019/02/12(火) 14:14:27.12ID:eC1lEXzI
高校が義務教育なら俺も高校行けたのに
2019/02/12(火) 16:12:20.21ID:MCXQbCzx
>>145
必要な感じがするのであれば高認受けて高卒と同等にでもなりなさい。昔の大検と違ってそれだけでも高卒扱いになる。
その後大学行くかどうかはご自由に。金と時間があまりないなら通信制ってのもあるよ。
この頃はネットの大学もあるな。よく知らんけど。

まあしかし既に社会人になって何十年も稼いできてしまった人の場合はもはやどうでも良い話かな。
2019/02/12(火) 17:14:44.20ID:AqcDbyue
>>138 理解したいと思った気持ちが大事。深入りの必要はない。

プログラムの世界というのは、客のニーズを知らなくてもなんでも解決しないといけないから、その時々で勉強するしかない。 実践の世界。
素地がある方が理解は早いとは思うが、気にすることは無い。

その時に必要なものを勉強すれば(理解できれば)良い。 全ての学問を習得するなんて不可能なんだから、学問なんてあまり気にしない方が良い。

ただ、論理的な思考訓練はやった方が良いとは思うが、大学でできるとは思わない方が良い。 ひたすらプログラムを続けた方が思考訓練になると思うぞ。
2019/02/12(火) 17:34:27.64ID:AqcDbyue
>>113 しかしさ、この日本語は日本語として成り立っていないんじゃないの?
日本語としても論理学としても
日本語の曖昧さを残したまま、お題にする方がおかしい。

これを自分の顧客に提示して見なさい。 バカじゃないのと言われるよ。 理解力がないと思われるだろうな。
2019/02/12(火) 18:50:16.09ID:zaXjz+ge
説教厨あらわる
2019/02/12(火) 19:11:01.53ID:Rw1aIHZT
>>132
その2つの意味後違うって言うならそうなるセマンティクスを提示してみせろや
「普通は」同等に扱うだろ
2019/02/12(火) 19:12:14.58ID:Rw1aIHZT
>>150
意味後違う → 意味が違う
152デフォルトの名無しさん
垢版 |
2019/02/12(火) 19:59:08.96ID:mxj4fC0D
チコ 「A->Bの意味も知らずにボーっとコードかいているんじゃねよ!」
2019/02/12(火) 21:33:58.92ID:4uAoJeXz
>>99 Ruby
def hoge(str)
  return str if str.match?(/\A[^{}\/]*\z/)
  raise 'ERROR' if str.match?(/\A[^{]*}|{[^}]*\z/)
  a, *b = str.scan(/(?<={|\A)[^{}]*(?=}|\z)/).map{|s| s.empty? ? [''] : s.split(?/)}
  s = str.gsub(/(?:{|\A)[^{}]*(?:}|\z)/, '%s')
  a.product(*b).flat_map{|e| hoge(s % e)}.uniq.sort
end

%w[
  {あ{いう/え}/お{か/き}/く}け{こ}
  さ{し/す}せそ{{た/ち}つ/て}と]
].each{|s| puts hoge(s), $/}
# =>
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ

さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
2019/02/12(火) 22:11:55.07ID:afakhEje
>>133
>「Aが真でBが真である
>Aが偽であればBは真である」

完璧に間違っていますね…Aが偽であってBが偽であってもいいのです
あなた、もう馬鹿としかいいようがないですね、論理学の教科書が読めなかったの?いや、日本語が読めなかったの?
生きていること自体が罪悪といわずして何といえばいいのか…

死ね
2019/02/12(火) 22:13:32.20ID:afakhEje
>>132
一緒ですよ
156デフォルトの名無しさん
垢版 |
2019/02/13(水) 05:57:47.09ID:ttYQgqMy
お題
print(a)
のように変数の宣言や代入なしで
使用するとどうなろか
2019/02/13(水) 07:02:03.53ID:Xe5jZGpg
>>156
日本語でok
2019/02/13(水) 07:39:48.48ID:aN9MpGEF
EXCELシート名が1文字のシートが数シートある。これをwindows10でVB6を使いデータベースで読み取ってみせよ。
2019/02/13(水) 08:26:40.04ID:ds2YQTN5
>>154
だから>>134で4行目間違えたって書いてあるだろ
よく読め
2019/02/13(水) 08:38:42.75ID:ds2YQTN5
>>155
AならばBと
Aが真ならばBが真
が同じならば
AならばBと
Aが偽ならばBが真
と同じ
AならばBと
Aが偽ならばBが偽と
同じ
ということになるぞ?
これは同じじゃないから君の言ってることは
間違ってるということだな
2019/02/13(水) 08:43:59.85ID:ds2YQTN5
よく考えたらやっぱり同じだな
2019/02/13(水) 09:12:06.89ID:B8qJWD6e
>>160
糞コテの肩は持ちたくないがなんだこのくっそみたいな日本語は

「AならばB」と「Aが真ならばBが真」が同値ならば
「AならばB」と「Aが偽ならばBが真」と「Aが偽ならばBが偽」が同値
って言いたいのか?

同値になるわけねえだろ
ABの真偽は4パターンしかねえんだから、いくらお前が無能でも全4パターンくらい考えてからレスしろよ

大体、任意の命題Pに対して「P」と「Pは真である」が同値にならないケースってなんだよ
馬鹿も休み休み言えよホント
2019/02/13(水) 11:03:26.26ID:ds2YQTN5
>>162
>>161に「よく考えたら同じだな」って書いてあるじゃん
2019/02/13(水) 11:23:09.04ID:B8qJWD6e
「よく考えたらやっぱり同じだな」だけでは何と何が同じだと思ったのかわからない
悪びれた様子もなく前後の文脈からも推論不可
とてもまともとは思えない
2019/02/13(水) 11:31:27.70ID:ds2YQTN5
>>164
わかりにくくてごめんね
166デフォルトの名無しさん
垢版 |
2019/02/13(水) 11:36:53.06ID:ttYQgqMy
>>156 Lua
print(a)
実行結果
nil
2019/02/13(水) 11:59:11.28ID:kZE3tAhm
言語とか使えるライブラリとか制限しないと
意味が無くなっている希ガス
言語指定した場合でも特定の文法を使っては
ならないとか制限加えると面白いものが
出来るような,,,
2019/02/13(水) 12:32:49.57ID:B8qJWD6e
>>165
お前の場合、わかりにくいんじゃなくてわかりえないの
日本語もおかしいし
2019/02/13(水) 12:36:48.35ID:ds2YQTN5
>>168
俺の文が不親切すぎたよな
ごめんねごめんねー
2019/02/13(水) 13:30:26.24ID:0cDEleYh
>>167 制限なんかしなくてよいよ。 ライブラリが嫌いならあまりライブラリが使えそうにないお題を出せばよいだけだし。
例えば正規表現ライブラリなんて装備されていない言語は殆どないだろうし、標準装備している言語とそうでない言語で不公平になるし。
使えるものはすべて駆使して解けばよいだろ。
2019/02/13(水) 15:40:07.94ID:0cDEleYh
>>113 python
if A: B=A

結果
Aが True の時 B(結果)= True
Aが False の時 B(結果)= None (変わらず)
Aが False の時 B(結果)= False (変わらず)
Aが False の時 B(結果)= True (変わらず)
172デフォルトの名無しさん
垢版 |
2019/02/13(水) 18:13:27.57ID:ttYQgqMy
>>113 Lua
functio naraba(A, B)
if A == B then
return true
else
return B
end
end
2019/02/13(水) 18:26:24.24ID:J6DmHrNb
>>172 それちゃうよ。
A が False の時 B がFalseに限定される
2019/02/13(水) 18:27:28.53ID:J6DmHrNb
と言うか何を返してるんだろ。
175デフォルトの名無しさん
垢版 |
2019/02/13(水) 19:13:38.60ID:ayAZ2qec
>>156
C言語のようなコンパイルする言語だとだいたいはコンパイル時にエラーになって実行不能だろうなあ(そうでない言語もあるかも知れないが)。
更に print がない言語もある。少なくともCの標準的なライブラリにはない。printf()やputs()のようなものはある。
なので変数宣言すればコンパイルは通るが今度はリンクで関数が見つからなくてエラーになりこれまた実行不能。

まあでも言語や環境で起こることは違って来るので答えは沢山出てくるかも知れない。(またはほとんど相手にされないかだ)。
2019/02/13(水) 21:01:39.06ID:7GscGWa9
お題
長方形のサイズが指定された時、その長方形に敷きつめられるパターン全て列挙
回転もおkかは好きに定めていい
例: 2 3
#

###

#
#

###
###
2019/02/13(水) 21:10:56.19ID:9nMuJOxB
回転もOKの場合は↓も入るってことかの?

##
#
2019/02/14(木) 00:46:56.24ID:QGThOkDI
>>176 なんか図が良くわからないな。

2 x 3 なら、そのパーツは, / は空きだとすると


*//
***

/**
――-
*//
*//

/**
/**
―――
*//
**/

/**
//*
――
***
***
――-
みたいな感じかな。パーツの回転を許す許さないは自由という事。
3 x 3 の時は斜めのパーツも許すんだろうね。
*//
/*/
//*
これが一つのパーツ?
2019/02/14(木) 00:50:00.40ID:QGThOkDI
>>178 斜めのパーツは現実的には作れないし、組み合わせが膨大になるから、許さない方が良いのかも。
縦、横に繋がっていないパーツは除外かな。
2019/02/14(木) 01:06:21.81ID:QGThOkDI
これはかなり難しいお題になるんじゃないの。
パーツを少なくするためには、穴開きパーツも許さない方が良さそうだし。

パーツは、空白は 0 基本図形は 1として表した方が良いのかな。 2 x 3 なら

100
110

011
001
とか
2019/02/14(木) 01:48:31.30ID:anuIpNjB
>>178
同じ形のパーツだけで指定の長方形に敷き詰められる物を探すんじゃろ
182一尾圭吾
垢版 |
2019/02/14(木) 02:36:27.51ID:ODX5iexG
プログラミング超初心者です
自動で2ちゃんにコピペを書き込むようになりたいんですがそれってかなりレベル高いスキルですかね?
183一尾圭吾
垢版 |
2019/02/14(木) 02:39:09.40ID:ODX5iexG
>>10うわぁww眉毛剃っとるwwwwww
流石やな....ヤクザやんw
2019/02/14(木) 05:27:21.29ID:6Gfgc+2u
>>150
三値論理
185デフォルトの名無しさん
垢版 |
2019/02/14(木) 06:52:51.05ID:J1vF692V
論理プログラムのスレはありませんか?
2019/02/14(木) 08:13:17.60ID:anuIpNjB
>>176
回転なしなら縦の長さの因数と横の長さの因数それぞれの組み合わせの四角を列挙すればええんよな?
回転ありだとどうすればええんじゃろ
2019/02/14(木) 08:52:55.94ID:QGThOkDI
>>176 必要なパーツの種類と個数を出せば良いんだろう。
回転させて使おうがどうしようが自由。
188デフォルトの名無しさん
垢版 |
2019/02/14(木) 09:41:08.57ID:9tQDIG7c
>>178
パターン全てって書いてあるから単に 2^ドット数 だと思ってたんだが、人間が見た時に何らかの意味がありそうなパターンって事なの?
しかし何に意味がありそうと感じるかは主観の問題だからここでのお題としては適切ではないよね。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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