from os import system odp = input('Wyczyścić ekran (T - tak, inny znak - nie) ? ') if odp == 'T': system('cls') print(''' Zadanie 1. Przyjmujemy taką definicję: napis (ciąg znaków) jest palindromem, jeżeli zapisany od tyłu ma taką samą postać. Np. są palindromami napisy: 'asa', 'ALA'. Które napisy ze zbioru napisów {'KOK','los','sos','kobyłamamałybok'} są palindromiczne? ''') napisy = ['KOK','los','sos','kobyłamamałybok'] print("Palindromy:") for napis in napisy: if napis == napis[::-1]: print(napis) print(''' Zadanie 2. Liczba jest palindromiczna, jeżeli ma taką samą wartość jak liczba o odwróconej kolejności cyfr. Np. liczby 77, 333, 989, 10201 są palindromiczne. Które liczby ze zbioru {3,49,66, 1551, 238832,57,26762, 123456654321} są palindromiczne? Nie przeprowadzać konwersji na dane typu string, nie korzystać z list. Przeprowadzić działania tylko na liczbach. ''') liczby = [3,49,66, 1551, 238832,57,26762, 123456654321] print("Liczby palindromiczne:") for liczba in liczby: poczatkowa_liczba = liczba wynik = 0 while liczba > 0: cyfra = liczba % 10 wynik = wynik * 10 + cyfra liczba = liczba // 10 if poczatkowa_liczba == wynik: print(poczatkowa_liczba) print(''' Zadanie 3. Zbiór jest to zestawienie elementów w pewną całość. W zbiorze elementy się nie powtarzają. Podzbiór zbioru to zbiór złożony z dowolnych elementów tego zbioru. Zatem za ten sam zbiór uważamy zbiory różniące się tylko kolejnością elementów. Wypisać wszystkie podzbiory 4. elementowe zbioru {1,2,3,4,5,6}. ILe ich jest? ''') zbior = [1, 2, 3, 4, 5, 6] def generuj_podzbiory(zbior): podzbiory = [] n = len(zbior) zbior_list = zbior for i in range(2**n): podzbior = [] for j in range(n): if (i & (1 << j)) > 0: podzbior.append(zbior_list[j]) if len(podzbior) == 4: podzbiory.append(podzbior) return podzbiory podzbiory_4_elementowe = generuj_podzbiory(zbior) print("Podzbiory 4-elementowe zbioru [1, 2, 3, 4, 5, 6]:") for podzbior in podzbiory_4_elementowe: print(podzbior) print("Ilość podzbiorów:") print(len(podzbiory_4_elementowe)) print(''' Zadanie 4. Każdą liczbę naturalną z {2,14,25,38,64,81} zapisać w sytemie o naturalnej podstawie z <2,9>. Nie wykonywać konwersji na wartości typu string. ''') liczby = [2, 14, 25, 38, 64, 81] for liczba in liczby: print(f"Liczba {liczba} w systemie o podstawie 2-9:") for podstawa in range(2, 10): wynik = [] liczba_poczatkowa = liczba while liczba_poczatkowa > 0: wynik.insert(0, liczba_poczatkowa % podstawa) liczba_poczatkowa //= podstawa print(f"Podstawa {podstawa}: ", end="") for znak in wynik: print(znak, end="") print() print() print(''' Zadanie 5. Liczby: 2,1,3,4,6,5,10,8,9,7 posortować rosnąco ze względu na wartość reszty z dzielenia przez 3. ''') liczby = [2,1,3,4,6,5,10,8,9,7] print(sorted(liczby, key= lambda x: x%3))
napisy = ['KOK','los','sos','kobyłamamałybok'] for napis in napisy: if napis == napis[::-1]: print(f"Napis {napis} jest palindromem")
liczby = [3,49,66, 1551, 238832,57,26762, 123456654321] def czy_palindromiczna(liczba): poczatkowa_liczba = liczba odwrocona_liczba = 0 while liczba > 0: cyfra = liczba % 10 odwrocona_liczba = odwrocona_liczba * 10 + cyfra liczba = liczba // 10 return poczatkowa_liczba == odwrocona_liczba for liczba in liczby: if czy_palindromiczna(liczba): print(f"Liczba {liczba} jest palindromiczna")
#1 sposób def generuj_podzbiory(zbior): podzbiory = [] n = len(zbior) zbior_list = list(zbior) for i in range(2**n): podzbior = [zbior_list[j] for j in range(n) if (i & (1 << j)) > 0] if len(podzbior) == 4: podzbiory.append(set(podzbior)) return podzbiory zbior = {1, 2, 3, 4, 5, 6} podzbiory_4_elementowe = generuj_podzbiory(zbior) print(f"Podzbiory 4-elementowe zbioru {zbior}:") print(*podzbiory_4_elementowe, sep='\n') print(f"Ilość podzbiorów: {len(podzbiory_4_elementowe)}") #2 sposób from itertools import combinations zbior = {1, 2, 3, 4, 5, 6} print("Podzbiory 4-elementowe zbioru {1, 2, 3, 4, 5, 6}:") print(*combinations(zbior, 4), sep="\n") print(f"Ilość podzbiorów: {len(podzbiory_4_elementowe)}")
def zapisz_w_systemie(liczba, podstawa): wynik = [] while liczba > 0: wynik.insert(0, liczba % podstawa) liczba //= podstawa return wynik or [0] liczby = [2, 14, 25, 38, 64, 81] for liczba in liczby: print(f"Liczba {liczba} w systemie o podstawie 2-9:") for podstawa in range(2, 10): wynik = zapisz_w_systemie(liczba, podstawa) print(f"Podstawa {podstawa}: ", end="") print(*wynik, sep="") print()
liczby = [2,1,3,4,6,5,10,8,9,7] print(*sorted(liczby, key= lambda x: x%3), sep=", ")
napisy = ['KOK','los','sos','kobyłamamałybok'] print("Palindromy:") for napis in napisy: if napis == napis[::-1]: print(napis)
liczby = [3,49,66, 1551, 238832,57,26762, 123456654321] print("Liczby palindromiczne:") for liczba in liczby: poczatkowa_liczba = liczba wynik = 0 while liczba > 0: cyfra = liczba % 10 wynik = wynik * 10 + cyfra liczba = liczba // 10 if poczatkowa_liczba == wynik: print(poczatkowa_liczba)
zbior = [1, 2, 3, 4, 5, 6] def generuj_podzbiory(zbior): podzbiory = [] n = len(zbior) zbior_list = zbior for i in range(2**n): podzbior = [] for j in range(n): if (i & (1 << j)) > 0: podzbior.append(zbior_list[j]) if len(podzbior) == 4: podzbiory.append(podzbior) return podzbiory podzbiory_4_elementowe = generuj_podzbiory(zbior) print("Podzbiory 4-elementowe zbioru [1, 2, 3, 4, 5, 6]:") for podzbior in podzbiory_4_elementowe: print(podzbior) print("Ilość podzbiorów:") print(len(podzbiory_4_elementowe))
liczby = [2, 14, 25, 38, 64, 81] for liczba in liczby: print(f"Liczba {liczba} w systemie o podstawie 2-9:") for podstawa in range(2, 10): wynik = [] liczba_poczatkowa = liczba while liczba_poczatkowa > 0: wynik.insert(0, liczba_poczatkowa % podstawa) liczba_poczatkowa //= podstawa print(f"Podstawa {podstawa}: ", end="") for znak in wynik: print(znak, end="") print() print()
liczby = [2,1,3,4,6,5,10,8,9,7] print(sorted(liczby, key= lambda x: x%3))