タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

algorithmに関するkmiuraのブックマーク (2)

  • 〔家庭教師〕 数独〔ナンバープレイス〕 解を求めるアルゴリズム

    ゲームは、全てのマスに下記の条件に合う1〜9の数字を埋め込む 縦9列のマスに1〜9までの数字を1個ずつ重複することなく配置される。 横9列のマスに1〜9までの数字を1個ずつ重複することなく配置される。 3×3の枠内も1〜9までの数字を1個ずつ重複することなく配置される。 アルゴリズムの解説 すべての未確定のマスを対象に、関連する縦・横・3*3のマスからなり得る数値群「可能数一覧」を求める。 「可能数一覧」で、なり得る数値が1個の場合、そのマスはその数値で確定することになる。 確定したマスに関連する縦・横・3*3のそれぞれのマスが持つ「可能数一覧」から、確定した数値を削除する。 削除した結果、「可能数一覧」がなり得る数値が1個になった場合、そのマスはその数値で確定することになる。 これを左上から1マス毎に順に繰り返すことで解を求めている。 技術的には再帰を使い、自分の

  • 良い乱数・悪い乱数

    C言語標準ライブラリの乱数rand( )は質に問題があり、禁止している学会もある。 他にも乱数には様々なアルゴリズムがあるが、多くのものが問題を持っている。 最も多くの人に使われている乱数であろう Visual Basic の Rnd の質は最低である。 そもそも乱数とは 乱数とは、来サイコロを振って出る目から得られるような数を意味する。 このような乱数は予測不能なものである。 しかし、計算機を使って乱数を発生させた場合、 次に出る数は完全に決まっているので、予測不能とはいえない。 そこで、計算機で作り出される乱数を疑似乱数(PRNG)と呼び区別することがある。 ここでは、特にことわらない限り乱数とは疑似乱数のことを指すとする。 計算機でソフト的に乱数を発生させることの最大のメリットは、 再現性があることである。 初期状態が同じであれば、発生する乱数も全く同じものが得られる。 このことは

  • 1