Randomize

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
rahim_azeri
Üye
Mesajlar: 113
Kayıt: 20 Eyl 2010 07:42

Randomize

Mesaj gönderen rahim_azeri »

Merhaba arkadaslar.Mesela ben 1-den 5-e kadar olan rakamlari Random()-la secmek istiyorum, amma isteyirem ki 1 rakamini secilme shansi 10%,2 rakaminin secilme shansi 15%,3-20%,4-25%,5-30% olsun.Onceden tesekkurler.
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Randomize

Mesaj gönderen emin_as »

Direk öyle yapamazsın. Ama şu şekilde bir yöntem geliştirebilirsin.

1-10 : 1 %10
11-25: 2 %15
26-45: 3 %20
46-70: 4 %25
71-100: 5 %30

Yani 1 ile 100 arası rakam seçtirirsin, 1-10 arası ise 1, 11-25 arası ise 2, 26-45 arası 3 vs varsayarsın.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Randomize

Mesaj gönderen SimaWB »

@emin_as 'ın dediğini koda dökersek:

Kod: Tümünü seç

function GetRandom: integer;
begin
  Randomize;
  case Random(100)+1 of
    1..10   : Result := 1;
    11..25  : Result := 2;
    26..45  : Result := 3;
    46..70  : Result := 4;
    71..100 : Result := 5;
  end;
end;
Yada farklı bir yol:

Kod: Tümünü seç

function GetRandom: integer;
const
  Liste : array[1..20] of integer = (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,5);
  //Liste : string[20] = '11222333344444555555';
begin
  Randomize;
  Result := Liste[Random(20)+1];
  //Result := StrToInt(Liste[Random(20)+1]);
end;
There's no place like 127.0.0.1
rahim_azeri
Üye
Mesajlar: 113
Kayıt: 20 Eyl 2010 07:42

Re: Randomize

Mesaj gönderen rahim_azeri »

Allah sizlerden razi olsun kardesler...!
Cevapla