W odpowiedzi na dwie podane liczby naturalne n i k: (1) wylosuj i wypisz ciąg n liczb naturalnych z przedziału 0,...,10 zlicz i podaj ilość wystąpień k-tego elementu w tym ciągu. Zakładamy (bez sprawdzania), że n>k.
Zrobiłeś coś w tym kierunku ?
@ledi12: no wstawił post na forum licząc że ktoś za niego rozwiąże
zaczynam z pythonem
bez hejtu koledzy
@Bartex1234: Obejrzyj poradnik do Pythona
Jak umiesz angielski:
Wygląda mi to nie jak zaczynanie nauki z pythonem ale zadanie do zrobienia, którego nie chce Ci się wykonać
@Bartex1234: od 2h latam po internecie i szukam rzeczy aby to zrozumiec, trudne sa poczatki:(
@Marcin Marcin: od marca zaczalem informatyke, jestem po 6h pythona, to jest zadanie ktore musze ogarnac po prostu
from random import randint
ile = int(input("Podaj liczbę n? "))
lista = []
for i in range(0, ile):
lista.append(randint(0, 10+1))
print(lista)
Dobry start. Co jest nie tak:
-
randint
daje wartości z przedziału obustronnie domkniętego, więc Ty generujesz z [0; 11], a miałeś z [0; 10]. - Nie ma potrzeby jawnie startować
range
od zera, to jej wartość domyślna. - Zamiast
lista.append
lepiej zobaczyć, co to takiego list comprehension w Pythonie — wtedy zamiast tej pętli będziesz miałlista = [randint(0, 10) for _ in range(ile)]
A co dalej?
- Chciałbyś przyjmować dwie liczby, a nie jedną.
- Najprostszym podejściem do zliczenia wystąpień będzie przelecenie w pętli przez listę i patrzenie, czy dana wartość jest równa
lista[k]
, czy nie; i odpowiednie zwiększanie licznika. Mniej czytelnym — więc i mniej polecanym — będzie twórcze wykorzystanie ww. list comprehension wraz zsum
.
@Althorion: dziękuję za wskazówki, pozdrawiam
@Bartex1234: rozumiem, jeszcze raz dzięki.