プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>180 最後のは9じゃなくて8組だろ 同じマーク S:4組、C:4組、合計8組 同じ数字 2,3,4,5,6,7,8,9の各ペアで合計8組 最大組数は8組 俺も間違ってたので修正した http://ideone.com/vD1JHy 答えは2組,6組,8組じゃないの? >>189 反例 数字で(S2=C2)で1ペア、 残り8枚ずつで同スートのペアを8つくる 合計 9ペア 数字で(S2=C2, S3=C3, S4=C4) 3ペア 残りは6枚ずつになるので、6ペアできる 合計9ペア その他 数字のペアを奇数個つくれれば、9を作れる 8bitの整数を一つ引数として与え、 上位4bitと下位4bit を符号なし整数として掛け算した結果の8bitを返す関数を 論理演算子のみで実装したもののうち、 もっとも実行時間が短いものを挙げよ。 論理演算は全て1命令1サイクルとする。 最も実行時間が短いかどうかの判定ってNP完全っぽそう http://ideone.com/QNbwWa C++。えーん終わらないよ〜。 デバッグ覗いたら早い段階で答え出てるんだけど打ち切り方がわからない。 >>186 などは題意を把握してなかった。 ふえぇーん。1時間半回してもおわらないよー。 動的計画法すごい。 お題 これ http://www.mext.go.jp/programin/ に相当するアプリケーションを 非Web環境でも使えるような仕様で 単一の言語でコーディングしろ こういうのに瞬時に回答できるようになるまでどのくらいの時間がかかるものなの? >>212 時代は3Dか・・・。 ロートルにはできん芸当だ。GJ。 すみません。何言ってるかわからないだろうけど、 12桁の数字が並ぶ羅列は何を表しているのでしょうか??? /021/000/000/000 とか 最初の3つが市外局番 次が区番号 残りが個人識別子だよ 12桁くらいの数字を使う規格ってそれなりにありそうだけどな。 >>218 ギブアップ。うぃきぺ見ても意味わかんない。頭爆発しそう。 数字の入ったヤング盤じゃなくて、図形だけでいいの? nのヤング図形を全部求めるってこと? >>221 は1行目が「× Yaund」「○ Young」という恥ずかしい間違いから始まり N <= 0の時のチェック漏れやら 長方形のパターン(N=10の時の[5,5]や[2,2,2,2,2])が抜けてるなど ミスしまくってました orz てことで、修正します >>218 Nim https://wandbox.org/permlink/RUf5B0SVg0MozD25 なーんだそれでいいのか。 それならなんとか組めるかも。 問題の想定解と合ってるのかな? 出題者のコメントが欲しいところ お題:以下を出力 857142 714285 571428 428571 285714 142857 >>227 法則性がわからん 文字列じゃなくあくまで数値で? >>227 Ruby 6.downto(1){|i|p i*1000000/7} >>227 Perl use 5.016; use integer; say 857142 / $_ for 1..6; >>234 間違えてたスマソ Perl use 5.016; say 142857 * (7 - $_) for 1..6; $ perl 9_227.pl 857142 714285 571428 428571 285714 142857 >>227 Squeak/Pharo Smalltalk (142857 * (6 to: 1 by: -1)) asStringWithCr => '857142 714285 571428 428571 285714 142857' >>227 GNU Smalltalk 6 to: 1 by: -1 do: [:i | (142857 * i) displayNl] http://ideone.com/yNgDeB >>227 common lisp (do ((i 6 (- i 1))) ((equal i 0)) (print (floor (/ (* 1000000 i) 7)))) お題が情報不足過ぎて何を使っていいのか悪いのかがわかんない >>227 @Mathematica In[1]:=142857// IntegerDigits// NestList[RotateLeft,#,Length[#]-1]&// Map[FromDigits,#]&// Sort// Reverse// Map[{#}&,#]&// Grid Out[1] = 857142 714285 571428 428571 285714 142857 >>227 Io a := 999999 / 7 for(i, 6 * a, a, -a, i println) >>227 Nim for i in countdown(6,1): stdout.writeline i*142857 >>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)} } 227 R write((6:1)*999999/7.",1) >>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). トランプ氏の謎の単語 covfefe の謎を解明する。 ↑ c,o,v,f,e,f,eの7文字をランダムに出力し続け、covfefeが完成するまでの文字数をカウント >>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 " >>247 効率悪いけれど… Perl $w='covfefe'; @l=split '',$w; do { $_ .= $l[int(rand(7))]; } while (!/$w/); print index $_, $w . "\n"; >>249 ゴメン、これだと最初に見つかったときに0になっちゃうんで 「完成するまでの文字数」を出すためには × print index $_, $w . "\n"; ↓ ○ print index($_, $w) + 7 . "\n"; に修正させてください。 >>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 それだとccovfefeのときとか抜け落ちるんじゃね? >>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 >>247 ruby covf, buff = 'covfefe', '' buff += covf.chars.sample until buff.end_with? covf p buff.size お題: 2つの別々の牧場ウィンドウがあり、その中に複数の牛がうごめいている。複数の牛を選択して、別の牧場ウィンドウにドラッグ&ドロップできるようにしなさい。 GUIの課題ってコードも長くなりがちたから答えにくくない? 賞金は早い者勝ちで三千円。スクリプト野郎どもにはできないだろう。へっ。 >>255 動的言語のscriptでもQt,Wxwidget,Tkinterなど色々のGUI fwが使えるから書けるよ。 でも、エッセンスがなく、会コードが無駄に長くなるお題は、作成に時間がかかるし獣よな技術はないし 趣旨を考えで出題しろよ。 すくなくとも自分で作る気になれる題を出せ >>261 会コードが無駄に長くなるお題は、作成に時間がかかるし獣よな技術はないし ↓ 解コードが無駄に長くなるお題は、作成に時間がかかるし技術はないし でも、まぁ地獄の沙汰も金次第というじゃありませんか。 お見積もり30万円以上でしたらpython+tkinterで書いてお納めすtることも 検討させていただきますよ。ハイ 更にハイグレードに300万円だったらPerl+Ptkもお付けいたいます。 いかがですか?だんな もみ手 【問題】 アルバートとバーナードは、シェリルと友達になったばかりです。 シェリルの誕生日を2人は聞きましたが、彼女は10個の日にちを候補としてあげました。 ・5月15日、5月16日、5月19日 ・6月17日、6月18日 ・7月14日、7月16日 ・8月14日、8月15日、8月17日 それからシェリルは、アルバートに「月」だけを、バーナードに「日付」だけをそれぞれ教えました。 アルバート「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」 バーナード「僕はシェリルの誕生日を知らなかったけど、今は知ってるよ」 アルバート「それなら僕もいつだか知っているよ」 シェリルの誕生日はいつでしょうか? プログラムを書いてプログラムに解かせること。 Console.WriteLine("知らんがな"); (begin (display "知らんがな")(newline)) 世界で初めて原爆実験が行われた日を わざわざ答えに選んだのは何か意図があってのこと? 2年前のログ見てみたけどそのときはここに持ちこむ奴いなかったんだな Prologおじさんとかが嬉々としてやりそうだけど >>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 >>272 7月16日が正解なら 解き方間を違えているのかも知れん アルバート「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」 5,6月を排除 バーナード「僕はシェリルの誕生日を知らなかったけど、今は知ってるよ」 14日を排除 アルバート「それなら僕もいつだか知っているよ」 残り候補が一つの月 -> 7月16日 >>272 の解き方で考えたこと アルバート「僕は(「月」だけしか教えてもらっていないので)シェリルの誕生日を知らないけど、 (「日付」だけを教えてもらった)バーナードも知らないよ」 ⇒「日付」だけ聞けば誕生日だと判明する、即ち日の登場回数が一回だけの月日、 具体的には5月19日、6月18日は対象外とみなし除去 バーナード「僕は「日付」だけを教えてもらっても)シェリルの誕生日を知らなかったけど、 アルバートが「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」と言うのを聞いて 今は知ってるよ」 ⇒日の登場回数が一回だけの19日、6月18日を除去したあと、 登場回数が一回だけの日が バーナードの聞いた「日付」に当たり、 誕生日だと考えられる。 ⇒6/17 この考え方が違ったんだろうな… >>275 アルバートは月を知ってるが、バーナードも知らない事を確信できるのは、 18,19日を含まない7,8月のどちらかという事になる -> 5,6月は全削除 それを聞いてバーナードは誕生日がわかるので、7,8月両方に含まれる14日ではなく、 15,16,17日のどれかになる それを聞いてアルバートがわかるので、候補が一つしか残ってない7月16日という事になる >>278 そこがオレにはよく理解できていなくてさ。 まぁ言葉にあいまいな面があるかもしれんから解釈に差が出たのかな >>279 解釈の差だけが問題じゃないだろ > ⇒日の登場回数が一回だけの19日、6月18日を除去したあと、 > 登場回数が一回だけの日が バーナードの聞いた「日付」に当たり、 > 誕生日だと考えられる。 18日、19日は日の登場回数が一回だけであるということは 他の日は複数回登場するということだからその論理は破綻してる >>280 それは誤解というか解読不足。 5月19日、6月18日が除去されることによって、 元々複数回登場していた他の日のうち6月17日が単一の日となり 17日という日付さえ知らされれば、誕生日は6月17日と判明できる。 >>281 客観的に見て、アルバートがバーナードも知らない事を確信できる為には、 アルバート自身が知っている月には18,19日が含まれていない必要がある 従って、アルバートが知っている月は5,6月ではないという事 >>282 なるほど考え方は理解できた。 でも5月6月には他の日もあるからバーナードが聞かされた日がそれらで無いとはっきりしていないうちに 月ごと排除して大丈夫? >>281 17日は8月17日もあるから、 6月が17日だけになったからといって、 6月17日が誕生日だとするのは アルバート、バーナードの台詞を根拠に基づく論理に 無理がないか検証不十分だという気が自分でもしてきた >>283 逆に最初の時点でアルバートはバーナードが知らないとは確信できない 例えばアルバートは6月と聞かされた場合、6月18日の可能性もあるので、 それだとバーナードは18日と聞かされているから知ってるかもしれない >>285 大体分かった。ありがとう 単一な日をまったく含まない月を教えられたからこそ、 アルバートは最初の台詞 「僕はシェリルの誕生日を知らないけど、バーナードも知らないよ」 になったという考え方だね。 ディスコプログラミングコンテスト 2017 7/8 https://www.disco.co.jp/procon/ の練習問題 https://www.disco.co.jp/procon/#example 解答バレにならないように1語だけ書くけど 1問目の TOUSHITSUWOTOTTE だけが、わけわからん ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる