Chyba logiczne losowanie

0

Dlaczego poniższy kod zwraca powtarzanie się?

c i d sa zarejestowane jako zmienne globalne,

Randomize;
begin
if chb1.Checked=True Then begin
c:=d;
d:=random(flb.items.count);
if c=d then
d:=random(flb.Items.Count) // kod powtarza sie wielokrotnie toteż c na początku przyjmuje starą wartośc d

i powienien następną liczbę wylosować inną niż poprzednio, a nastepna może sie powtórzyć już. Jednak Są wypadki gdzie są dwie liczby pod rząd.

W Winampowym losowaniu jest jakoś tak że dopiero za jakiś czas się powtórzą mp3 a tu nie tu zawsze się musza jakoś powtórzyć.

0
  1. Możesz odkładać gdzieś te wylosowane liczby i sprawdzać czy sie nie powtarzają
  2. losować dwie liczby i je dodawać, odejmować, itp.
  3. sprawdzać czy losowana liczba nie równa się poprzednio wylosowanej
  4. losować po kolei z różnych przedziałów ( na początku z pierwszej 10 potem z drugiej, itd.)
0
  1. Możesz odkładać gdzieś te wylosowane liczby i sprawdzać czy sie nie powtarzają

Tylko gdzie je składować? TStringList? Ee wolałbym jeszcze widziec te wylosowane liczby a potem owy komponent dać na visible=false; i qniec

  1. losować dwie liczby i je dodawać, odejmować, itp.

i potemdo tego kupa warunków związanych jeśłi jest wyższa niż x i niższa niż x.

  1. sprawdzać czy losowana liczba nie równa się poprzednio wylosowanej

no właśnie to realizuje mój kod, (bo tak to wygląda)

  1. losować po kolei z różnych przedziałów ( na początku z pierwszej 10 potem z drugiej, itd.)
    Nie ten przypadek jest bez sensu.
0
  1. Możesz odkładać gdzieś te wylosowane liczby i sprawdzać czy sie nie powtarzają

Tylko gdzi eje skłądować? TStringList? Ee wolałbym jeszcze widziec ter wylosowane liczby a potem owy komponent dć na visible=false; i qniec

po co ci stringlist - zwykla tabela - array of integer nie wystarczy??

0

ale do array musze podac wszystkie liczby których jest nieokreślona ilość.

0

Uzyj tablicy dynamicznej tak jak n_a_v_ napisał.

Przy pomocy SetLength zmieniasz jej rozmiar, indeksowanie elementów zaczyna sie od zera.

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