Ocena użytkownikóww: ***** / 14
Nadesłany przez Andrzej Borucki, 08 grudnia 2011 16:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Losowanie/Program.cs:
// Andrzej Borucki
// z klasy LotteryDrawing z coreJava.zip
// www.algorytm.org
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Losowanie
{
class Program
{
static void Losowanie(int n,int k)
{
Random rand = new Random();
// wypełnianie tablicy liczbami 1,2...n
int[] numbers = new int[n];
for (int i = 0; i < n; i++)
numbers[i] = i + 1;
// losowanie k liczb
for (int i = 0; i < k; i++)
{
// tworzenie losowego indeksu pomiędzy 0 i n - 1
int r = rand.Next(n);
// wybieramy element z losowego miejsca
Console.WriteLine(numbers[r]);
// przeniesienia ostatniego elementu do miejsca z którego wzięliśmy
numbers[r] = numbers[n - 1];
n--;
}
}
static void Main(string[] args)
{
Losowanie(10, 10);
}
}
}
Oczywiście, co kto woli. :)