Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izračunavanje broja pi bacanjem šibica

[es] :: Matematika :: Izračunavanje broja pi bacanjem šibica

[ Pregleda: 6278 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.rcub.bg.ac.yu.



+2 Profil

icon Izračunavanje broja pi bacanjem šibica22.01.2006. u 21:03 - pre 222 meseci
Kako da izračunam verovatnoću da drvce duzine L slučajno bačeno na resetku razmaka d (d>=L) preseče jednu od linija rešetke? Treba da se dobije 2/Pi*L/d. Ako neko zna neka detaljno objasni postupak.

poz.
 
Odgovor na temu

Farenhajt
Goran Kapetanović
Beograd

Član broj: 78132
Poruke: 449
*.tehnicom.net.



+6 Profil

icon Re: Izračunavanje broja pi bacanjem šibica22.01.2006. u 23:19 - pre 222 meseci
Sve o tome možeš naći ovde
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.rcub.bg.ac.yu.



+2 Profil

icon Re: Izračunavanje broja pi bacanjem šibica23.01.2006. u 13:42 - pre 221 meseci
Da li neko može da objasni kako ovo dobija:
P(x)=


poz.

[Ovu poruku je menjao kajla dana 23.01.2006. u 14:43 GMT+1]
 
Odgovor na temu

Farenhajt
Goran Kapetanović
Beograd

Član broj: 78132
Poruke: 449
*.tehnicom.net.



+6 Profil

icon Re: Izračunavanje broja pi bacanjem šibica23.01.2006. u 13:57 - pre 221 meseci
Čini mi se da je ovo posredi: Ako ti drvce padne u rasponu uglova od do (mereno spram vodoravne ose), onda će ono preseći liniju ako mu se levi kraj nađe na odstojanju ne većem od od najbliže uspravne linije nadesno. Prema principu geometrijskih verovatnoća, verovatnoća prvog događaja jeste , a drugog .

[Ovu poruku je menjao Farenhajt dana 23.01.2006. u 15:09 GMT+1]
 
Odgovor na temu

UrosMG
Uros Delic
student
Beograd

Član broj: 63439
Poruke: 49
*.90.eunet.yu.



Profil

icon Re: Izračunavanje broja pi bacanjem šibica28.01.2006. u 20:00 - pre 221 meseci
A evo ti i jedan sasvim drugi nacin: Monte Karlo simulacija u C++(a verovatno radi i u C-u). Jedina mana je sto ne mozes da dobijes precizniji rezultat za verovatnocu nego onaj koji dobijes kada u formulu 2/Pi*L/d ubacis pi koje je izracunato preko math funkcija u C++.

Kod je sledeci:
Code:

# include <iostream.h>
# include <fstream.h>
# include <math.h>

#define IM1 2147483563
#define IM2 2147483399
#define AM (1.0/IM1)
#define IMM1 (IM1-1)
#define IA1 40014
#define IA2 40692
#define IQ1 53668
#define IQ2 52774
#define IR1 12211
#define IR2 3791
#define NTAB 32
#define NDIV (1+IMM1/NTAB)
#define EPS 1.2e-7
#define RNMX (1.0-EPS)

float ran2(long *idum)
{
    int j;
    long k;
    static long idum2=123456789;
    static long iy=0;
    static long iv[NTAB];
    float temp;

    if (*idum <= 0) {
        if (-(*idum) < 1) *idum=1;
        else *idum = -(*idum);
        idum2=(*idum);
        for (j=NTAB+7;j>=0;j--) {
            k=(*idum)/IQ1;
            *idum=IA1*(*idum-k*IQ1)-k*IR1;
            if (*idum < 0) *idum += IM1;
            if (j < NTAB) iv[j] = *idum;
        }
        iy=iv[0];
    }
    k=(*idum)/IQ1;
    *idum=IA1*(*idum-k*IQ1)-k*IR1;
    if (*idum < 0) *idum += IM1;
    k=idum2/IQ2;
    idum2=IA2*(idum2-k*IQ2)-k*IR2;
    if (idum2 < 0) idum2 += IM2;
    j=iy/NDIV;
    iy=iv[j]-idum2;
    iv[j] = *idum;
    if (iy < 1) iy += IMM1;
    if ((temp=AM*iy) > RNMX) return RNMX;
    else return temp;
}
#undef IM1
#undef IM2
#undef AM
#undef IMM1
#undef IA1
#undef IA2
#undef IQ1
#undef IQ2
#undef IR1
#undef IR2
#undef NTAB
#undef NDIV
#undef EPS
#undef RNMX


int main()
{
    int sum=0;
    double z,phi,pi,kos;
    long seed=123456789,see=1278;
    pi=4*atan(1.);
    ofstream fout("Izlaz.txt");
    int j;
    for(j=10000;j<=10000000;j+=10000)
    {
        sum=0;
        for (int i=1;i<=j;i++)
        {
            z=ran2(&seed);
            phi=pi*ran2(&see);
            kos=(cos(phi));
            if (kos<0) kos=(-1.)*kos;
            if (kos>z) sum++;
        }
        fout<<(sum*1.)/(j*1.)<<" "<<j<<endl;
    }
    return 0;
}


Prvi deo ti je random funkcija, ona ti je potrebna da bi ti random bacao polozaje na koje ce sibica pasti. E sad, ne secam se sta tacno izbacuje ovaj program, trebao bi valjda procenat onih sibica koji su pali na resetku. Program je napisan tako da bacas 10000, pa onda 20000, pa onda 30000, pa... sve do 10000000. Ne znam koliko dugo radi, mozes da smanjis maksimalnu vrednost j sa 10000000 na 100000. Da menjas korak mozes. Itd... I trebace ti kreiran fajl "Izlaz.txt".

Ako ti ne radi, reci pa cu otkriti zasto ne radi...
There exists only 10 kind of people in the world; those who understand binary numbers and those who don't understand binary numbers.
 
Odgovor na temu

[es] :: Matematika :: Izračunavanje broja pi bacanjem šibica

[ Pregleda: 6278 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.