私の問題を説明するのは難しいです。
ネストされたforループを含む関数を作成したいと思います。
その量は、関数に渡される引数に比例します。
架空の例を次に示します。
Function(2)
...関与します...
for x in range (y):
for x in range (y):
do_whatever()
もう一つの例...
Function(6)
...関与します...
for x in range (y):
for x in range (y):
for x in range (y):
for x in range (y):
for x in range (y):
for x in range (y):
whatever()
forループ(y)の変数は、ネストされたコードでは実際には使用されません。
最初に考えたのは、数値引数の累乗の範囲で1つのforループを作成することかもしれません...
製品が巨大になるため、これは機能しません。8つのネストされたforループがある場合に必要なインスタンスがあります。
この積は、forループの範囲に対して大きすぎます。
関数に渡す必要のある引数は他にもありますが、私はそれを自分で処理できます。
これがコードです(スノーフレークフラクタルを作成します)
from turtle import *
length = 800
speed(0)
def Mini(length):
for x in range (3):
forward(length)
right(60)
penup()
setpos(-500, 0)
pendown()
choice = input("Enter Complexity:")
if choice == 1:
for x in range (3):
forward(length)
left(120)
elif choice == 2:
for x in range (3):
Mini(length/3)
left(120)
if choice == 3:
for x in range (6):
Mini(length/9)
right(60)
Mini(length/9)
left(120)
if choice == 4:
for y in range (6):
for x in range (2):
Mini(length/27)
right(60)
Mini(length/27)
left(120)
right(180)
for x in range (2):
Mini(length/27)
right(60)
Mini(length/27)
left(120)
if choice == 5:
for a in range (6):
for z in range (2):
for y in range (2):
for x in range (2):
Mini(length/81)
right(60)
Mini(length/81)
left(120)
right(180)
for x in range (2):
Mini(length/81)
right(60)
Mini(length/81)
left(120)
right(180)
right(180)
if choice == 6:
for c in range (6):
for b in range (2):
for a in range (2):
for z in range (2):
for y in range (2):
for x in range (2):
Mini(length/243)
right(60)
Mini(length/243)
left(120)
right(180)
for x in range (2):
Mini(length/243)
right(60)
Mini(length/243)
left(120)
right(180)
right(180)
right(180)
right(180)
if choice == 7:
for a in range (6):
for b in range(2):
for c in range (2):
for d in range (2):
for e in range (2):
for f in range (2):
for y in range (2):
for x in range (2):
Mini(length/729)
right(60)
Mini(length/729)
left(120)
right(180)
for x in range (2):
Mini(length/729)
right(60)
Mini(length/729)
left(120)
right(180)
right(180)
right(180)
right(180)
right(180)
right(180)
何か助けていただけれ
ば幸いですが、別の方法(再帰など)を提案する場合は
、コードを貼り付けるだけではいけません。代わりに、私を正しい方向に導くことができるいくつかのアイデアを提案します。
(アルゴリズムはスペシャリスト数学の割り当て用です)
仕様:
Python 2.7.1
Turtle
IDLE
Windows7