タグ

mathに関するledlizerdのブックマーク (2)

  • 手続き型のダンジョン生成アルゴリズム | プログラミング | POSTD

    この投稿では、以前に TinyKeepDev が こちら で述べたランダムなダンジョンを生成する技法について説明しようと思います。元の投稿に比べて、もう少し具体的に話を進めるつもりです。まずは、以下に示したアルゴリズムの一般的な動作をご覧ください。 部屋の生成 はじめに、幅と高さを持つ部屋を円の中にランダムに配置しましょう。TKdevのアルゴリズムは、各部屋のサイズを生成するのに正規分布を用いています。これは一般的にとてもいいアイデアです。なぜかと言うと、これによってより多くのパラメータを扱うことができるようになるからです。幅/高さの平均と標準偏差間の異なる比率を選ぶと、通常は見た目の違うダンジョンとなります。 ここで実行すべき関数は getRandomPointInCircle です。 function getRandomPointInCircle(radius) local t = 2

    手続き型のダンジョン生成アルゴリズム | プログラミング | POSTD
  • 2つのボールをぶつけると円周率がわかる - 大人になってからの再学習

    一か月ほど前に New York Times で紹介されていた記事。 The Pi Machine - NYTimes.com ここで紹介されているのは、なんと驚くべきことに、2つのボールをぶつけるだけで円周率(3.1415...)の値がわかる、という内容。 これだけだと、全然ピンとこないと思うので、もう少し詳しく説明すると、次のようなことが書かれている。 ↓2つのボールを、下の図ように壁と床のある空間に置く。 ↓その後、壁から遠い方のボールを、他方に向かって転がす。 後は、ボールが衝突する回数をカウントするだけで、円周率がわかるらしい。 これでも、なんだかよくわからない。 まず2つのボールが同じ質量である場合を考えてみよう。 まず、手前のボールが他方のボールにぶつかる(これが1回め)。 続いて、ぶつかったボールが移動して壁にぶつかる(これが2回め)。 壁にぶつかったボールが跳ね返ってきて

    2つのボールをぶつけると円周率がわかる - 大人になってからの再学習
  • 1