πの近似値の例を示します。色の付いた部分がπと一致する部分です。1991.9」に発表したものです。点の集合を三角形で分割する三角形で分割するすぐれた方法としては、点の集合をボロノイ図に分割してそこからドロネー三角形を作成する方法がありますが、難しいので他の方法を自分で考えてみました。面倒なのでここでは概要だけを示します。点の集合の外周をJarvisの凸包アルゴリズムで求めます。内部に残った点の集合に対して再びその凸包を求めます。すると外周と内周が求まります。外周の線分(隣り合う2点)から最短距離の内周の1点を求めて三角形を作ります。全ての外周の線分に対してこの操作を行い、三角形を表に登録していきます。できた表をスキャンして同じ三角形を取り除きます。次に内周を外周にしてさらにその内周を求めて、三角形を表に登録する操作を繰り返します。場合になりそれぞれに対応した処理をすると三角形の分割が完了します。この方法を「外周内周による三角形分割」と呼ぶことにします。別の方法で「逐次生成法による三角形分割」を考えましたので、その概要を示します。点集合の任意の1点とそこから最も近いもう1点を選び線分を作ります。この線分から最も近い1点を探して三角形をひとつ作り、辺の情報を登録します。登録した各辺からすべての点への距離を計算してソートします。短い点から始めて、作られる三角形が正しいかチェックしながら新しい三角形を作成します。この操作を繰り返して調べる辺がなくなったら終了します。最後にこの方法では作られる三角形がいびつな形になり易いので、「フリッピング」という手法で最適な形の三角形にします。サンプルプログラムサンプリング探索法ソートされたデータの探索法としては、ほとんど二分探索法が用いられますが、他にないか自分で考えてみました。面倒なのでここでは概要だけを示します。昇順にソートされたデータを対象として、x軸にデータの順番(x=1〜n)をとり、y軸にデータの値をとった平面を考えます。3次近似式に代入して根を求めます。この根が求めるデータの順番になりデータが発見されたことになります。近似式なので、根も近似解となり根の周辺をさらに探索して真の解を求めます。データの分布状況により近似解の精度が変わってきます。おおむねランダムや正規分布のデータでは精度は比較的良くなります。サンプリングの個数を増やせば精度は良くなります。サンプルプログラム三角形分割によるコンター図(等高線図)三角形に分割されたされた領域にコンター図を描く方法を自分で考えてみました。ここでは概要だけを示します。上に交点があり2点を結ぶ辺が引ける。このように三角形に分割した場合求めたいコンターの交点は、三角形の辺上に2点あるか全くないかのどちらかなのでコンターの線分が一意に定まる。サンプルプログラム線形予測ソート新しいソート(外部ソート)の方法を自分で考えてみました。ここでは概要だけを示します。ランダムなデータがソートされた後、その値がほぼ直線上に並ぶと仮定します。)をとり、y軸にデータの値をとった平面を考えます。1次式に代入して根を求めます。この根が求めるデータの順番になります。このソートでは1次式で計算して求めた値を記録しておくために別の領域を必要とします。いわゆる外部ソートと呼ばれるものです。新しく記録したデータの集合は空きやリンクがあるので、これを修正して元の集合に戻します。サンプルプログラムデータに順位をつけるデータに順位をつける方法を自分で考えてみました。データの配列はそのままです。ここでは概要だけを示します。