シェルピンスキーのカーペット

 

(フラクタル仕事)

前記9つのアリコート離れて、四角形を取ります。

9への各アリコート;無限。

     

 

方法(従来法)

各矩形は行くために3つの矩形にマッピングされています。

 

デフ大(回):
    K = 3 **回
    B = np.zeros((K、K)、DTYPE = int)を
    iについての範囲内(K // 3):
        jについての範囲内(K // 3 ):
            T = ct.renew([I] [J])
            B [3 * I:3 * I + 3,3 * J:3 * J + 3] = T
    戻りB

DEF(i)を更新:
    私== 0の場合
        、T = np.zeros((3,3)、DTYPE = INT)
        T [1] [1] = 1
    のelif I == 1:
        T = np.ones(( 3,3)、DTYPE = INT)
    戻りT

 

各元によれば、三回前に長方形の矩形よりも大きいの作成「を黒、黒であれば白アウター;白なら、ホワイトアウト」処理へのアプローチ。

データストアに、黒1は白、0です。単にハンドルに各(ゼロ+ 1 =コア)および(もの)と、それは轟音を下降されます。 

各ラウンドは、我々は、矩形が3回(行数)で展開すると考えています。

あなたが望む限りとして、モジュール上の長方形の大型の出力を補います。実際に、私は全体をしたくなかった、しかし、最初の矩形は9つの* 9画素です。これは私の宿題には影響を与えませんが、これはブログの読み取りを行うことは困難です。

 

私は何を支払う私はあなたを教えてあげましょうか!

インポートCV2
インポートのCT
のNPとしてインポートnumpyの
インポートランダム
:DEF出力(回、III)
    K = 3 **(III-回)
    N = 3 ** III
    P = 3 **回
    B = np.zeros((N- 、n)は、DTYPE = INT)
    Iの範囲内の(P)のための:
        範囲内のJ(pについて):
            [I]であれば、[J] == 0:
                パス
            :[I] [J] == 1の場合
                :範囲内II(k)に対する
                    範囲内JJ(K)用:
                        B [I * K + II] [ J * K + JJ] = 1
                        、B [I * K + II] [J * K + JJ] = 1
                        、B [I * K + II] [J * K + JJ] = 1つの
    戻りB
デフ大(回):
    K = 3 **回
    B = np.zeros((K、K)、DTYPE = int)を
    iについての範囲内(K // 3):
        jについての範囲内(K // 3 ):
            T = ct.renew([I] [J])
            B [3 * I:3 * I + 3,3 * J:3 * J + 3] = T
    戻りB

DEF(i)を更新:
    私== 0の場合
        、T = np.zeros((3,3)、DTYPE = INT)
        T [1] [1] = 1
    のelif I == 1:
        T = np.ones(( 3,3)、DTYPE = INT)
    戻りT
DEF(III、IMG)を印刷する:
    K = 3 ** III
    範囲のiについて(K)
        の範囲内のJ(K)用:
            [I] [J] == 0の場合
                IMG [I] [J ] [0] = 0
                IMG [I] [J] [1] = 0
                IMG [I] [J] [2] = 0
            [I] [J] == 1の場合:
                IMG [I] [J] [ 0] = 255
                IMG [I] [J] [1] = 255
                IMG [I] [J] [2] = 255
    戻りIMG
 
これらは、まだこの名前を使用する理由ct.pyです。今日キャンペーンわかりました。
ライフ梨ビッグああ、csgoアンロードヶ月。
特に、それほど深刻ではない小さなプログラムは、私はいつも非常に変数名のために懸念されています。
 
あなたが使用できるので、実際には、非常に幸せな一日、Pythonは轟音を残しました。
私はC ++より速くそれを知らないのですか?私はもちろん、私が知っている、知っています!しかし、Pythonは非常に友好的にああをデバッグします。
C ++のものの二次行列反転はINFを計算することを今日考えています。痛みああ。
それともこのよう、PY書かれ、エラーそれを置く、あなたはおそらく問題の中にどのように多くの行の上下推測、あなたは何が悪かったのかを知るために3枚の基本的な印刷を打ちます。
C ++ではなく、printfの今日、私は山の地獄が、数分後にエラーがここに動作していないがわかった呪いかわからない、私は実際には、根本的な問題はここではないどこ、整数をコピーするのprintfの浮動小数点行列を置きます。
 
 
インポートCV2の
NPのようなインポートnumpyの
インポートCT
A = np.zeros((1,1)、DTYPE = INT)
時間= 1
:iに対して範囲内(回)
    、A = ct.big(I + 1)
プリント(A .shape)
IMG = ct.cut(回)
imgg = ct.print(回、IMG)

名前= STR( "シェルピンスキー" + STR(INT(回))+ "JPG")
cv2.imwrite(名前、imgg)
であれば回<5:
    B = ct.output(、回、5)
    imgx = CT。カット(5)
    imgggg = ct.print(B、5、imgx)
    名= STR( "sierpinskinew" + STR(INT(回))+ "JPG")
    cv2.imwrite(名前、imgggg)
 
何?あなたはどこカットするように依頼しますか?
3 ** 3 **は私の列を描写した行を生成します。
伝統的な救済に聞いて、聞いてはいけません。
 
明日残りの半分を書きます
どのように乱数がこのようなものを実装するためのアルゴリズム。

 

 すべてのすべてで、あなたが後ろに座るとPython幸せな一日でリラックスすることができますので。

 

ねえ、あなたがC ++を言って、それはそれを使用しないのだろうか?すぎないと考えます。

技術的な問題を実装する理由は、ほかに、次の2つの時間よりも3時間プログラムsquallingを記述する必要はありません。

C ++は私が過敏になります。

あなたは私NP(3 ** 7,3 ** 7)どのように幸せああ言います。直接ブームへの最後のint A [1000] [1000]。

どのような代替アルゴリズム、もちろんのではなく、幸せああ2333333。

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/wushibei/p/11892759.html