Menu
Archwium
Kategorie
Miniblog
Szukaj

Zadanko z prawdopodobieństwa

15 Mar 2006, 15:25:24, Infa, Matma | Trackback

Jak powszechnie wiadomo, każde zadanie z matematyki można rozwiązać na "n" sposobów. Jako, że liczył się prawidłowy wynik, a nie forma jego rozwiązania, mając poniższe zadanie:
"Ze zbioru {1,2,...,100} losujemy liczbę n. Jakie jest prawdopodobieństwo, że n3 + n2 - 5n + 3 jest kwadratem liczby nieparzystej?"
napisałem, krótki program w Pascalu, który ułatwił mi rozwiązanie:

program abc;
var i,x:longint;

begin
 for i:=1 to 100 do
  begin
   x:=(i*i*i + i*i - 5*i + 3);
   if sqrt(x)=trunc(sqrt(x)) then
          writeln('Pierwiastek jest naturalny dla ',i);
  end;
end.

I po co się męczyć? ;))

Komentarze:

  1. J.

    15 Mar 2006, 19:52:31 | Permalink

    O MATKO!!!! Maniek!!!! Ty jestes chory na punkcie matmy :P ale to dobrze, chociaz masz pozyteczne "hobby" :)
    pzdr :)

  2. 15 Mar 2006, 20:32:02 | Permalink

    ano trzeba sie czyms zajac ;)))

  3. Tomek

    16 Mar 2006, 17:25:34 | Permalink

    nieźle ;)
    ale czemu nie rozwiąwać tak całego zadanka :)?
    będziesz zliczał z ekranu nieparzyste pierwiastki :)?
    Zresztą pełen tryb DOSa nie ma scrolla i wyswietli Ci jedynie ostatnie 25 linii (no dobrze możemy założyć, i myślę że słusznie że 25 ostatnich linii będzie 25 pierwszymi liniami) Ale to założenie jest ogólnie niepoprawne. Bez analizy wielomianu.
    Proponuje następujące rozwiązanie:

    program abc;
    var i,x,p:longint;

    begin
    p:=0;
    for i:=1 to 100 do
    begin
    x:=(i*i*i + i*i - 5*i + 3);
    if ((sqrt(x)=trunc(sqrt(x))) and (x mod 2 =1)) p:=p+1;
    end;
    writeln(p/100);
    end.

  4. 16 Mar 2006, 18:11:57 | Permalink

    akurat na tyle malo tych pierwiastkow jest, ze moge je policzyc, gdyby bylo ich wiecej, oczywiscie wybralbym inne rozwiazanie ;))
    a tak BTW z kim mam przyjemnosc? ;]

  5. Anka

    16 Mar 2006, 18:42:26 | Permalink

    Bo my z inżynierem Tomaszem tworzymy takie poznańskie naukowe wsparcie stronek internetowych ;)

  6. 16 Mar 2006, 18:45:02 | Permalink

    że jak? ;)))

  7. Wika

    16 Mar 2006, 18:52:52 | Permalink

    Ciekawe czy potęgi informatyczne otrzymały taki sam wynik jak skromny lamerek na piechotę ;-) Pozdrawiam :-)

  8. 16 Mar 2006, 19:00:31 | Permalink

    tylko czy "skromny lamerek" zrobilby to na piechotke majac zbior {1,2,3...100000} ;)))

  9. Wika

    16 Mar 2006, 19:12:29 | Permalink

    Proszę nie dołować lamerów którzy awansowali na lamerki ;-)) A co z wynikiem ?

  10. 16 Mar 2006, 19:17:31 | Permalink

    a jaki Ci wyszedl? ;=]
    Tomek: zapomniales jeszcze o "then" i moze lepiej byloby dac writeln(p,'/100'); i co najwazniejsze powinno byc (x mod 2 =0) bo dla "1" zlicza parzyste ;))

  11. Tomek

    16 Mar 2006, 19:47:10 | Permalink

    nieprawda dla jeden zlicza nieparzyste:
    modulo jest działaniem matematycznym zwracającym resztę z dzielenia przez 2 czyli zwracającym ostatnim bit z reprezentacji binarnej danej liczby. Zauważmy, że liczba jest nieparzysta gdy ten bit jest ustawiony:
    1 = 1
    11 = 3
    101 = 5
    ...
    Z aksjomatyki prawdopodobienstwa mamy (aksjomat pierwszy) że P(A) należy do przedziału <0,1> gdzie A należy do sigma algebry zbiorów borelowskich podzbioru omega. Więc powinno być writeln(p/100). Prawdopodobieństwo zwykło się podawać więc w ułamkach dziesiętnych.

  12. Anka

    16 Mar 2006, 19:52:52 | Permalink

    no dobra dobra ale co z tym wnikiem ?
    Bo tu jakies politechniczne sciemniactwo odchodzi,
    a wynik ma tylko Lamerek ;)

  13. 16 Mar 2006, 19:58:56 | Permalink

    Tak tez uwazalem i uwazam jak Ty, ale w praktyce wyszlo co innego. Odpalilem Twoj program i wyszly mi 4 wyniki, natomiast z mojego 5. Zmienilem wiec nieco Twoj, aby zobaczyc gdzie lezy blad, i dla:

    program abc;
    var i,x,p:longint;

    begin
    p:=0;
    for i:=1 to 100 do
    begin
    x:=(i*i*i + i*i - 5*i + 3);
    if ((sqrt(x)=trunc(sqrt(x))) and (x mod 2 =1)) then writeln(i);
    end;
    end.

    Otrzymywalem:
    [maniek@serwer]$ ./abc
    6
    22
    46
    78

    Natomiast dla (x mod 2 =0) pokazuje:
    [maniek@serwer]$ ./abc
    1
    13
    33
    61
    97

    I sam sie zastanawiam dlaczego zwraca takie wartosci.
    Natomiast stosujac zapis writeln(p/100) dla Twojego programu, wynik otrzymujemy w postaci:
    [maniek@serwer]$ ./abc
    4.0000000000000000E-0002
    Dlatego tez zmienilem na writeln(p,'/100') ;)))

  14. 16 Mar 2006, 20:12:25 | Permalink

    a jeszcze jedno, czy moj jogger zostal gdzies "zareklamowany" bo jakos dziwnie dzisiaj sporo gosci go odziewdza, co oczywiscie mi nie przeszkadza ;))

  15. Anka

    16 Mar 2006, 20:26:50 | Permalink

    No wlasciwie to Lamerek zareklamowal ;)
    i sie jakos tak hurtem pojawilismy, ale to chyba milo ? ;)

  16. Tomek

    16 Mar 2006, 20:33:52 | Permalink

    oki to podpucha :P a tak naprawde pisalem bez kompilatora program, blad jest tam:
    x mod 2 :) bo nie "x" tylko "i" ma byc nieparzyste ;)
    i mod 2 = 1
    pozdrawiam

  17. 16 Mar 2006, 20:37:56 | Permalink

    Anka: bardzo milo, czujcie sie jak u siebie ;D
    Tomek: chcialoby sie teraz rzec "a no taaaa" ;P sam na to nie zwrocilem uwagi ;))

  18. J.

    17 Mar 2006, 11:04:43 | Permalink

    o jaaaaaa. :P co ja tutaj robie ;)

  19. Lasotka :)

    18 Mar 2006, 22:06:05 | Permalink

    yyyyyy :P No comment... :))

  20. J.

    18 Mar 2006, 22:57:56 | Permalink

    heheheheh :)

    pzdr :)

Dodaj komentarz:

HTML w komentarzach jest wyłączony, możesz jednak skorzystać z Textile Lite.

<< Powrót do reszty wpisów