C# random i zapełnianie tablicy

Witam, stworzyłem skromny program, który przy pomocy polecenia Random zapełnia tablice o rozmiarze 100, następnie podaje ile jest liczb parzystych ile nieparzystych. Problem polega na tym iż zawsze jest 100 liczb parzystych.

  1. Co zrobić by random generował różne liczby nie tylko parzyste.

  2. Co zrobić żeby random generował np liczby 12,23 lub -34,456.

  3. W jaki sposób mogę zmieniać zakres random np -1234,56 do 345,78.

Z góry dzięki za odpowiedzi :wink:

using System;


public

class main

{

    public static void Main()

    {

        int[] tab = new int[100];

        int parzyste = 0, nieparzyste = 0;

        Random rand = new Random(10000);

        for (int i = 0; i < 100; i++)

        {

            tab[1] = rand.Next();

        }

        foreach (int i in tab)

        {

            if (i % 2 == 0)

            {

                parzyste++;

            }

            else

            {

                nieparzyste++;

            }

        }

        Console.WriteLine("Tablica zawiera {0} liczb parzystych i {1} liczb nieparzystych", parzyste, nieparzyste);

        Console.ReadLine();

    }

}
  1. Miałeś pecha i ustawiłeś takie ziarno(parametr konstruktora System.Random), że pierwsze 100 losowanych liczb jest parzyste. Ustaw inne albo nie ustawiaj w ogóle(co jest raczej wskazane, by mieć liczby pseudolosowe za każdym razem, a nie zawsze te same).

2, 3) Random.Next(int, int) przyjmuje wartość minimalną i maksymalną(Random.NextDouble zwraca tylko liczby zakres 0…1), więc możesz zrobić coś takiego:

double liczba = rand.Next(-123456, 34578) / 100.0[/code]

EDIT:

@down: good point, punkt 1 mojej wiadomości jest ciut zły, w tym wypadku(powinno być: że pierwsza losowana liczba jest parzysta).

Wkradł się u Ciebie mały błąd :

tab[1] = rand.Next();

powinno być tab :slight_smile:

  1. Ha miałem błąd w zapisie

    tab[i] = rand.Next()

zamiast i było 1.

2)Natomiast gdy próbuje podawać zakres dla random wywala mi błąd:

Spójrz na mój post, przeczytaj go jeszcze raz, ze zrozumieniem, klikając w linki i je CZYTAJĄC. Zakresu nie przekazujesz do konstruktora, tylko do metody Next.

Faktycznie pomyliłem się :oops: , teraz rozumiem dziękuję =D>