プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>171
これ、宿題の解答にならないようなプログラムにするのは結構難問かも。 >>174
Ruby
N=100
(1..N).step(2){|a|(a+2..N/a).step(2){|b|c=b*b-a*a>>1;a.gcd(b)<2&&c<N&&p([a*b,c,c+a*a])}} お題:
トランプの札のリストが文字列で与えられるので
同じマークor同じ数字のペアが最大何組できるか求めよ
D:ダイヤ、H:ハート、S:スペード、C:クラブ、
A:エース、2〜9:数字の2〜9、T:10、J:ジャック、Q:クイーン、K:キング
例:
"DAD2HAH3" -> 2
"DAD3D8D9DJH5H8HKSASKCAC5C8CK" -> 7
"SAS2S3S4S5S6S7S8S9C2C3C4C5C6C7C8C9CT" -> 9 >>180
知らんけどNP完全とかそういうやつ?
違ったらスマソ >>180
http://ideone.com/UgHgtz
C++。多分間違ってる。数字も合わないしな。
i7-6700でリリースビルドで40秒くらいかかる。
見てる感じ塩基配列だよなこれ。 >>180
c++ http://ideone.com/WK9LQi
問題文には明記なかったが、ユニークな52枚(4*13)1セットだけだとして解いた。
計算量は 1問 14^4*6 くらいになるのだろう。
(最初は14^5*6でやったが、ひとつ計算量落とした。
この数値じゃ、意味なかったけど) >>171 人気がないね…ループの知識だけあればOKでループの構成を考える腕力が多少あればそれなりに楽しめるお題と思ったんだけれども
新規性がないのが弱点なのかな?
次のお題を考えることにしようか http://ideone.com/Et54St
意味ないけど最適化したら現実的な時間で終わるようになった。
今暇なので、いい暇つぶしになったなぁ。意味ないけど。 >>186
>DAD2HAH3:4,2
>DAD3D8D9DJH5H8HKSASKCAC5C8CK:394,38
>SAS2S3S4S5S6S7S8S9C2C3C4C5C6C7C8C9CT:1972800,16
どういうこと???
組み合わせの数がカードの枚数すら超えてるの??? そいつのコード見てないから分からんが多分、最初の例なら
1)DAHA
2)DAD2
3)HAH3
4)DAD2,HAH3
みたいにカウントされちゃってるんじゃないか? >>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日 ■ このスレッドは過去ログ倉庫に格納されています