n次元空間でベクトルをビンに入れたいです。これは、n次元の超球の表面をピクセル化することで実行できます。
Cで超球をピクセル化するための優れたアルゴリズムを知っている人はいますか?一定のビンサイズが欲しいのですが。私のスペースは正の整数だけで構成されています。
ビンを完全に規則的にする必要がありますか?そうでない場合は、ポイントをランダムに投げて、最も近い隣人までの距離を測定します。近すぎるポイントを捨てるか、相互反発を数回繰り返すことで、これをわずかにクリーンアップできます。
それ以外の場合は、一般化された球面座標に変換し、各次元に沿って等しい領域にビンに変換することをお勧めします。特に、経度で20のビン5にいることがわかっている場合、緯度のビンは赤道よりも広くなります(実際、同じ距離に対応するために、角度が約sqrt(2)広くなります。表面)。