Random fuggveny c programozasban?
if (rand()%2) {
_ ++x;
} else {
_ --x;
}
Koszonom a valaszt de lenne meg egy kerdesem: ez esetben mi a hiba? miert nem mukodik?? #include <stdio.h>
#include <stdlib.h>
int main()
{
int x=0, X, n=0, N, k, K, i;
float p;
printf("Kerem az elerni kivant erteket: \n");
scanf("%d", &X);
printf("Kerem a lepesek szamat: \n");
scanf("%d", &N);
printf("Kerem K erteket: \n");
scanf("K= %d", &K);
do{
for(i=0; i=K; i++){
if (rand()%2) {
++x;
} else {
--x;
}
if(x=X)
k=k+1;
}
}
while(n<=N)
p=k/K;
printf("A valoszinuseg: %f \n", p);
return 0;
}
for(i=0; i=K; i++){
Ehelyett:
for(i=0;i<K;i++) {
Illetve egyenloseget ellenorzol, akkor ==. A szimpla = az ertekadas.
A szintaktikaikon kivul elvi hiba is van a programban.
-Az n-et nem noveled sehol. Szerintem elegansabb lenne azt is for ciklussal megoldani while helyett.
-Amikor x eleri X-et, akkor akarjuk tovabb folytatni azt a kiserletet? En ugornek a kovetkezo kiserletre egy break;-kel.
igy keri a feladat...itt a szoveg: Véletlen bolyongás során egy x véletlen változónak 0 kezdeti értéket adunk, és minden lépés során egyenlő valószínűséggel +1-et vagy -1-et adunk hozzá. Határozzuk meg numerikusan annak a valószínűségét, hogy N lépés után a véletlen változó X értéket vesz fel.
Ehhez N lépés után megnézzük, hogy x értéke egyenlő-e X-szel. Ha igen, a kedvező esetek számát (k) 1-gyel növeljük. Ezt megismételjük K-szor. A keresett valószínűség k/K lesz.
X, N és K értékét a felhasználó adja meg.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!