Losowe wyznaczanie elementów tablicy dwuwymiarowej

0

Witam
Chciałem się zapytać jak napisać w c# żeby w tablicy dwuwymiarowej wyznaczało elementy losowo albo 0 albo 3?

1
tb[i]=3*rnd.Next(0,2);
0

a jak jeszcze bym mógł napisać żeby prawdopodobieństwo że będzie 3 to 20% a że 0 80%?

1
tb[i]=rnd.Next(0,5)<=0?0:3;
0

a czemu jak tak wpisuje jak napisałeś zawsze wychodzi 0

Console.WriteLine("Wprowadz liczbę kolumn: ");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("Wprowadz liczbe wierszy: ");
            int b = int.Parse(Console.ReadLine());
            int[,] sciana = new int[a,b];
            Random rnd = new Random();
            for (int i = 0; i < a; i++)
            {
                for (int j = 0; j < b; j++)
                {
                    sciana[i, j] = 5*rnd.Next(0,1);
                }
            }
            foreach (int element in sciana)
            {
                Console.WriteLine(element); // zawsze wypisuje 0
            } 
0

przepraszam ale nie rozumiem czy mógłbyś mi wytłumaczyć albo poprawić ten kod ?
wiem jedynie że nie wypisuje pierwszej wartość w rnd

0

Nie podałeś kodu (śmiecie na PW wywalam natychmiast).

0

podałem w poście wcześniej:

Console.WriteLine("Wprowadz liczbę kolumn: ");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("Wprowadz liczbe wierszy: ");
            int b = int.Parse(Console.ReadLine());
            int[,] sciana = new int[a,b];
            Random rnd = new Random();
            for (int i = 0; i < a; i++)
            {
                for (int j = 0; j < b; j++)
                {
                    sciana[i, j] = 5*rnd.Next(0,1);
                }
            }
            foreach (int element in sciana)
            {
                Console.WriteLine(element); // zawsze wypisuje 0
            }  

przepraszam za pytania ale jestem początkujący

0

Przeczytaj uważnie opis drugiego parametru metody Next link podałem

0

a dziękuje bardzo czyli tak będzie dobrze:

  static void Main(string[] args)
        {
            Console.WriteLine("Wprowadz liczbę kolumn: ");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("Wprowadz liczbe wierszy: ");
            int b = int.Parse(Console.ReadLine());
            int[,] sciana = new int[a,b];
            Random rnd = new Random();
            for (int i = 0; i < a; i++)
            {
                for (int j = 0; j < b; j++)
                {
                    sciana[i, j] = 5*rnd.Next(0,2)<= 0 ? 0 : 3;
                }
            }
            foreach (int element in sciana)
            {
                Console.WriteLine(element);
            }
            Console.ReadLine();
        }

a mógłbyś mi jeszcze wytłumaczyć to:

 <= 0 ? 0 : 3;// bo jak to że dla 0 jest 30 procent szansy ?
0
rafal222 napisał(a):

... a mógłbyś mi jeszcze wytłumaczyć to:

 <= 0 ? 0 : 3;// bo jak to że dla 0 jest 30 procent szansy ?

rnd.Next(0,5) - szansa na 0 = 20%

1 użytkowników online, w tym zalogowanych: 0, gości: 1