eMatematikas Forumas VBE užduotys Testai

Forumas

30 rutulių ir dvi dėžės A ir B

Tikimybių teorija Peržiūrų sk. [1415]

EgEg, sunku man buvo įsigilinti į tuos išrašytus variantus. Nesuprantu kaip gaunama 5 ir 7 iš viso to sąrašo.
Šiaip tikrinant programa geriausiai būtų galimus pasirinkimus atrinkinėti atsitiktiniu būdu. Kiek žinau, yra funkcija, kuri duoda atsitiktinai parenkamas reikšmes, o tada kartojant tą atranką daug kartų mums reikiamo įvykio tikimybė turėtų artėti prie realios reikšmės.
Kur matyčiau problemą pirmame sprendime, jog mes išrašydami variantus kelių tos pačios spalvos rutulių pasirinkimus laikome kaip vieną pasirinkimą, kas skaičiuojant tikimybę nėra teisinga.

Pavyzdys: Yra 3 geltoni ir 2 žali rutuliai. Kokia tikimybė, jog traukiant du rutulius abiem atvejais ištrauksime geltoną?
Jei variantus išrašysiu tik atsižvelgdamas į rutulius spalvą (į tvarką atsižvelgti nėra būtina) visus variantus gausiu:

GG
ŽŽ
kurių viso 3 variantus, kai palankių mūsų įvykiui bus 1. Taigi tikimybė yra 1/3.
Tačiau jei rutulius dar sunumeruosiu ir laikysiu, jog turiu: G1, G2, G3, Ž1, Ž2 Tada visus variantus gausiu(į tvarką taip pat neatsižvelgsiu):
G1Ž1
G2Ž1
G3Ž1
G1Ž2
G2Ž2
G3Ž2
G1G2
G1G3
G2G3
Ž1Ž2
kurių yra 10, o palankių 3, taigi tikimybė 3/10.
Gauname dvi skirtingas tikimybes. Kuri jūsų nuomonė yra teisinga?

Kad dar būtų aiškiau. Metame monetą du kartus.
Galėčiau išskirti tik tokius įvykius; HH,SS,HS. Tada gaučiau, jog tikimybė, kad abu kartus iškris herbas lygi [tex]\dfrac{1}{3}[/tex], bet puikiai žinome, jog tai netiesa, kadangi iš tiesų ji lygi [tex]\dfrac{1}{4}[/tex]. Jog gauti teisingą atsakymą, turėtume įvykius apsirašyti šitaip: H1H2,S1S2,H1S2, S1H2.

Moneta metant bus HH HS SH SS

O su rutuliais kaip būtų?

Su atsitiktiniu arteja link 4/5, tai turbut tiek ir bus.
#include <bits/stdc++.h>

using namespace std;

int main(){

    int k[6] = {0,0,1,1,2,2}; // 0 zalia, 1 melyna, 2 geltona
    int visi = 0;
    int geri = 0;
    srand (time(NULL));
    ofstream cout("rez.txt");
    for (int i = 0; i<1000000; i++){
        int r = rand() % 64;
        int A[3] = {1,1,1};
        int B[3] = {1,1,1};
        for (int j = 0; j<6; j++){
            if(r & (1<<j)){
                A[k[j]]++;
            }
            else{
                B[k[j]]++;
            }
        }
        if(A[0]*A[1]*A[2]==B[0]*B[1]*B[2]){
            visi++;
            if(B[2]>=2){
                geri++;
            }
        }
    }
    cout << "Is viso: " << visi << endl;
    cout << "Tinka: " << geri;

    return 0;
}

Na tai va. Nes aš labai į kodą neįsigilinau, bet supratau, jog tu tiesiog programiškai išrašinėji variantus, kas reiškia, jog atsakymas priklauso nuo to, ką programai tu užduodi suskaičiuoti.

Jeigu ir originaliame kode netikrinciau ar jau buvo toks tai duotu 4/5, o jeigu tikrinu tai duoda 5/7.

Originalus kodas tiesiog patikrina visas imanomas kombinacijas.

Štai dėl ko, aš ilgai nemėgau tikimybių uždavinių ir dar dabar net ir turėdamas skaičiavimo patirties, dažnai gavęs atsakymą bandau dar persitikrinti, nes yra nemaža tikimybė, jog galiu būti ką netaip supratęs ir paskaičiavęs. Čia ne geometrija, ar aritmetika, kur viskas aišku ir nėra daug galimybių "nukeliauti" kur nors ne ten, nebent pridarysi aritmetinių klaidų.

Bet labai gerai, jog MykolasD sukūrė tokią temą su šiuo uždaviniu. Bus labai vertinga tema kitiems forumo dalyviams.

Dėkui Tomui ,Dėkui EgEg sėkmės jums ,o dviprasmybių negali būti tikimybėse ,čia mano klaida čia reikėjo  parašyti 1) Parodykite ,kad yra 7 galimybės 2) Apskaičiuokite tikimybę  ( variantų  daug....) Nežinau ,kaip padaryti ,kad mokiniai suprastų reškia tokių spręsti nereikia

pakeista prieš 2 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »