Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2013, 17:00   #11
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

проблема решена всем спасибо

Цитата:
var
J,r,u:integer;
o:string;
begin
Randomize; Randomize; Randomize; Randomize;

r:=802;// 0-801
u:=800;// 800 801

// Вероятность выподания 2 к 800 то есть оч маленькая

j:=Random(r);

if (j>=u) then
lbl1.Caption:=IntToStr(j)
else
lbl1.Caption:='-';


end;

jone вне форума Ответить с цитированием
Старый 04.04.2013, 17:05   #12
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

А вот теперь я не понял, а что надо в итоге?
netpolice вне форума Ответить с цитированием
Старый 04.04.2013, 17:07   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
таакс а уменьшить ? точно также
Уменьшил бы в 10 раз так
Код:
  n:=10;

  i:=Random(79*n+21);
  if i<79*n then i:=i div n else Dec(i,79*(n-1));
  Inc(i);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.04.2013, 17:35   #14
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Цитата:

procedure TForm1.FormCreate(Sender: TObject);
begin
z:=0;
z1:=0;
end;

procedure TForm1.tmr1Timer(Sender: TObject);
var
J,r,u:integer;
o:string;
begin
Randomize;

r:=815;//
u:=800;//

j:=Random(r);

if (j>=u) then
begin
inc(z);
lbl2.Caption:=IntToStr(z);
lbl1.Caption:=IntToStr(j);
end
else
begin
lbl1.Caption:='-';
inc(z1);
lbl3.Caption:=IntToStr(z1);
end;


lbl4.Caption:= FloatToStr((z*100)/z1);

end;
lbl1 число
lbl2 Сколько раз выпало
lbl2 Из всего
lbl4 Показывает процент выпадания


Помагите сделать из обратного тоест чтобы я задавал % выпадания с десятыми 6.666%

Последний раз редактировалось jone; 04.04.2013 в 17:38.
jone вне форума Ответить с цитированием
Старый 04.04.2013, 19:38   #15
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Код:
i := trunc(Scale*pow(random, gamma));
Scale - диапазон.
gamma - показатель, регулирующий распределение.
s-andriano вне форума Ответить с цитированием
Старый 04.04.2013, 20:01   #16
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Цитата:
i := trunc(Scale*pow(random, gamma));
Не знал пойду погуглю
netpolice вне форума Ответить с цитированием
Старый 04.04.2013, 20:23   #17
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,591
По умолчанию

Можно так:
Код:
function rnd100 (c: integer): integer;
begin
  repeat
    Result := Random (100) + 1;
    Dec (c);
  until (c < 0) or (Result >= 80);
end;
Чем выше c, тем больше вероятность выпадения 80..100. Например, rnd100 (2), вероятность около 50%.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Увеличить-уменьшить ячейку с рисунком Excel 2003 vfv Microsoft Office Excel 12 06.04.2016 11:35
Как увеличить CMaxExtPrecision? Или грохнуть WhiskasTM Общие вопросы Delphi 2 15.01.2013 06:43
Получение sig и rnd... FleXik Общие вопросы Delphi 2 14.01.2013 14:49
стрелки увеличить уменьшить число в ячейке AKolotushkin Microsoft Office Excel 3 11.06.2010 16:19