/python/ pętla w pętli

0

Potrzebuję wykonać coś tak błachego jak pętla w pętli.
[code]
for s in range (10):
t=0
for t in range (10):
(jakieś instrukcje)
[/code]
Robię to niby zgodnie z logiką, po każdym wykonaniu pod-pętli, trzeba wyzerować jej iterator, ale... nie działa.
Próbowałem też tego z while, ale też nie działa.

1

Nie musisz niczego zerować:

for i in range(0, 10):
    for j in range(0, 10):
        print i, j

http://ideone.com/EK1s8

0

Rzeczywiście nie muszę niczego zerować. Miałem coś źle wpisane.

Mam za to teraz inne pytanie.
Mam do wykonania program, który będzie wyszukiwał jakąś losowo wylosowaną liczbę. Wiecie, ma to być na zasadzie metody Brute Force i, żeby było ciekawiej to nie mogę wykonać czegoś takiego, że porównuje najpierw liczbę jedności, i jak jest ok to idzie do dziesiętnej i dalej, do końca, tylko, trzeba porównywać całość. Jak są 2 znaki to jest po prostu pętla w pętli, jak więcej to 3 pętle, dla n liczb, n pętli. Trzeba to zrobić rekurencyjnie, tylko... nie mam zielonego pojęcia jak takie coś utworzyć.

0

W czym ma wyszukiwać? Jeśli w tablicy to najprościej będzie albo ją posortować i wtedy szukać binarnie (złożoność szukania O(\log{n})) lub też zamienić tablicę na zbiór mieszający i wtedy złożoność jest stała.

0
winerfresh napisał(a)

W czym ma wyszukiwać? Jeśli w tablicy to najprościej będzie albo ją posortować i wtedy szukać binarnie (złożoność szukania O(\log{n})) lub też zamienić tablicę na zbiór mieszający i wtedy złożoność jest stała.
To nie ma być wyszukiwanie w czymś. Może inaczej.
Program tworzy jakąś tam liczbę reprezentowaną w taki sposób:
[code]
v=int(raw_input("Podaj dlugosc"))
code=[0]*v
for x in range (v): code[x]=random.randint(0,9)
[/code]
I trzeba wykonać znajdowanie takiej liczby metodą BF, przy czym warto wspomnieć, że w przyszłości ma to być rozszerzone o dowolne znaki Ascii, a nie tylko liczby, więc szukanie na zasadzie od zera ++ do końca, odpada.

0

Nie łatwiej byłoby Ci zamiast tworzenia "wyzerowanej" listy, a później jej uzupełniania w pętli:

code=[0]*v
for x in range (v): code[x]=random.randint(0,9)

użyć czegoś takiego:

code = [random.randint(0, 9) for x in range(v)]

zobacz: http://docs.python.org/tutorial/datastructures.html#list-comprehensions

1 użytkowników online, w tym zalogowanych: 0, gości: 1