Programiranje v Pythonu
Re: Programiranje v Pythonu
Živjo, eno nalogco bi meu iz permutacij:
Sestavite funkcijo slike(permutacija, x, n), ki vrne zaporedje slik,
ki ga dobimo, če začnemo s številom x in na njem n-krat uporabimo
permutacijo permutacija.
>>> slike({1: 3, 2: 4, 3: 2, 4: 1}, 1, 2)
[1, 3, 2]
Hvala!
Sestavite funkcijo slike(permutacija, x, n), ki vrne zaporedje slik,
ki ga dobimo, če začnemo s številom x in na njem n-krat uporabimo
permutacijo permutacija.
>>> slike({1: 3, 2: 4, 3: 2, 4: 1}, 1, 2)
[1, 3, 2]
Hvala!
Re: Programiranje v Pythonu
Lahko gres z rekurzijo:
V principu n==2 ne rabis ampak se mi zdi malo butasto rekurzijo klicat za tisti primer
Koda: Izberi vse
def slike(permutacija,x,n):
if n==1:
return [x]
elsif n==2:
return [x,permutacija[x]]
else:
preostanek=slike(permutacija,permutacija[x],n-1)
preostanek.insert(0,x)
return preostanek
Re: Programiranje v Pythonu
Hvala...je še ena napaka, ker vrne napačno dolžino seznama...glede na protiprimere, ki mi jih vrne v Idle-u(vrne seznam dolžine 2) se mi zdi, da funckija dela samo za n=1 in n=2...
Re: Programiranje v Pythonu
Ok razen elif/elsif popravka pri meni dela:
Koda: Izberi vse
print(slike({1: 3, 2: 4, 3: 2, 4: 1}, 1, 3))
[1, 3, 2]
print(slike({1: 3, 2: 4, 3: 2, 4: 1}, 1, 5))
[1, 3, 2, 4, 1]
Re: Programiranje v Pythonu
Lepo prosim za malo pomoči pri naslednji nalogi...
Collatzovo zaporedje
#
# Naj bo $a_0$ naravno število. Za vsak indeks $i$ definiramo: Če je
# število $a_i$ sodo, je $a_{i+1}=a_i/2$, sicer pa je $a_{i+1}=3a_i+1$.
#
# Collazova domneva pravi, da za vsako naravno število $n$ Collatzovo
# zaporedje z začetnim členom $a_0=n$ vsebuje število $1$. Najmanjši
# indeks $i$, za katerega je $a_i=1$, imenujemo indeks ustavitve
# Collatzovega zaporedja.
1.)Napišite program, ki bo za dani začetni člen n izpisal naslednji člen
# Collatzovega zaporedja.
moja rešitev:
def collatz(k):
if k%2==0:
return k//2
else:
return 3*k+1
Kaj je tukaj narobe?
Collatzovo zaporedje
#
# Naj bo $a_0$ naravno število. Za vsak indeks $i$ definiramo: Če je
# število $a_i$ sodo, je $a_{i+1}=a_i/2$, sicer pa je $a_{i+1}=3a_i+1$.
#
# Collazova domneva pravi, da za vsako naravno število $n$ Collatzovo
# zaporedje z začetnim členom $a_0=n$ vsebuje število $1$. Najmanjši
# indeks $i$, za katerega je $a_i=1$, imenujemo indeks ustavitve
# Collatzovega zaporedja.
1.)Napišite program, ki bo za dani začetni člen n izpisal naslednji člen
# Collatzovega zaporedja.
moja rešitev:
def collatz(k):
if k%2==0:
return k//2
else:
return 3*k+1
Kaj je tukaj narobe?
Re: Programiranje v Pythonu
Jaz ne vidim nic narobe. Enko verjetno hoces zunaj lovit ko klices to funkcijo.
Re: Programiranje v Pythonu
Napako mi vrne
Podnaloga 1 ni prestala vseh testov:
- Izpisati morate le eno celo število.
Podnaloga 1 ni prestala vseh testov:
- Izpisati morate le eno celo število.
Re: Programiranje v Pythonu
Funkcija ze v redu dela, mogoce moras za to avtomatsko testiranje tako napisat, da ne samo definiras funkcijo ampak napises cel program, ki na vhodu sprejme stevilo, ga poslje v to funkcijo ki jo imas, in resitev izpise. Ker ce definiras samo funkcijo, ne mores pricakovat da bo avtomatika uganila kako jo klicat.
Re: Programiranje v Pythonu
Začnem s k=0 in dam na koncu print(k)?
Re: Programiranje v Pythonu
Ma po moje ni to... malo sem pomislil, da bi se to testiralo avtomaticno kot
python moja_koda.py 15
ali
moja_koda.py 15
ce si na operacijskem sistemu s katerim se da delat...
in bi dobil ven 46. Ampak dvomim da je to, ker sem siguren da na windowsih se to ne pricakuje.
A to je neko spletno avtomatsko preverjanje? Ali imas polno navodilo oziroma navodila, v kaksni obliki hocejo to imet? Ker sama funkcija, ce jo jaz prepisem v svoj python in pozenem, vrne tocno to kar pricakujes.
python moja_koda.py 15
ali
moja_koda.py 15
ce si na operacijskem sistemu s katerim se da delat...
in bi dobil ven 46. Ampak dvomim da je to, ker sem siguren da na windowsih se to ne pricakuje.
A to je neko spletno avtomatsko preverjanje? Ali imas polno navodilo oziroma navodila, v kaksni obliki hocejo to imet? Ker sama funkcija, ce jo jaz prepisem v svoj python in pozenem, vrne tocno to kar pricakujes.
Re: Programiranje v Pythonu
######################################################################@@#
# Ljubezen nam je vsem v pogubo
#
# Socialno omrežje zaljubljenosti podamo s slovarjem, ki ime osebe
# preslika v množico vseh, v katere je oseba zaljubljena (ena oseba
# je lahko zaljubljena v več oseb). Na primer, slovar
#
s = {'Ana' : {'Bine','Cene'},
'Bine' : set(),
'Cene' : {'Bine'},
'Davorka' : {'Davorka'},
'Eva' : {'Bine'}}
nam pove, da je Ana zaljubljena v Bineta in Cenete, Bine ni
zaljubljen, Cene ljubi Bineta, Davorka samo sebe in Eva Bineta.
#######################################################################@@#
##################################################################@000012#
# 1) Sestavite funkcijo narcisoidi(d), ki sprejme slovar zaljubljenih
# in vrne _monžico_ tistih, ki ljubijo same sebe.
Kako naj naredim prvo nalogo?
# Ljubezen nam je vsem v pogubo
#
# Socialno omrežje zaljubljenosti podamo s slovarjem, ki ime osebe
# preslika v množico vseh, v katere je oseba zaljubljena (ena oseba
# je lahko zaljubljena v več oseb). Na primer, slovar
#
s = {'Ana' : {'Bine','Cene'},
'Bine' : set(),
'Cene' : {'Bine'},
'Davorka' : {'Davorka'},
'Eva' : {'Bine'}}
nam pove, da je Ana zaljubljena v Bineta in Cenete, Bine ni
zaljubljen, Cene ljubi Bineta, Davorka samo sebe in Eva Bineta.
#######################################################################@@#
##################################################################@000012#
# 1) Sestavite funkcijo narcisoidi(d), ki sprejme slovar zaljubljenih
# in vrne _monžico_ tistih, ki ljubijo same sebe.
Kako naj naredim prvo nalogo?
Re: Programiranje v Pythonu
Pa to je še najlažje kar si lahko izmisliš. Ena, naivna varianta je, da enostavno inicializiraš prazno množico
narcisi=set()
in greš z zanko skozi:
for clovek in s.keys():
if clovek in s[clovek]:
narcisi.add(clovek)
Da se pa celo v eni vrstici, če uporabljaš tiste konstruktorje:
narcisi=set([ clovek for clovek in s.keys() if clovek in s[clovek] ])
narcisi=set()
in greš z zanko skozi:
for clovek in s.keys():
if clovek in s[clovek]:
narcisi.add(clovek)
Da se pa celo v eni vrstici, če uporabljaš tiste konstruktorje:
narcisi=set([ clovek for clovek in s.keys() if clovek in s[clovek] ])
-
- Prispevkov: 8
- Pridružen: 8.9.2012 17:00
Re: Programiranje v Pythonu
Tole me bo sram napisat, ampak če ti programiranje res ne leži ...
Naloga zahteva, da napišeš program, ki za vhodni števili izračuna in izpiše celoštevilčni rezultat deljenja in ostanek pri deljenju.
npr. 23, 5 [vhodna podatka]; celoštevilčni rezultat deljenja: 4; rezultat: 3
Za prvi dve vrstici napišem
a = int(input("Vnesi deljenec: "))
b = int(input("Vnesi delitelj: "))
potem pa se mi ne sanja (še za ti dve vrstici nisem 100 %).
Vem, da se % uporablja za celoštevilčni ostanek pri deljenju, kako to vpisati v program pa ne vem.
Naloga zahteva, da napišeš program, ki za vhodni števili izračuna in izpiše celoštevilčni rezultat deljenja in ostanek pri deljenju.
npr. 23, 5 [vhodna podatka]; celoštevilčni rezultat deljenja: 4; rezultat: 3
Za prvi dve vrstici napišem
a = int(input("Vnesi deljenec: "))
b = int(input("Vnesi delitelj: "))
potem pa se mi ne sanja (še za ti dve vrstici nisem 100 %).
Vem, da se % uporablja za celoštevilčni ostanek pri deljenju, kako to vpisati v program pa ne vem.
Re: Programiranje v Pythonu
Ja noben se ne rodi pameten, beri dokumentacijo, zato je tam
V Pythonu je // operator za celoštevilsko deljenje
Sicer pa potem samo
print(a//b)
V Pythonu je // operator za celoštevilsko deljenje
Sicer pa potem samo
print(a//b)
Re: Programiranje v Pythonu
def narcisoidi(d):
narcisi={}
for clovek in d.keys():
if clovek in d[clovek]:
narcisi.add(clovek)
Pri tej kodi mi napiše: 'dict' object has no attribute 'add'
Ne dela mi tudi z join, append,...
narcisi={}
for clovek in d.keys():
if clovek in d[clovek]:
narcisi.add(clovek)
Pri tej kodi mi napiše: 'dict' object has no attribute 'add'
Ne dela mi tudi z join, append,...