プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/

宿題は宿題スレがあるのでそちらへ。
0192デフォルトの名無しさん
垢版 |
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を作れる
0194デフォルトの名無しさん
垢版 |
2017/04/15(土) 21:12:03.91ID:v99qvGb2
8bitの整数を一つ引数として与え、
上位4bitと下位4bit を符号なし整数として掛け算した結果の8bitを返す関数を
論理演算子のみで実装したもののうち、
もっとも実行時間が短いものを挙げよ。
論理演算は全て1命令1サイクルとする。
0205デフォルトの名無しさん
垢版 |
2017/04/22(土) 15:45:58.46ID:Btp73K0S
こういうのに瞬時に回答できるようになるまでどのくらいの時間がかかるものなの?
0215デフォルトの名無しさん
垢版 |
2017/04/24(月) 21:55:43.67ID:WHcUZH3G
すみません。何言ってるかわからないだろうけど、
12桁の数字が並ぶ羅列は何を表しているのでしょうか???
/021/000/000/000
とか
0220デフォルトの名無しさん
垢版 |
2017/04/26(水) 07:24:25.57ID:5DpYjYxD
数字の入ったヤング盤じゃなくて、図形だけでいいの?
nのヤング図形を全部求めるってこと?
0222221
垢版 |
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
0227デフォルトの名無しさん
垢版 |
2017/05/24(水) 21:48:00.75ID:7oyfe1wq
お題:以下を出力
857142
714285
571428
428571
285714
142857
0235デフォルトの名無しさん
垢版 |
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
0240デフォルトの名無しさん
垢版 |
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
0241デフォルトの名無しさん
垢版 |
2017/05/25(木) 21:56:10.72ID:ShXkIc2G
>>227 Io
a := 999999 / 7
for(i, 6 * a, a, -a, i println)
0243デフォルトの名無しさん
垢版 |
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)}
}
0244デフォルトの名無しさん
垢版 |
2017/05/27(土) 20:11:30.48ID:x9+XjHY5
227 R
write((6:1)*999999/7.",1)
0246プログラミングのお題
垢版 |
2017/06/01(木) 12:06:57.65ID:o30QeXgp
トランプ氏の謎の単語

covfefe

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

c,o,v,f,e,f,eの7文字をランダムに出力し続け、covfefeが完成するまでの文字数をカウント
0248デフォルトの名無しさん
垢版 |
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 "
0249デフォルトの名無しさん
垢版 |
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";
0250デフォルトの名無しさん
垢版 |
2017/06/01(木) 23:44:01.17ID:MQJNOblg
>>249
ゴメン、これだと最初に見つかったときに0になっちゃうんで
「完成するまでの文字数」を出すためには
× print index $_, $w . "\n";

○ print index($_, $w) + 7 . "\n";
に修正させてください。
0251デフォルトの名無しさん
垢版 |
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
0252デフォルトの名無しさん
垢版 |
2017/06/02(金) 07:41:45.64ID:r1TSATN8
それだとccovfefeのときとか抜け落ちるんじゃね?
0253デフォルトの名無しさん
垢版 |
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
0255片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/06/02(金) 21:34:10.62ID:ECCI41T/
お題: 2つの別々の牧場ウィンドウがあり、その中に複数の牛がうごめいている。複数の牛を選択して、別の牧場ウィンドウにドラッグ&ドロップできるようにしなさい。
0257片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/06/02(金) 21:46:38.91ID:ECCI41T/
賞金は早い者勝ちで三千円。スクリプト野郎どもにはできないだろう。へっ。
0261デフォルトの名無しさん
垢版 |
2017/06/03(土) 01:24:32.19ID:4TZnG99D
>>255
動的言語のscriptでもQt,Wxwidget,Tkinterなど色々のGUI fwが使えるから書けるよ。
でも、エッセンスがなく、会コードが無駄に長くなるお題は、作成に時間がかかるし獣よな技術はないし
趣旨を考えで出題しろよ。
すくなくとも自分で作る気になれる題を出せ
0262デフォルトの名無しさん
垢版 |
2017/06/03(土) 01:26:10.05ID:4TZnG99D
>>261
会コードが無駄に長くなるお題は、作成に時間がかかるし獣よな技術はないし

解コードが無駄に長くなるお題は、作成に時間がかかるし技術はないし
0263デフォルトの名無しさん
垢版 |
2017/06/03(土) 01:50:43.99ID:4TZnG99D
でも、まぁ地獄の沙汰も金次第というじゃありませんか。
お見積もり30万円以上でしたらpython+tkinterで書いてお納めすtることも
検討させていただきますよ。ハイ
更にハイグレードに300万円だったらPerl+Ptkもお付けいたいます。
いかがですか?だんな
もみ手
0264デフォルトの名無しさん
垢版 |
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日

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

プログラムを書いてプログラムに解かせること。
0268デフォルトの名無しさん
垢版 |
2017/06/03(土) 21:39:54.96ID:+ZiDT+Cr
世界で初めて原爆実験が行われた日を
わざわざ答えに選んだのは何か意図があってのこと?
0269デフォルトの名無しさん
垢版 |
2017/06/04(日) 02:59:00.78ID:vYNPJugT
2年前のログ見てみたけどそのときはここに持ちこむ奴いなかったんだな
Prologおじさんとかが嬉々としてやりそうだけど
0272デフォルトの名無しさん
垢版 |
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
0274デフォルトの名無しさん
垢版 |
2017/06/04(日) 14:27:12.46ID:ArM8onCc
アルバート「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」
5,6月を排除

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

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

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

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

⇒6/17

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

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

それを聞いてアルバートがわかるので、候補が一つしか残ってない7月16日という事になる
0279デフォルトの名無しさん
垢版 |
2017/06/04(日) 16:27:46.47ID:/fL6DBjJ
>>278
そこがオレにはよく理解できていなくてさ。
まぁ言葉にあいまいな面があるかもしれんから解釈に差が出たのかな
0280デフォルトの名無しさん
垢版 |
2017/06/04(日) 16:46:10.26ID:3NGxsH/O
>>279
解釈の差だけが問題じゃないだろ

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

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

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