Cześć, potrzebuję pseudokod lub schemat blokowy algorytmu który ma "wypisać" wszystkie ciągi zero jedynkowe długości n. N to liczba naturalna która sami zadajemy.
Dana jest liczba naturalna n. Wypisać wszystkie ciągi
zero-jedynkowe długości n
[Algorytmy] ciag zero jedynkowy
[Algorytmy] ciag zero jedynkowy
Ostatnio zmieniony 15 gru 2018, o 17:21 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
[Algorytmy] ciag zero jedynkowy
Słyszałem i rozumiem ze mialo by to wygladac jakos tak ze zaczynam od zer i zwiekszam o 1 cyfre jednosci , pozniej dziesiatek itd ale nie wiem jak to opisach na schemacie
Re: [Algorytmy] ciag zero jedynkowy
Napisz funkcję, która zamienia liczbę dziesiętną na ciąg binarny, a potem w zwykłej pętli od 0 do \(\displaystyle{ 2^n-1}\) wypisuj ciąg dla każdej z tych liczb. Nie jest to najtrudniejsze zadanie na świecie, zgaduje, że masz problem nie ze samym algorytmem, a składnią. Dam ci rozwiązanie tego problemu w pythonie, mam nadzieję, że to nie jest język, którego masz użyć.
Kod: Zaznacz cały
#zadana długość ciągu
n = 4
#funkcja konwertująca dowolną liczbę na ciąg symboli składających się z '0' i '1'
#n to liczba konwertowana
#l to długość ciągu - wykładnik
def convert(n,l):
string = ''
#tak długo jak wykładnik jest większy równy zero
while l >= 0:
#sprawdź czy liczba jest większa niż 2 do potęgi wykładnik
pow2 = pow(2,l)
if n >= pow2:
#jeżeli tak, to dodaj do ciągu binarnego '1'
string += '1'
#i zmniejsz liczbę o wartośc 2 do potęgi wykładnik
n = n - pow2
else:
#w przeciwnym wypadki dodaj do ciągu binarnego '0'
string += '0'
#zmniejsz wykładnik o 1
l-=1
#zwróć ciąg binarny
return string
#dla liczb od 0 do (dwa do potęgi długość ciągu) minus jeden
for i in range( np.power(2,n)):
#wypisz na ekranie ciąg binarny reprezentujący tą liczbę
print(convert(i, n-1))