Cum să setați intervalul pentru aleatoriu

Cum să setați intervalul de numere pentru funcția Random? Ie Nu am nevoie de la 0 la N, dar de exemplu de la 1 la N

Este foarte simplu: deplasați intervalul într-o parte mai mică (în acest caz cu unul) și adăugați compensarea rezultatului.







Și puteți da un exemplu?

Puteți da un alt exemplu de adăugare a două numere întregi? Și apoi, într-adevăr. deoarece nu este scris în mod clar. adăugați două numere. Diavolul știe ce este ascuns dedesubt.

MDA. Bine, voi încerca diferit:

Este foarte simplu: reduceți valoarea intervalului (în acest caz cu unul) și măriți rezultatul. Aceasta se va numi offsetul intervalului.

Încep doar să programez, cel puțin învăț. Și cuvintele "și la rezultat, această prejudecată este adăugată.
"Nu prea înțeleg, nu este greu să conduci exemplul?

Este posibil acest lucru
a: = Random (N) +1

+1 - oferă valoarea minimă.
Random (N) - la valoarea minimă adaugă o forță aleatoare în intervalul [0, N-1].
Ca rezultat, avem un număr în intervalul [1, N].

Nu, exemplul este chiar mai ușor și mai rapid. Dar punctul? Ca rezultat al explicației, chiar dacă este greșită, există șansa să vedeți cursul raționamentului și să învățați să gândiți singur. În cazul codului, există o șansă că vă va deranja. Și în acest caz, nivelul programării nu contează deloc - matematica pură.

Bine, băieți. nu te excita! Se pare că încă nu sunt destul de matur să vă înțeleg atât de simplu în cuvinte. Chiar nu înțeleg fără exemplu!
Dacă sunteți enervant. nu este nevoie să răspundeți deloc!
Nu sunt în reproș, dar și eu pot fi înțeleși!

răspundeți ultima dată. depășite!

și mai mult. Mutarea unei linii în Memo este un simbol - # 13 pe care trebuie să-l adăugați sau nu?


> Alex_Rom # xA0; (08.07.04 02:38) [9]

dacă
a: = Random (N) +1

+1 - oferă valoarea minimă. este adevărat






Random (N) - la valoarea minimă adaugă o forță aleatoare în intervalul [0, N-1]. în mod incorect
Ca rezultat, avem un număr în intervalul [1, N]. în mod incorect

Randamentul (N) - la valoarea minimă adaugă o forță aleatorie în intervalul [0, N].
Ca rezultat, avem un număr în intervalul [1, N + 1].

Randamentul (N) - la valoarea minimă adaugă o forță aleatorie în intervalul [0, N].
Ca rezultat, avem un număr în intervalul [1, N + 1]. - Bineînțeles că nu.
Luați o scriere în programul Pascal:
pentru i: = 1 până la 50 scrie writeln (aleatoriu (1)) Și nu veți obține o singură unitate!
Rezultatul funcției aleatoare (n) este un număr în [0, n-1] # xA0;!

După cum am înțeles:
n: = n-1;
a: = Random (n) +1;

> Alex_Rom # xA0;

Da, imbatranesc. Încă o dată îmi cer scuze.

Nu, nu este.
Dacă doriți să obțineți rezultatul în [1, N], atunci scrieți doar după cum am scris mai întâi:
a: = Random (n) +1

> Da, imbatranesc. Încă o dată îmi cer scuze.

Totul e vina lui Borland :) Marginea din stânga a fost pornită, dar cea potrivită nu a fost :) La naiba, din cauza unor astfel de trivialități, atunci erori ai prinde o lună.

Sunt de acord. La mine s-au întâmplat și așa. )

Iată ce întrebare am întrebat! )))


> Zvr @ b # xA0; (08.07.04 03:01) [23]

Da, traficul este bine crescut :)
Ei bine, cred că acum problema este epuizată și tema este închisă.


> Rezultatul funcției aleatoare (n) este un număr în interiorul
> [0, n-1] # xA0;!

Nu este corect.
Random returnează un număr aleatoriu în intervalul 0 <= X

KapiBara, ceea ce nu este adevărat? # xA0; În citatul pe care l-ați citat din ajutor, este scris # xA0; "X

Ei bine, dacă este vorba de numere întregi, atunci totul este în ordine.

Deși definiția din ajutor este valabilă pentru orice număr.

Pentru întregi este mai bine să se apropie de o astfel de poziție - N este numărul de numere din interval. Intervalul începe de la zero.
Formula reală este Random (N) + Offset
Trecerea de la 9 devine naturală în înregistrare.
Este ca și cum un conducător, 10 centimetri este întotdeauna 10 centimetri, indiferent de punctul de plecare al acestui conducător.


> Cum pot seta intervalul de numere pentru funcția Random? Ie Am nevoie
> nu de la 0 la N, ci de exemplu de la 1 la N

De la 1 la N - x: = aleator (n) + 1;
De la 2 la N - x: = aleator (n - 1) + 2; IMHO


> De la 2 la N - x: = aleatoare (n - 1) + 2; IMHO

De la 2 la N - x: = aleator (N - 2) + 2;

//Random(N1..N2)=Random(N2-N1+1)+N1
Teoretic, N2 poate cădea cu o probabilitate puțin mai mică, deoarece pentru numere reale discrete teorema completitudinea continuumului nu se umple - deși acest lucru trebuie estimat mai precis.

Memorie: 0,78 MB
Durată: 0,076 secunde







Trimiteți-le prietenilor: