私は空間スタッキングの問題に取り組んでいます...現時点では2Dで解決しようとしていますが、最終的には3Dでこれを機能させる必要があります。
私はスペースを中央のブロックの周りのnxnの正方形に分割しているので、nは常に奇数です...そしてnxn未満の任意の次元の長方形(たとえば1x1、1x2、2x2など)ができる場所の数を見つけようとしています真ん中の正方形が利用できない場所に配置されます。
これまでのところ私はこれを持っています。
total number of rectangles = ((n^2 + n)^2 ) / 4
..また、平方の総数=(n(n + 1)(2n + 1))/ 6
しかし、真ん中の正方形が占有されるため、これらの場所のどれだけが不可能であるかを見つけるための式を作成することに固執しています。
したがって、たとえば:
[] [] []
[] [バツ] []
[] [] []
3 x3ボード...ミッドスクエアが使用されているので、物を保管するための8つの可能な場所があります。1x1シェイプ、1x2シェイプ、2x1、3x1などを使用できます。
式は、長方形の数を次のように示します。(9 + 3)^ 2/4 = 144/4 = 36のスタック位置ただし、中央の正方形は占有できないため、これらすべてを実現することはできません。
手作業では、これらは不可能なオプションであることがわかります。
1x1の形=1不可能(中央の正方形)2x1の形= 4不可能(中央の正方形を使用するもの)3x1=2不可能2x2=4不可能など合計不可能な組み合わせ=16
したがって、私が求めている解決策は、3x3ボード上で36-16=20の可能な長方形のスタッキング位置です。
これをC#でコーディングして試行錯誤を繰り返しましたが、nの大規模な値を解き、最終的にはこの3Dを作成したいので、実際には数式を求めています。
誰かが私にこの種の空間/テッセレーション問題の公式を教えてもらえますか?また、長方形全体の数式を3Dにする方法についてのアイデアは大歓迎です!
ありがとう!