[Algorytmy] ciag zero jedynkowy

masik09
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 15 gru 2018, o 16:18
Płeć: Mężczyzna
Lokalizacja: polska

[Algorytmy] ciag zero jedynkowy

Post autor: masik09 »

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
Ostatnio zmieniony 15 gru 2018, o 17:21 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
a4karo
Użytkownik
Użytkownik
Posty: 22209
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3755 razy

[Algorytmy] ciag zero jedynkowy

Post autor: a4karo »

Słyszałeś o pętlach albo o rekurencyji?
masik09
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 15 gru 2018, o 16:18
Płeć: Mężczyzna
Lokalizacja: polska

[Algorytmy] ciag zero jedynkowy

Post autor: masik09 »

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
a4karo
Użytkownik
Użytkownik
Posty: 22209
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3755 razy

Re: [Algorytmy] ciag zero jedynkowy

Post autor: a4karo »

A czemu myślisz o liczbach w systemie dzisietnym a nie o ciągach znaków?
Dudenzz
Użytkownik
Użytkownik
Posty: 93
Rejestracja: 8 mar 2009, o 18:21
Płeć: Mężczyzna
Pomógł: 19 razy

Re: [Algorytmy] ciag zero jedynkowy

Post autor: Dudenzz »

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))
ODPOWIEDZ