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

■ このスレッドは過去ログ倉庫に格納されています
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/

宿題は宿題スレがあるのでそちらへ。
2017/04/14(金) 18:11:30.73ID:UkhykSdt
>>171 人気がないね…ループの知識だけあればOKでループの構成を考える腕力が多少あればそれなりに楽しめるお題と思ったんだけれども
新規性がないのが弱点なのかな?
次のお題を考えることにしようか
2017/04/14(金) 22:18:00.95ID:qDe/EUun
http://ideone.com/Et54St
意味ないけど最適化したら現実的な時間で終わるようになった。
今暇なので、いい暇つぶしになったなぁ。意味ないけど。
187デフォルトの名無しさん
垢版 |
2017/04/15(土) 10:54:03.85ID:tThpfxds
>>186
>DAD2HAH3:4,2
>DAD3D8D9DJH5H8HKSASKCAC5C8CK:394,38
>SAS2S3S4S5S6S7S8S9C2C3C4C5C6C7C8C9CT:1972800,16

どういうこと???
組み合わせの数がカードの枚数すら超えてるの???
2017/04/15(土) 11:05:02.69ID:eiwfOO/l
そいつのコード見てないから分からんが多分、最初の例なら
1)DAHA
2)DAD2
3)HAH3
4)DAD2,HAH3
みたいにカウントされちゃってるんじゃないか?
189デフォルトの名無しさん
垢版 |
2017/04/15(土) 17:04:06.01ID:gqnlgfq4
>>180
最後のは9じゃなくて8組だろ

同じマーク S:4組、C:4組、合計8組
同じ数字 2,3,4,5,6,7,8,9の各ペアで合計8組
最大組数は8組
2017/04/15(土) 17:17:26.54ID:gqnlgfq4
>>180 C
http://ideone.com/vD1JHy
2017/04/15(土) 17:40:29.91ID:gqnlgfq4
俺も間違ってたので修正した
http://ideone.com/vD1JHy

答えは2組,6組,8組じゃないの?
2017/04/15(土) 19:29:06.55ID:BbAH7YT3
>>189
反例

数字で(S2=C2)で1ペア、
残り8枚ずつで同スートのペアを8つくる
合計 9ペア

数字で(S2=C2, S3=C3, S4=C4) 3ペア
残りは6枚ずつになるので、6ペアできる
合計9ペア

その他 数字のペアを奇数個つくれれば、9を作れる
2017/04/15(土) 20:24:00.89ID:gqnlgfq4
>>192
意味がわかった
2017/04/15(土) 21:12:03.91ID:v99qvGb2
8bitの整数を一つ引数として与え、
上位4bitと下位4bit を符号なし整数として掛け算した結果の8bitを返す関数を
論理演算子のみで実装したもののうち、
もっとも実行時間が短いものを挙げよ。
論理演算は全て1命令1サイクルとする。
2017/04/15(土) 21:23:09.15ID:v99qvGb2
表引きで1クロックとかは無しね。
2017/04/15(土) 22:10:36.10ID:fG6QrlNX
最も実行時間が短いかどうかの判定ってNP完全っぽそう
2017/04/15(土) 23:11:44.46ID:v99qvGb2
8bitなら力技で解けないかな?
2017/04/16(日) 03:52:44.93ID:T2fHNlZE
http://ideone.com/QNbwWa
C++。えーん終わらないよ〜。
デバッグ覗いたら早い段階で答え出てるんだけど打ち切り方がわからない。

>>186などは題意を把握してなかった。
2017/04/16(日) 05:47:25.03ID:T2fHNlZE
ふえぇーん。1時間半回してもおわらないよー。
動的計画法すごい。
2017/04/16(日) 08:35:26.85ID:0couv4LD
>>180 Java
http://ideone.com/ABj7QB
2017/04/16(日) 14:11:29.20ID:oOWZ5kyJ
お題
これ
http://www.mext.go.jp/programin/
に相当するアプリケーションを
非Web環境でも使えるような仕様で
単一の言語でコーディングしろ
2017/04/16(日) 14:13:03.29ID:aobdGNjh
>>180 C
http://ideone.com/CH5bY4
2017/04/16(日) 16:14:29.58ID:z1TgtbB7
>>201 Squeak Smalltalk で
https://scratch.mit.edu/scratch_1.4/
2017/04/20(木) 11:21:43.08ID:QJAwY2Mb
>>201 Pharo Smalltalk のもあった
http://www.phratch.com/
2017/04/22(土) 15:45:58.46ID:Btp73K0S
こういうのに瞬時に回答できるようになるまでどのくらいの時間がかかるものなの?
2017/04/22(土) 21:31:15.12ID:DL7Mzdas
お題: くまモンをかく
2017/04/23(日) 10:45:10.81ID:33igmMUW
くまモン
2017/04/23(日) 20:01:13.92ID:fsvPYIZO
>>205
一瞬
2017/04/23(日) 20:24:02.53ID:nc0/ghBL
とんちかよw
2017/04/23(日) 20:37:32.86ID:7bZTt8wr
ああ、やっと意味が分かったw
2017/04/24(月) 05:27:50.71ID:+7Sa1g5s
>>206
http://light.dotup.org/uploda/light.dotup.org437888.png
http://ideone.com/eJ2xul
C++。あー大変だった。
以前ラウム螺旋作った時の流用したけど、タートルグラフィックはGUI無いとキツイなぁ。
似てないとか苦情は受け付けません。あしからず。
212sage
垢版 |
2017/04/24(月) 05:36:47.92ID:4BlFLqQl
>>206 glsl
http://glslsandbox.com/e#40107.0

似てないなぁ……

>>211 GJ! 先越されたー
2017/04/24(月) 05:43:14.19ID:+7Sa1g5s
>>212
時代は3Dか・・・。
ロートルにはできん芸当だ。GJ。
2017/04/24(月) 11:57:42.03ID:SbFm/aQk
>>212
へーこんなところあるんだ知らんかった
215デフォルトの名無しさん
垢版 |
2017/04/24(月) 21:55:43.67ID:WHcUZH3G
すみません。何言ってるかわからないだろうけど、
12桁の数字が並ぶ羅列は何を表しているのでしょうか???
/021/000/000/000
とか
2017/04/24(月) 22:16:03.57ID:9NN+cmWY
最初の3つが市外局番 次が区番号 残りが個人識別子だよ
2017/04/25(火) 05:30:26.30ID:8YHxJHtd
12桁くらいの数字を使う規格ってそれなりにありそうだけどな。
2017/04/25(火) 23:23:31.83ID:bgy6YsrD
お題:自然数nのヤング図形をもとめる
2017/04/26(水) 07:01:54.95ID:ezAhxtxU
>>218
ギブアップ。うぃきぺ見ても意味わかんない。頭爆発しそう。
2017/04/26(水) 07:24:25.57ID:5DpYjYxD
数字の入ったヤング盤じゃなくて、図形だけでいいの?
nのヤング図形を全部求めるってこと?
2017/04/26(水) 12:59:54.54ID:BGeLfl3x
>>218 Nim
https://wandbox.org/permlink/cNfdZ0908tcbQhod
222221
垢版 |
2017/04/26(水) 16:03:33.34ID:BGeLfl3x
>>221は1行目が「× Yaund」「○ Young」という恥ずかしい間違いから始まり
N <= 0の時のチェック漏れやら
長方形のパターン(N=10の時の[5,5]や[2,2,2,2,2])が抜けてるなど
ミスしまくってました orz てことで、修正します

>>218 Nim
https://wandbox.org/permlink/RUf5B0SVg0MozD25
2017/04/26(水) 16:07:13.33ID:ezAhxtxU
なーんだそれでいいのか。
それならなんとか組めるかも。
2017/04/26(水) 19:19:14.42ID:ezAhxtxU
>>218
http://ideone.com/6PRt5z
C++。こういうこと?やっぱりよくわからん。
2017/04/27(木) 10:01:02.40ID:LnKeLTZP
問題の想定解と合ってるのかな?
出題者のコメントが欲しいところ
2017/05/05(金) 08:45:57.67ID:f8yfM1E5
素人の言語処理100本ノック:まとめ
http://qiita.com/segavvy/items/fb50ba8097d59475f760
227デフォルトの名無しさん
垢版 |
2017/05/24(水) 21:48:00.75ID:7oyfe1wq
お題:以下を出力
857142
714285
571428
428571
285714
142857
2017/05/24(水) 22:07:09.20ID:L9mU+g8W
>>227
とりあえずPythonでやってみた
https://ideone.com/UCpMVm
2017/05/24(水) 22:19:15.30ID:lEJcnLZT
>>227
法則性がわからん
文字列じゃなくあくまで数値で?
2017/05/24(水) 23:21:53.31ID:FC0+qCJl
>>229
一番下の数字に1∼6を掛ければ
2017/05/24(水) 23:33:01.85ID:0ssPtL9D
>>227
C
http://ideone.com/eRLqLi
2017/05/24(水) 23:48:35.88ID:99+UTRWu
各々n/7の循環部だね
2017/05/24(水) 23:51:10.59ID:99+UTRWu
>>227
Ruby
6.downto(1){|i|p i*1000000/7}
2017/05/25(木) 01:00:30.19ID:vvyNjvHe
>>227 Perl

use 5.016;
use integer;
say 857142 / $_ for 1..6;
2017/05/25(木) 01:16:57.10ID:vvyNjvHe
>>234 間違えてたスマソ
Perl

use 5.016;
say 142857 * (7 - $_) for 1..6;

$ perl 9_227.pl
857142
714285
571428
428571
285714
142857
2017/05/25(木) 13:01:14.56ID:+8TeyhTL
>>227 Squeak/Pharo Smalltalk

(142857 * (6 to: 1 by: -1)) asStringWithCr

=> '857142
714285
571428
428571
285714
142857'
2017/05/25(木) 13:21:29.71ID:+8TeyhTL
>>227 GNU Smalltalk

6 to: 1 by: -1 do: [:i | (142857 * i) displayNl]

http://ideone.com/yNgDeB
2017/05/25(木) 18:49:32.83ID:F0MQej0l
>>227 common lisp
(do ((i 6 (- i 1))) ((equal i 0)) (print (floor (/ (* 1000000 i) 7))))
2017/05/25(木) 19:28:46.12ID:MmhezNib
お題が情報不足過ぎて何を使っていいのか悪いのかがわかんない
2017/05/25(木) 21:35:24.87ID:Z+pf95Ly
>>227
@Mathematica

In[1]:=142857//
  IntegerDigits//
  NestList[RotateLeft,#,Length[#]-1]&//
  Map[FromDigits,#]&//
  Sort//
  Reverse//
  Map[{#}&,#]&//
  Grid

Out[1] = 857142
     714285
     571428
     428571
     285714
     142857
241デフォルトの名無しさん
垢版 |
2017/05/25(木) 21:56:10.72ID:ShXkIc2G
>>227 Io
a := 999999 / 7
for(i, 6 * a, a, -a, i println)
2017/05/25(木) 22:10:21.35ID:73MQsPzv
>>227 Nim
for i in countdown(6,1): stdout.writeline i*142857
2017/05/25(木) 23:50:37.58ID:SwCyV6dp
>>227 ruby
puts (1..6).map {|i| i * 142857}.reverse

>>227 rust
fn main() {
//println!("{}", (1..7).rev().map(|i| (142857 * i).to_string()).collect::<Vec<_>>().join("\n"));
for i in (1..7).rev() {println!("{}", 142857 * i)}
}
244デフォルトの名無しさん
垢版 |
2017/05/27(土) 20:11:30.48ID:x9+XjHY5
227 R
write((6:1)*999999/7.",1)
2017/05/28(日) 14:54:52.19ID:/dM5Kslk
>>227 SWI-Prolog
main(N, X) :- X1 is X * N, write(X1), nl, N > 1, N1 is N - 1, main(N1, X).
:- main(6, 142857).
246プログラミングのお題
垢版 |
2017/06/01(木) 12:06:57.65ID:o30QeXgp
トランプ氏の謎の単語

covfefe

の謎を解明する。
247デフォルトの名無しさん
垢版 |
2017/06/01(木) 13:12:24.25ID:/fo1vNun

c,o,v,f,e,f,eの7文字をランダムに出力し続け、covfefeが完成するまでの文字数をカウント
2017/06/01(木) 13:47:08.78ID:sszEh+oH
>>247 Squeak/Pharo Smalltalk

| count covfefe buffer |
count := 0.
covfefe := 'covfefe' asOrderedCollection.
buffer := covfefe copy atAllPut: $*.
[ count := count + 1.
 Transcript nextPut: (buffer removeFirst; add: covfefe atRandom).
 (count isDivisibleBy: 1000) ifTrue: [Transcript endEntry].
 buffer = covfefe
] whileFalse.
Transcript endEntry.
^count "= 34301 "
2017/06/01(木) 23:30:50.24ID:MQJNOblg
>>247 効率悪いけれど…
Perl

$w='covfefe';
@l=split '',$w;
do {
$_ .= $l[int(rand(7))];
} while (!/$w/);
print index $_, $w . "\n";
2017/06/01(木) 23:44:01.17ID:MQJNOblg
>>249
ゴメン、これだと最初に見つかったときに0になっちゃうんで
「完成するまでの文字数」を出すためには
× print index $_, $w . "\n";

○ print index($_, $w) + 7 . "\n";
に修正させてください。
2017/06/02(金) 02:47:24.66ID:znhUDH9D
>>247 Nim

import random
const word = "covfefe"
var count, match = 0
randomize()
while match != word.len():
    let ch = word[random word.len()]
    stdout.write ch
    match = if ch == word[match]: match + 1 else: 0
    inc count
echo "\n", count
252デフォルトの名無しさん
垢版 |
2017/06/02(金) 07:41:45.64ID:r1TSATN8
それだとccovfefeのときとか抜け落ちるんじゃね?
2017/06/02(金) 14:13:15.27ID:znhUDH9D
>>252
その通りですね
お題のcovfefeなら安直な修正でいいかな

-    match = if ch == word[match]: match + 1 else: 0
+    match = if ch == word[match]: match + 1 elif ch == word[0]: 1 else: 0
2017/06/02(金) 20:36:39.00ID:GZbUsfWf
>>247 ruby
covf, buff = 'covfefe', ''
buff += covf.chars.sample until buff.end_with? covf
p buff.size
2017/06/02(金) 21:34:10.62ID:ECCI41T/
お題: 2つの別々の牧場ウィンドウがあり、その中に複数の牛がうごめいている。複数の牛を選択して、別の牧場ウィンドウにドラッグ&ドロップできるようにしなさい。
2017/06/02(金) 21:43:02.00ID:ZGhpg2JU
GUIの課題ってコードも長くなりがちたから答えにくくない?
2017/06/02(金) 21:46:38.91ID:ECCI41T/
賞金は早い者勝ちで三千円。スクリプト野郎どもにはできないだろう。へっ。
2017/06/02(金) 22:03:27.70ID:ECCI41T/
>>256
githubがあるじゃないか。
2017/06/02(金) 22:03:48.67ID:doJoDkLD
賞金とか誰かと思ったら片山博文MZか。
2017/06/02(金) 23:44:04.74ID:cFhdiKGB
三千円じゃ安い
2017/06/03(土) 01:24:32.19ID:4TZnG99D
>>255
動的言語のscriptでもQt,Wxwidget,Tkinterなど色々のGUI fwが使えるから書けるよ。
でも、エッセンスがなく、会コードが無駄に長くなるお題は、作成に時間がかかるし獣よな技術はないし
趣旨を考えで出題しろよ。
すくなくとも自分で作る気になれる題を出せ
2017/06/03(土) 01:26:10.05ID:4TZnG99D
>>261
会コードが無駄に長くなるお題は、作成に時間がかかるし獣よな技術はないし

解コードが無駄に長くなるお題は、作成に時間がかかるし技術はないし
2017/06/03(土) 01:50:43.99ID:4TZnG99D
でも、まぁ地獄の沙汰も金次第というじゃありませんか。
お見積もり30万円以上でしたらpython+tkinterで書いてお納めすtることも
検討させていただきますよ。ハイ
更にハイグレードに300万円だったらPerl+Ptkもお付けいたいます。
いかがですか?だんな
もみ手
2017/06/03(土) 19:38:09.78ID:bt+/AaG5
【問題】
アルバートとバーナードは、シェリルと友達になったばかりです。
シェリルの誕生日を2人は聞きましたが、彼女は10個の日にちを候補としてあげました。

・5月15日、5月16日、5月19日
・6月17日、6月18日
・7月14日、7月16日
・8月14日、8月15日、8月17日

それからシェリルは、アルバートに「月」だけを、バーナードに「日付」だけをそれぞれ教えました。
アルバート「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」
バーナード「僕はシェリルの誕生日を知らなかったけど、今は知ってるよ」
アルバート「それなら僕もいつだか知っているよ」
シェリルの誕生日はいつでしょうか?

プログラムを書いてプログラムに解かせること。
2017/06/03(土) 20:24:51.42ID:LavjhbKR
Console.WriteLine("知らんがな");
2017/06/03(土) 20:43:26.68ID:GyX0IIiI
(begin (display "知らんがな")(newline))
2017/06/03(土) 21:39:03.81ID:3br47TQ3
print("知らんがな")
2017/06/03(土) 21:39:54.96ID:+ZiDT+Cr
世界で初めて原爆実験が行われた日を
わざわざ答えに選んだのは何か意図があってのこと?
2017/06/04(日) 02:59:00.78ID:vYNPJugT
2年前のログ見てみたけどそのときはここに持ちこむ奴いなかったんだな
Prologおじさんとかが嬉々としてやりそうだけど
2017/06/04(日) 03:31:57.97ID:JSJPiIxT
7月16日
2017/06/04(日) 11:23:47.25ID:ICo3ogub
>>264 f#
http://ideone.com/cBGHxs
2017/06/04(日) 12:17:11.76ID:/fL6DBjJ
>>264 Perl

@md = ([5, 15], [5, 16], [5, 19],
[6, 17], [6, 18],
[7, 14], [7, 16],
[8, 14], [8, 15], [8, 17]);
push @{$c{$$_[1]}}, $$_[0] for @md;
push @{$d{$$_[0]}}, $$_[1] for grep{1 < @{$c{$$_[1]}}} @md;
while (($m, $v) = each %d) {
print "$m/$$v[0]\n" if 1== @$v;
}

実行結果

$ perl 9_264.pl
6/17
2017/06/04(日) 12:22:24.53ID:/fL6DBjJ
>>272
7月16日が正解なら 解き方間を違えているのかも知れん
2017/06/04(日) 14:27:12.46ID:ArM8onCc
アルバート「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」
5,6月を排除

バーナード「僕はシェリルの誕生日を知らなかったけど、今は知ってるよ」
14日を排除

アルバート「それなら僕もいつだか知っているよ」
残り候補が一つの月 -> 7月16日
2017/06/04(日) 15:02:32.31ID:/fL6DBjJ
>>272 の解き方で考えたこと

アルバート「僕は(「月」だけしか教えてもらっていないので)シェリルの誕生日を知らないけど、
      (「日付」だけを教えてもらった)バーナードも知らないよ」
⇒「日付」だけ聞けば誕生日だと判明する、即ち日の登場回数が一回だけの月日、
 具体的には5月19日、6月18日は対象外とみなし除去

バーナード「僕は「日付」だけを教えてもらっても)シェリルの誕生日を知らなかったけど、
アルバートが「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」と言うのを聞いて
今は知ってるよ」
⇒日の登場回数が一回だけの19日、6月18日を除去したあと、
 登場回数が一回だけの日が バーナードの聞いた「日付」に当たり、
 誕生日だと考えられる。

⇒6/17

この考え方が違ったんだろうな…
2017/06/04(日) 15:42:35.42ID:ArM8onCc
>>275
アルバートは月を知ってるが、バーナードも知らない事を確信できるのは、
18,19日を含まない7,8月のどちらかという事になる -> 5,6月は全削除

それを聞いてバーナードは誕生日がわかるので、7,8月両方に含まれる14日ではなく、
15,16,17日のどれかになる

それを聞いてアルバートがわかるので、候補が一つしか残ってない7月16日という事になる
2017/06/04(日) 16:11:15.57ID:Thsr1gL6
6/17の方ぽいね
2017/06/04(日) 16:23:55.65ID:8topuOK/
5,6月は全排除でしょ
2017/06/04(日) 16:27:46.47ID:/fL6DBjJ
>>278
そこがオレにはよく理解できていなくてさ。
まぁ言葉にあいまいな面があるかもしれんから解釈に差が出たのかな
2017/06/04(日) 16:46:10.26ID:3NGxsH/O
>>279
解釈の差だけが問題じゃないだろ

> ⇒日の登場回数が一回だけの19日、6月18日を除去したあと、
>  登場回数が一回だけの日が バーナードの聞いた「日付」に当たり、
>  誕生日だと考えられる。

18日、19日は日の登場回数が一回だけであるということは
他の日は複数回登場するということだからその論理は破綻してる
2017/06/04(日) 16:54:14.37ID:/fL6DBjJ
>>280
それは誤解というか解読不足。
5月19日、6月18日が除去されることによって、
元々複数回登場していた他の日のうち6月17日が単一の日となり
17日という日付さえ知らされれば、誕生日は6月17日と判明できる。
2017/06/04(日) 17:03:26.79ID:ArM8onCc
>>281
客観的に見て、アルバートがバーナードも知らない事を確信できる為には、
アルバート自身が知っている月には18,19日が含まれていない必要がある
従って、アルバートが知っている月は5,6月ではないという事
2017/06/04(日) 17:07:47.61ID:/fL6DBjJ
>>282
なるほど考え方は理解できた。
でも5月6月には他の日もあるからバーナードが聞かされた日がそれらで無いとはっきりしていないうちに
月ごと排除して大丈夫?
2017/06/04(日) 17:11:33.29ID:/fL6DBjJ
>>281
17日は8月17日もあるから、
6月が17日だけになったからといって、
6月17日が誕生日だとするのは
アルバート、バーナードの台詞を根拠に基づく論理に
無理がないか検証不十分だという気が自分でもしてきた
2017/06/04(日) 17:12:55.48ID:ArM8onCc
>>283
逆に最初の時点でアルバートはバーナードが知らないとは確信できない
例えばアルバートは6月と聞かされた場合、6月18日の可能性もあるので、
それだとバーナードは18日と聞かされているから知ってるかもしれない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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