Funkcje python

GL
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:2
0

Witam,
mam problem z tym zadaniem, gdyby ktoś była w stanie pomóc z góry bardzo dziękuję.
"Napisz rekurencyjną funkcję liczby (x,y), która będzie wypisywała wszystkie liczby malejąco z przedziału <x,y>

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

funkcja:

  1. Jeśli x>y wyjdź z funkcji
  2. Jeśli nie, to wypisz y a następnie wywołaj funkcja(x,y-1)

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:31 minut
  • Postów:4935
1

Trochę nieokreślone to "malejąco", ale rozumiem jak wyżej, czyli od y do x, np:

Kopiuj
def print_numbers(x, y):
    if y == x: 
        print(x)
        return
    else:
        print(y)
        return print_numbers(x, y - 1)

print(print_numbers(1, 5))

GL
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:2
0

Bardzo dziękuję :)

Spearhead
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 8 godzin
  • Postów:1002
1

Jeśli x<y to w przedziale <x, y> jest nieskończenie wiele liczb i nie da się ich wszystkich wypisać.

edytowany 1x, ostatnio: Spearhead
Zobacz pozostały 1 komentarz
Spearhead
To już milczące założenie, zadanie powinno być ściśle sformułowane.
Shalom
To jeszcze zdefiniujmy w ogóle czym jest x,y i jak wygląda relacja mniejszości w zbiorze tych elementów i do tego co to znaczy wypisać ;)
Spearhead
No dobrze, bardziej chodziło o to, że dla "domyślnych", intuicyjnych definicji zadanie żąda niemożliwego. Bo widząc pojęcie "liczba" zakłada się "domyślnie" raczej rzeczywistą, a nie naturalną. I tego doprecyzowania mi tutaj zabrakło.
Shalom
W komputerach raczej zakłada się że liczba jest naturalna, co więcej generalnie naturalna i ograniczona rozmiarami rejestrów procesora, więc w tym przypadku zapewne co najwyzej 64 bitowa :) Liczby zmiennoprzecinkowe w komputerze to raczej biedna proteza i twój problem w ogóle nie występuje -> liczb zmiennoprzecinkowych nie jest nieskończenie wiele bo masz nadal tylko N bitów do dyspozycji.
Spearhead
Jak najbardziej występuje: przecież to, że nie mogę reprezentować jakiejś liczby na skończonej liczbie bitów nie oznacza, że taka liczba nie istnieje. A w treści zadania ani słowa, że wynik ma być ograniczony architekturą i ilością rejestrów. Stąd proszę o precyzyjne definicje problemu, by można go było potem modelować z niedoskonałą dokładnością ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.