あめぞうにも書かせて頂いた
■ このスレッドは過去ログ倉庫に格納されています
0001初心
NGNG1から1000の数を10個以内の
はい、いいえの質問で当てたいのですが、
853などの数を当てるのにどうしても
質問10回超えてしまいます。
どういう質問、形にしたら良いか、知恵を貸して下さい。
00022
NGNGこの問題の主目的は「かずあてゲーム」なのか、
「かずあてゲームの戦略」なのか「C++の学習」なのかが
わからない。
かずあててゲームを無理にC++にする事は出来なくは無い。
ただ、Cでかずあてが書けない人間には無理。
C++にするなら、問題の数値クラスに大小問い合わせ
メンバ関数を実装すればいいんだけどね。
プログラミング以前に日本語の問題って悪例の典型って気がする。
#「かずあて」の変換は面倒なのでやってない。
0003くりはら
NGNGそれとも、プログラムが当てるんですか?
それすらわからない‥
>1 日本語の勉強してね
0004わかり
NGNGプログラムが当てるんですね、
10こ質問のあとに。
00052
NGNG少しは自覚したほうがいいんでない?
ふつう、ゲームとだけ言ったら、コンピュータ側が
ゲームマスタをするものを連想すると思うんだけどね。
コンピュータからの問い合わせに答えるのは、余程の
事が無い限り「遊戯」としては成立しないって。
#シーマンですら、プレイヤーの返答に対するシーマンの
#リアクションを楽しむ物。
まぁ、他にも色々と分かりづらい要因はあるけど。
で、アルゴリズムの基本はあめぞうで立てたスレッドでも
指摘があった通り、二分探索を用いる事になる。少しは
人の言うことを聞こう。言うだけ無駄かも知れないが。
あ、そうそう。同じ事を人間側が当てるのなら作ったけどね。
数値打たないで「h」だけ打つとヒントくれて、その通りに
入力してりゃ10回以内に正解に辿り着いちゃう奴。
30分近く費やしてしまったのは、少々情けなかったけど。
0006くりはら
NGNGnは最初は1で、2度目の質問以降は1ずつ増やす。
これでどうだ?
いや、これも二分探索といえば二分探索なのだけども‥
0007迷惑かけました。
NGNG1かいめ500
2かいめ250...それを大小質問してやってます。
いかがですか。
0008くりはら
NGNGそれで10回で当てられないの?
0009通行人>1
NGNGわかってるんですね。
ひょっとして2で割り切れない時の処理?
2分されたどちらかに含めれば良い。
面倒だったら1024としても回数は同じ。
必ず2で割り切れるからね。
エレガントなアルゴリズムを望むなら、毎回必ず2分することに着目する。
すると、手順が全く同じ事の繰り返しであることが分かる。
端っこの数値が違うだけですね。
(そのうちRecursiveという言葉も覚えようね。)
実際ゲームとしてはつまらんけど、応用範囲は極めて広いんです。
数千〜数万本の信号線が、互いにぶつかってないかのチェックにも
使った事があるよん。
■ このスレッドは過去ログ倉庫に格納されています