25.05.2006, 12:09
общий
это ответ
Здравствуйте, Kazakh!
Можно, например, так, как написано в приложении. Здесь c-ваше число 20, r-случайное число, p- период.
Смысл работы таков:
Выбираем случайное число.
Если оно входит в интервал (c-p;c+p), то выводим его, иначе увеличиваем интервал.
Если интервал включает в себя промежуток [1;100], то выводим получившееся число.
Изменение периода p подберите как вам будет удобнее. Чем он меньше, тем больше вероятность получения чисел наиболее близких к c и меньше вероятность получить числа более отдаленные от c.
Удачи!
Приложение:
const c=20; // Ваше число 20var i,r,p:integer;begin randomize; memo1.Lines.Clear; for i:=1 to 30 do begin p:=0; repeat p:=p+5; r:=random(100)+1; until ((c+p>100) and (c-p<1)) or ((r<c+p) and (r>c-p)); memo1.Lines.Append(inttostr(r)); end;end;