Contents

Véletlen számok generálása

Többféleképp lehet véletlen számot csináli matlabban. Ezen eljárások mindegyike álvéletlen -idegen szóval pszeudorandom- számot generál. A randi(n) függvény -nevével ellentétben nem társkereső alkalmazás- egy véletlen (angolul:random) egész (angolul:integer) számot generál, 1 és a megadott n között vesz fel értékeket nagyjából egyenletes eloszlással (tehát minden szám azonos valószínűságú). Például a

randi(6)

egy kockadobást szimulál.

ans =

     3

randi(6)
ans =

     1

randi(6)
ans =

     5

Látjuk, hogy tényleg nem mindig ugyanaz a kimenet.

Első közös feladat

Írjunk egy veletlenOsszead függvényt aminek bemenete egy n 1-nél nagyobb természetes szám, randi(n) paranccsal véletlen számokat generál amiket összead addig amíg 100-al egynelő vagy nagyobb számot nem kapok, visszatérő értékként padig megadja a véletlen számok számát.

function i=veletlenOsszead(n)
    i=0;
    osszeg=0;
    while osszeg<100
        osszeg=osszeg+randi(n);
        i=i+1;
    end
end

Teszteljük le

veletlenOsszead(6)
ans =

    29

veletlenOsszead(20)
ans =

     9

Második közös feladat

A fenti veletlenosszead függvényt egy kísérletnek tekintjük amit többször meg akarunk ismátelni. Írjunk egy vektor100 nevű függvényt aminek a bemenete n és kimenete egy 100 hosszú vektor ahol mindgyik elem egy veletlenOsszead(n) függvény kimenete

function v=vektor100(n)
    for i=1:100
        v(i)=veletlenOsszead(n);
    end
end

Teszteljük le:

veletlenVektor=vektor100(6)
veletlenVektor =

  Columns 1 through 13

    29    27    29    26    31    32    28    27    27    33    25    27    35

  Columns 14 through 26

    27    29    27    28    28    27    27    32    29    25    32    27    32

  Columns 27 through 39

    27    26    31    30    29    28    28    28    32    30    28    27    28

  Columns 40 through 52

    31    28    27    28    31    31    29    28    25    28    30    27    27

  Columns 53 through 65

    25    32    29    25    31    34    26    30    32    31    34    26    31

  Columns 66 through 78

    30    27    29    27    30    34    32    27    33    30    29    30    25

  Columns 79 through 91

    29    28    27    28    27    27    26    26    29    29    32    34    29

  Columns 92 through 100

    29    34    30    26    27    32    24    30    26

Hisztogram készítése

A mintákat érték szerint csoportosítva hisztogrammot készíthetünk. (Ezt például statisztikában a sűrűségfüggvény becslésére szokták alkalmazni). Készítsünk a veletlenVektor-ból hisztogrammot.

histogram(veletlenVektor)

A mod(n,k) függvényről

A mod(n,k) függvény "n" maradékát adja meg ha elosztjuk "k"-val. Például mod(15,7) értéke 1 lesz mert 15 ben a 7 kétszer van meg és a maradék 1.

Első Házi feladat

A mod() függvény segítségével írjunk egy idenOktober programot, aminek a bemenete egy "n" szám 1 és 31 között, kimenete pedig megmondja hogy 2019 Október "n"-edike milyen napra esik. (Vegyük észre, hogy pl: Október 2, 9, 16 amik szerdák mind 2-t adnak maradékul, ha 7-el elosztom őket.)

function output = idenOktober(n)
if mod(n,7)==1
    output="hétfő";
elseif mod(n,7)==2
    output="kedd";
elseif mod(n,7)==3
    output="szerda";
elseif mod(n,7)==4
    output="csütörtök";
elseif mod(n,7)==5
    output="péntek";
elseif mod(n,7)==6
    output="szombat";
elseif mod(n,7)==0
    output="vasárnap";
end
end

Második Házi feladat

Tegyük fel hogy érmedobás sorozatot szimulálok randi(2)-fügvénnyel. Ha 1-et kapok írásnak tekintem ha 2-t akkor fejnek. Írjunk egy amigFejlesz függvényt ami szimulál egy érmedobás sorozatot, addig amíg fejet nem kapunk. A függvény visszatérő értéke legyen az, hogy hányadik dobás lett fej.

function output = amigFejlesz
output=1;
while randi(2)==1
    output=output+1;
end
end