NXN配列の列、列、およびサブスクエアを数学的に決定する方法Nは完璧な正方形ですか?

cs.stackexchange https://cs.stackexchange.com/questions/126050

  •  29-09-2020
  •  | 
  •  

質問

サイズNxnの一次元配列を与えられ、ここでnは完全な正方形

です。

href="https://i.stack.imgur.com/opdm7.png" refollownoreferrer">  PIC 1

セルが存在する行、列、および/またはサブスクエアを数学的に決定する方法は?さらに、副文を横断するための数学的方法はありますか?

画像の説明が入力されています

役に立ちましたか?

解決

一次元セルを $ c_1、c_2、\ cdots、c_ {n ^ 2} $

左上のセルが $(1,1)$ 、すなわち最初の行と最初の列にあると仮定する。右上のセルが $(1、n)$ 、つまり最初の行と $ n $ < /スパン>列。その後、 $ i $ -thセル、 $ c_i $ $(I / N + 1、I \%N + 1)$ 。ここでspan class="math-container"> $ i / n $ は、 integer division $ i \%n $ は、人気のあるプログラミング言語でのモジュロ操作です。たとえば、 $ n= 9 $ をletします。その後、 $ 42 $ -thセル、 $ c_ {42} $ $(42/9 + 1,42 \%9 + 1)=(5,7)$

副文字がセルと同じ順序で並んでいるとしますので、サブソア $ s1、s2、\ cdots、sn $ を持ちます。各サブキアを一種の「大セル」として検討してください。そのため、亜種の座標を順にするようにします。

Enter Image説明

$ c_i $ は、 $(i / n + 1)$ ~thです。サブカレ、すなわちSUBSQUARE $ s(I / N + 1)$ 。たとえば、 $ c_ {37} $ $ 5 $ -th副quare、すなわちsubsquare <です。 SPAN CLASS="Math-Container"> $ S5 $ 。以前と同じ状況にありますが、 $(i / n + 1)$ -th "大セル"と $ \ sqrt n \ times \ sqrt n $ "大セル "。そのため、 $(i / n + 1)$ x $((i / n)にあることがわかります。 +1)/ \ sqrt n + 1、(I / N + 1)\%\ sqrt n + 1)$ 、サブソレの座標を使用します。

$(j、k)$ で副難を横断したいとします( $(j、k) $ はサブソアの座標にあります)。

  • そのサブキアの最初のセル(左上のセル)は $ c _ {(j-1)\ sqrt n \ cdot n +(k-1)\ sqrt nです。 +1} $
  • そのサブキアの2行目の最初のセルは $ c _ {(j-1)\ sqrt n \ cdot n +(k-1)\ sqrt n + 1 +です。 $
  • $ \ cdots $
  • その副難の最後の行の最初のセルは $ c _ {(j-1)\ sqrt n \ cdot n +(k-1)\ sqrt n + 1 +です。 (\ sqrt n -1)n} $

だから我々は以下の疑似コードによってその副難ですべてのセルを通過することができます。

$ \ quad $ for の場合$ 1,2、\ cdots、\ sqrt n $
$ \ quad \ quad $ for $列$ in $ 1 、2、\ Cdots、\ SQRT N $
$ \ quad \ quad \ quad $ $ row $ -th列と $列$ $(j、k)$ の副列。 $ c _ {(j-1)\ sqrt n \ cdot n +(k-1)\ sqrt n +(行-1)n +列} $

注意 " $ row $ 列と $ column $ 列"は参照していますその副文区のセル。

例えば、次の順序でサブカレ(2,3)の細胞を横断します。

  • セルの最初の行で、 $ c_ {34} $ $ c_ {35} $ $ c_ {36} $
  • セルの2行目、 $ c_ {43} $ $ c_ {44} $ $ c_ {45} $
  • セルの3行目、 $ c_ {52} $ $ c_ {53} $ $ c_ {54} $
ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top