**Ha valaki az igazságot és a törvényszerűséget keresi, nem tehet különbséget kicsiny és nagy problémák között.
Aki a kicsiny dolgokban nem veszi komolyan az igazságot, abban az emberben nagy dolgokkal kapcsolatban sem bízhatunk meg.**
*Albert Einstein*
%pylab inline
Több megoldást is közzéteszünk, mindegyik helyes, és tökéletesen elvégzi a kiadott feladatot.
Először mindig futtasuk le a "%pylab inline" parancsot
A=[] # Létrehozunk egy üres listát, amit majd később lehet növelni
for i in range(0,1000): # Elindítunk egy ciklust, ami 1000-szer fut le
B=randint(0,100) # randint választ egy számot 0 és 100 között
A.append(B) # hozzáírjuk az A listához a B számot
A[100:200:7] # kiírjuk a lista elemeit 100 és 200 között 7-sével
B=randint(0,100,1000) # Generálunk egy 1000 tagú listát a randint-tel
C=arange(100,200,7) # megalkotjuk azoknak a számoknak a listáját, amilyen indexű elmeet kiíratni szeretnénk
B[C] #kiírjuk a megfelelő indexű számokat
B=randint(0,100,1000) # Generálunk egy 1000 tagú listát a randint-tel
B[100:200:7] #Lekérjük a megfelelő elemeket a listából
randint(0,100,1000)[100:200:7] #A generált lista megfelelő elemeét hívjuk meg
#Magyarázat: A randint egy listát ad, aminek hívatkozhatunk az elemeire
mini=1.0 #bekérjük a kezdő értéket
maxi=2.0 #bekérjük a végső értéket
a=1 # bekérjük az "a" értéket
b=2 # bekérjük a "b" értéket
xlim(mini, maxi) # megadjuk az ábrázolási tartományt (x tengelyen)
x=arange(mini,maxi, 0.01) # 0,01-s lépésközzel megadom az x tengely értékeit
plot(x,(log10(a*x)+b)) # x-et és az egyenletet ábrázoljuk
mini=1.0 #bekérjük a kezdő értéket
maxi=2.0 #bekérjük a végső értéket
a=1 # bekérjük az "a" értéket
b=2 # bekérjük a "b" értéket
x=linspace(mini, maxi,1000) # Generálunk 1000 számot a tartományban egyenlő lépésközzel
plot(x,log10(a*x)+b) # x-et és az egyenletet ábrázoljuk
mini=1.0 #bekérjük a kezdő értéket
maxi=2.0 #bekérjük a végső értéket
a=1 # bekérjük az "a" értéket
b=2 # bekérjük a "b" értéket
plot(linspace(mini,maxi, 1000),log10(a*x)+b) # Beírható a generálás közvetlen a plot-ba
mini=1.0 #bekérjük a kezdő értéket
maxi=2.0 #bekérjük a végső értéket
a=1 # bekérjük az "a" értéket
b=2 # bekérjük a "b" értéket
def func(x,a,b): # létrehozok egy függvényt, ami elvégzi a kért műveletet
# A függvény megkapja az "x", "a" és "b" értékeket!
y=log10(a*x)+b # kiszámoljuk az y-t
return y # a függvény visszatér az ny értékkel
x=linspace(mini,maxi, 1000)
plot(x,func(x,a,b)) #ábárolzjuk az x-et és a függvényt
mini=1.0 #bekérjük a kezdő értéket
maxi=2.0 #bekérjük a végső értéket
a=1 # bekérjük az "a" értéket
b=2 # bekérjük a "b" értéket
def func(x,a,b):
y=log10(a*x)+b
return y
x=linspace(mini,maxi, 1000)
adat=(a,b) #létrehozok egy "tuple" listát az a,b paraméterekből
plot(x,func(x,*adat)) # a paraméterekkel hívjuk mega függvényt
b=zeros((100,2))
for i in arange(1,100):
b[i,:]=b[i-1,:]
irany=random.choice(['X','Y'])
lepes=random.choice([0,1])
if irany == "X":
b[i,0]=b[i,0]+lepes
else:
b[i,1]=b[i,1]+lepes
plot(b[:,0], b[:,1], "o")
a=[0,0]
b=zeros((100,2))
for i in arange(0,100):
irany=random.choice(['X','Y'])
if irany == "X":
a[0]=a[0]+random.choice([0,1])
else:
a[1]=a[1]+random.choice([0,1])
b[i,:]=a[:]
plot(b[:,0], b[:,1], "o")
b=zeros((100,2))
for i in arange(1,100):
b[i,:]=b[i-1,:]
irany=random.choice(['X','Y'])
if irany == "X":
b[i,0]=b[i,0]+random.choice([0,1])
else:
b[i,1]=b[i,1]+random.choice([0,1])
plot(b[:,0], b[:,1], "o")
xy=zeros((100,2))
for i in range(1,100):
xy[i]=xy[i-1]
irany,lepes=random.choice([0,1],2)
xy[i,irany]+=lepes
plot(xy[:,0], xy[:,1], "o")
a=[0,0]
xy=zeros((100,2))
for i in range(1,100):
a[random.choice([0,1])]=random.choice([0,1])
xy[i,:]=xy[i-1,:]+a
plot(xy[:,0], xy[:,1], "o")
x,y=cumsum(list(map(eval,random.choice(('[0,0]','[0,1]','[1,0]'),100))),axis=0).T
plot(x,y)
fiblist = [0,1] # Megadjuk a sorozat első kettő elemét
for i in range(50): # létrehozunk egy ciklust, ami kiszámolja a sorozatot
#a sorozathoz hozzáírjuk az előző két tag összegét:
fiblist.append(fiblist[i] + fiblist[i+1])
hanyados=[] # létrehozok egy üres listát
for i in range(2,len(fiblist)):
# az arány listába beírom a sorozat tagjainak hányadoását
hanyados.append((fiblist[i]) / (fiblist[i-1]))
print(i,hanyados[i-2]-(1+sqrt(5))/2) #kiíratom a hanyados és az aranymetszés különbségét
# Vegyük észre, hogy a ciklus 2-től indul (így nincs zéróval való osztás), de a
# hányadost ugyanúgy nullától kell indexelni, ezért van az "i-2" benne
fiblist = [0,1] # megadjuk az első 2 tagot
for i in range(2,100):
#a sorozathoz hozzáírjuk az előző két tag összegét:
fiblist.append(fiblist[-1] + fiblist[-2])
hanyados = (fiblist[-1]) / (fiblist[-2]) # kiszámoljuk a hányadost
if hanyados == (1+sqrt(5))/2: # Megvizsgáljuk mikor egyezik meg a hányados az aranymetszéssel
print('it:',i)
break # Megállítjuk a program futását
hist(random.choice([1,2,3,4],20)) # generálok egy 20 elemű véletlen listát, és hisztogrammal ábrázolom
hist(random.choice([1,2,3,4],50))
hist(random.choice([1,2,3,4],100))
hist(random.choice([1,2,3,4],200))
hist(random.choice([1,2,3,4],1000))
j=1 # legyen j változó 1
for n in [20,50,100,200,1000]: # menjen egy ciklus végig a az elemszámok listáján
a=[] # legyen "a" egy üres vektor
for i in range(n): # egy ciklus végigmegy az adott elemszámig
a.append(random.choice([1, 2, 3, 4])) # folyamatosan hozzáírok az "a" vektorhoz
subplot(2,3,j) # suboplotban beállítom, hogy hanyadik részképet ábrázolom
hist(a,normed=1) # elkészítem a hisztogramot
j=j+1 # megnövelem j-t, hogy másik részképet válasszak
n=[20,50,100,200,1000] # létrehozom az elemszámok listáját
a=random.choice([1,2,3,4],1000) # generálok egy 1000 elemű véletlen listát
for j in range(0,len(n)): # egy ciklus anyiszor ismétlődik, aminnyi elemt tartalmaz az "n" lista
subplot(2,3,j+1) # használjuk a subplot parancsot, és mindig új részegységben rajzolunk
hist(a[0:n[j]]) # az adott darabszámú részlistáról csinálunk hisztogramot
for n in [20,50,100,500,1000]: # egy ciklus végigmegy az elemszámok listáján
figure() #mindig új ábrát fog nyitni
# hasonlóan működik, mint a subplot, de itt nem egy képet osztok fel kis részekre,
# hanem magát egy teljesen új képet használok (mintha egy új cellát használnék az ábrázolásra)
hist(random.choice([1, 2, 3, 4],n) ,normed=True) #hisztogram készítése