Məsləhətlər

C # -də zar necə yuvarlayıram?

C # -də zar necə yuvarlayıram?

Bu proqram bir nümunə istifadə edir Təsadüfi () obyektdə sinif rnd. Ardıcıl 3 ... 18 aralığında olan balların toplaması üçün kifayət qədər yer ayırır Rulonlarda. Üzv funksiyaları OneDice () 1 ilə 6 arasındakı bir dəyəri qaytarır - rnd.Növ (n) 0 ... n-1 aralığında dəyərləri qaytarır ÜçDice () zənglər OneDice () üç dəfə. Üçün konstruktor RollDice () təmizləyir Rulonlarda serial sonra çağırır ÜçDice () lakin dəfələrlə (bu vəziyyətdə 10 milyon) və uyğun artırır Rulonlarda element.

Son hissə, ehtimallara uyğun olaraq atışların əmələ gəldiyini görmək üçün yaradılan cəmi çap etməkdir. 6 tərəfli zar orta hesabla 3,5 nisbətinə malikdir, buna görə üç zar orta hesabla 10.5 olmalıdır. 10 ilə 11 arasındakı cəmi təxminən eynidir və vaxtın təxminən 12.5% ​​-i baş verir.

Budur tipik bir qaçışın nəticəsi. Bir saniyədən çox çəkmir. Konsol tətbiqi olduğundan, a daxil etdim

Konsol.ReadKey ();

Bağlamadan əvvəl bir düyməni vurduğunu gözləmək.

Proqram Çıxışı

3 46665
4 138772
5 277440
6 463142
7 693788
8 971653
9 1157160
10 1249360
11 1249908
12 1159074
13 972273
14 695286
15 463270
16 277137
17 138633
18 46439

Proqram siyahısı

Sistemdən istifadə;
System.Collections.Generic istifadə;
System.Text istifadə edərək;
ad boşluğu ekskransı
{
ictimai sinif RollDice
    {
xüsusi Random rnd = yeni Random ();
xüsusi int Rolls = yeni int19; // 3 ilə 18 arasında tutur
public int OneDice () {
qayıt rnd.Növbəti (6) +1;
        }
public int ThreeDice ()
        {
return OneDice () + OneDice () + OneDice ();
        }
ictimai RollDice (int sayı)
        {
int i = 0;
üçün (i = 3; i