import sage.misc.banner
banner()
%display ascii_art
cp2=cartesian_product(([1,2,3],['a','b']));cp2
cp2.list()
cp2.cardinality()
cp3=cartesian_product(([4,5,1],[-1,-2],['a','b','c']));cp3
cp3.cardinality()
cp3.list()
Ispišite sve 3-permutacije skupa $\{a,b,c,d\}$.
per=Arrangements(['a','b','c','d'],3);per
per.list()
per.cardinality()
Ispišite sve 3-kombinacije skupa $\{a,b,c,d\}$.
komb=Combinations(['a','b','c','d'],3);komb
komb.list()
komb.cardinality()
Ispišite sve 3-permutacije s ponavljanjem skupa $\{a,b,c,d\}$.
perpon=Tuples(['a','b','c','d'],3);perpon
perpon.list()
perpon.cardinality()
Ispišite sve 3-kombinacije s ponavljanjem skupa $\{a,b,c,d\}$.
kombpon=UnorderedTuples(['a','b','c','d'],3);kombpon
kombpon.list()
kombpon.cardinality()
Ispišite sve permutacije skupa $\{a,b,c,d\}$.
p=Permutations(['a','b','c','d']);p
p.cardinality()
p.list()
Ispišite sve cikličke permutacije skupa $\{a,b,c,d\}$.
cp=CyclicPermutations(['a','b','c','d']);cp
len(cp.list())
cp.list()
Napišite sve deranžmane skupa $\{a,b,c,d\}$.
der=Derangements(['a','b','c','d']);der
len(der)
der.list()
Koliko ima četveroznamenkastih prirodnih brojeva s različitim znamenkama?
brojevi=list(filter(lambda x: x[0]!=0 and len(set(x))==4, Tuples(range(10),4)))
len(brojevi)
prvih 200 takvih brojeva
brojevi=sorted(map(lambda x: int(''.join(map(str,x))), brojevi))
brojevi[0:200]
Koliko ima prirodnih brojeva strogo manjih od 10000 s različitim znamenkama?
br1=list(Tuples(range(1,10),1))
br2=list(filter(lambda x: x[0]!=0 and len(set(x))==2, Tuples(range(10),2)))
br3=list(filter(lambda x: x[0]!=0 and len(set(x))==3, Tuples(range(10),3)))
br4=list(filter(lambda x: x[0]!=0 and len(set(x))==4, Tuples(range(10),4)))
brojevi2=br1 + br2 + br3 + br4
len(brojevi2)
prvih 400 takvih brojeva
brojevi2=sorted(map(lambda x: int(''.join(map(str,x))), brojevi2))
brojevi2[0:400]
Koliko ima neparnih četveroznamenkastih prirodnih brojeva s različitim znamenkama?
neparni4=list(filter(lambda x: x[0]!=0 and len(set(x))==4 and (x[-1]%2==1), Tuples(range(10),4)))
len(neparni4)
prvih 200 takvih brojeva
neparni4=sorted(map(lambda x: int(''.join(map(str,x))), neparni4))
neparni4[0:200]
Koliko se različitih riječi (smislenih i besmislenih) može dobiti permutiranjem riječi MINIMUM ?
Permutations('MINIMUM').cardinality()
rijeci=Permutations('MINIMUM').list()
list(map(lambda x: ''.join(x),rijeci))
Koliko permutacija skupa $\{1,2,3,4,5,6\}$
permS=Permutations([1,2,3,4,5,6]).list()
a) dio
len(list(filter(lambda x: x[0]==4,permS)))
list(filter(lambda x: x[0]==4, permS))
b) dio
len(list(filter(lambda x: set(x[0:2]).issubset(set([1,2,3])), permS)))
list(filter(lambda x: set(x[0:2]).issubset(set([1,2,3])),permS))
c) dio
len(list(filter(lambda x: x[-1]%2==1,permS)))
list(filter(lambda x: x[-1]%2==1,permS))
d) dio
len(list(filter(lambda x: x[-2]==2 and x[-1]==1,permS)))
list(filter(lambda x: x[-2]==2 and x[-1]==1,permS))
e) dio
len(list(filter(lambda x: not(x[-3]==2 and x[-2]==3 and x[-1]==4),permS)))
list(filter(lambda x: not(x[-3]==2 and x[-2]==3 and x[-1]==4),permS))
Koliko ima različitih uređenih šestorki čije su komponente znamenke $0,1,2,\dotsc,9$ i koje imaju:
a) dio
time len(list(filter(lambda x: x.count(1)==2 and x.count(2)==2 and len(set(x))==4, Tuples(range(10),6))))
b) dio
time len(list(filter(lambda x: x.count(x[0])==5 or x.count(x[1])==5, Tuples(range(10),6))))
c) dio
%time len(list(filter(lambda x: x.count(x[0])==2 and x.count(x[1])==2 and x.count(x[2])==2\
and x.count(x[3])==2 and x.count(x[4])==2 and x.count(x[5])==2, Tuples(range(10),6))))
d) dio
time len(list(filter(lambda x: x[0]==x[-1] and x[1]==x[-2] and x[2]==x[-3], Tuples(range(10),6))))
e) dio
time len(list(filter(lambda x: len(set(x))==6, Tuples(range(10),6))))
time Arrangements(range(10),6).cardinality()
f) dio
time len(list(filter(lambda x: len(set(x))==6 and x==sorted(x), Tuples(range(10),6))))
%time
sve=Arrangements(range(10),6).list()
rast=list(filter(lambda x: list(x)==sorted(x),sve))
len(rast)
rast
Koliko ima nenegativnih cjelobrojnih rješenja jednadžba $x_1+x_2+x_3+x_4=13$?
time len(list(filter(lambda x: x[0]+x[1]+x[2]+x[3]==13, Tuples(range(14),4))))
list(filter(lambda x: x[0]+x[1]+x[2]+x[3]==13, Tuples(range(14),4)))
Koliko rješenja u skupu $\mathbb{N}$ ima jednadžba $x_1+x_2+x_3+x_4=13$?
time len(list(filter(lambda x: x[0]+x[1]+x[2]+x[3]==13, Tuples(range(1,14),4))))
list(filter(lambda x: x[0]+x[1]+x[2]+x[3]==13, Tuples(range(1,14),4)))
Koliko ima nenegativnih cjelobrojnih rješenja jednadžba $x_1+x_2+x_3+x_4=13$ pri čemu je $x_1\geq8$?
time len(list(filter(lambda x: x[0]+x[1]+x[2]+x[3]==13 and x[0]>=8, Tuples(range(14),4))))
list(filter(lambda x: x[0]+x[1]+x[2]+x[3]==13 and x[0]>=8, Tuples(range(14),4)))
Koliko ima prirodnih brojeva manjih od 1000 koji nisu djeljivi sa 7?
len(list(filter(lambda x: x%7!=0, range(1,1000))))
list(filter(lambda x: x%7!=0, range(1,1000)))
Izračunajte broj svih peteroznamenkastih brojeva koji:
a) dio
len(list(filter(lambda x: x[0]!=0 and x.count(9)>0, Tuples(range(10),5))))
b) dio
len(list(filter(lambda x: x[0]!=0 and (x.count(9)>0 or x.count(8)>0), Tuples(range(10),5))))
c) dio
len(list(filter(lambda x: x[0]!=0 and x.count(9)>0 and x.count(8)>0, Tuples(range(10),5))))
Koliko ima brojeva od 1 do 1000 koji su djeljivi s 3, a nisu djeljivi niti s jednim od brojeva 2, 5 i 7?
len(list(filter(lambda x: x%3==0 and x%2!=0 and x%5!=0 and x%7!=0, range(1,1001))))
list(filter(lambda x: x%3==0 and x%2!=0 and x%5!=0 and x%7!=0, range(1,1001)))
maxima.load('solve_rec')
%display latex
Niz $(a_n)$ zadan je rekurzivno s $a_1=\frac{3}{2},\ a_n=5a_{n-1}-1,\ n\geq2$. Napišite prvih 50 članova niza i pronađite formulu za opći član niza.
def niz(n):
xn=3/2
i=1
while i<=n:
yield xn
xn=5*xn-1
i+=1
list(niz(4))
maxima('solve_rec(a[n]=5*a[n-1]-1, a[n],a[1]=3/2)')
%%maxima
solve_rec(a[n]=5*a[n-1]-1, a[n],a[1]=3/2)
Riješite sljedeće rekurzivne relacije:
a) dio
maxima('solve_rec(a[n+2]=4*a[n+1]-3*a[n], a[n],a[1]=1,a[2]=7)')
b) dio
maxima('solve_rec(F[n]=F[n-1]+F[n-2], F[n],F[0]=0,F[1]=1)')
c) dio
maxima('solve_rec(a[n+3]=a[n], a[n],a[0]=0,a[1]=0,a[2]=1)')
Riješite rekurziju $a_{n+4}=8a_{n+3}-18a_{n+2}+27a_n$ uz početne uvjete $a_1=0$, $a_2=-1$, $a_3=2$, $a_4=5$.
maxima('solve_rec(a[n+4]=8*a[n+3]-18*a[n+2]+27*a[n], a[n],a[1]=0,a[2]=-1,a[3]=2,a[4]=5)')
Riješite sljedeće rekurzivne relacije:
a) dio
maxima('solve_rec(2*a[n+2]-a[n+1]-a[n]=2^n, a[n],a[1]=0,a[2]=-1)')
b) dio
maxima('solve_rec(a[n+1]=5*a[n]+4*n^2+2*n+5, a[n],a[1]=2)')
c) dio
maxima('solve_rec(2*a[n+2]-5*a[n+1]+2*a[n]=10, a[n],a[0]=6,a[1]=-2)')
d) dio
maxima('solve_rec(a[n+2]-4*a[n+1]+4*a[n]=2^n, a[n],a[1]=0,a[2]=1)')
e) dio
maxima('solve_rec(a[n+2]=4*a[n+1]-4*a[n]+n^2*3^n, a[n],a[1]=0,a[2]=1)')
f) dio
maxima('solve_rec(a[n+2]-4*a[n+1]+4*a[n]=3^n-2^n, a[n],a[0]=1,a[1]=3)')
Riješite rekurziju $a_n=n^2a_{n-1}$ uz početni uvjet $a_0=1$.
maxima('solve_rec(a[n]=n^2*a[n-1], a[n],a[0]=1)')
Riješite sljedeće rekurzivne relacije:
a) dio
maxima('solve_rec(a[n+1]=(a[n]-2)/(a[n]+4), a[n],a[0]=0)')
b) dio
maxima('solve_rec(a[n+1]=1+1/a[n], a[n],a[0]=1)')
c) dio
maxima('solve_rec(a[n+1]=a[n]-a[n]*a[n+1], a[n],a[0]=1)')
Na koliko je načina moguće razmjestiti 20 jednakih kuglica u 5 različitih kutija tako da u svakoj kutiji budu barem dvije, a najviše sedam kuglica?
taylor((x^2+x^3+x^4+x^5+x^6+x^7)^5,x,0,22)
taylor((x^2+x^3+x^4+x^5+x^6+x^7)^5,x,0,22).coefficient(x^20)
Koliko rješenja ima jednadžba $x_1+x_2+x_3+x_4=13$, gdje su svi $x_1, x_2, x_3, x_4$ nenegativni cijeli brojevi i $x_1\geq 8$ ?
Možemo raditi s formalnim redovima potencija nad $\mathbb{Z}$
R.<x>=PowerSeriesRing(ZZ)
f1=sum([x^n for n in range(8,14)])+O(x^14)
f2=sum([x^n for n in range(14)])+O(x^14)
f1
f2
f2^3
f1*f2^3
(f1*f2^3).coefficients()
(f1*f2^3).padded_list(14)
(f1*f2^3).padded_list(14)[-1]
ili možemo raditi samo s polinomima
var('t')
P.<t>=PolynomialRing(ZZ)
p1=sum([t^n for n in range(8,14)])
p2=sum([t^n for n in range(14)])
p1
p2
pp=p1*p2^3;pp
pp.coefficients()
pp.padded_list()[13]
ili možemo raditi direktno sa simboličkim izrazima bez da prethodno definiramo algebarsku strukturu
var('y')
f1=sum([y^n for n in range(8,14)])
f2=sum([y^n for n in range(14)])
f1
f2
f1*f2^3
expand(f1*f2^3)
expand(f1*f2^3).coefficient(y^13)
Odredite funkciju izvodnicu za broj načina da se postigne suma $n$ pri bacanju deset različitih igraćih kocki. Izvedite iz te funkcije izvodnice funkciju izvodnicu za broj načina da se postigne parna suma, te izračunajte broj različitih načina dobivanja parne sume.
funkcija izvodnica za bacanje 10 igraćih kocki
f(y)=(y+y^2+y^3+y^4+y^5+y^6)^10
funkcija izvodnica za parne sume
p(y)=(f(y)+f(-y))/2
ukupni broj načina dobivanja parne sume
p(1)
Na koliko je načina moguće podijeliti 18 različitih igrački između troje djece tako da svako dijete dobije barem jednu igračku?
Možemo raditi s formalnim redovima potencija nad $\mathbb{Q}$
R.<x>=PowerSeriesRing(QQ)
f=sum([x^n for n in range(1,19)])+O(x^19)
f
f.ogf_to_egf()
f1=f.ogf_to_egf()^3;f1
f1.padded_list()[18]*factorial(18)
ili možemo raditi samo s polinomima
P.<t>=PolynomialRing(QQ)
p1=sum([(t^n)/factorial(n) for n in range(1,19)])
(p1^3).coefficients(sparse=False)[18]*factorial(18)
ili možemo raditi direktno sa simboličkim izrazima bez da prethodno definiramo algebarsku strukturu
f1=sum([(y^n)/factorial(n) for n in range(1,19)])
expand(f1^3).coefficient(y^18)*factorial(18)
Na koliko je načina moguće podijeliti 18 različitih igrački između troje djece tako da svako dijete dobije barem dvije igračke, ali ne više od 6 igrački?
f2=sum([(y^n)/factorial(n) for n in range(2,7)])
f2
expand(f2^3).coefficient(y^18)*factorial(18)