Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

Вроде лёгкий вопрос, но сложный.   Найти похожие ветки 

 
programmerts   (2002-08-17 18:43) [0]

У меня вопрос. Каким образом можно получить числа через random в диапазоне 100000000000 до 999999999999
Пробовал, но не получается.


 
Korvin   (2002-08-17 19:20) [1]

Ну напиши свой генератор. Например используя idle время виндов, ну и, сам рандом (для прикола),и например текущее время как int. Уже много уникальной инфы для получения "случайных" чисел.


 
Геннадий   (2002-08-17 22:19) [2]

Есдли проблема с границами, то:
Random выдаёт случайное число между (0) и (указанным параметором - 1). Если ты желаешь сместить нижнюю границу (0) на N единиц, то просто плюсуй N:

Random(100)+5000 ==> [5000..5099]

Random(990)+10 ==> [10..999]

Параметр задавай по формуле (МаксЗнач - МинГраница + 1), то есть на твоём примере (999 999 999 999 - 100 000 000 000 + 1). Получаем Random(900 000 000 000)+100 000 000 000.

Если с тем, что твоё число не влазеет в тип Integer, то:
(Random(1 000 000 000) * (Random(1000)+1) + Random(1000) - МинГраница) + МинГраница

Первый рэндои даст [0..999 999 999], далее умножение изменит этот интервал на [0..999 999 999/999 999 999 000], делее суммирование - [0..999 999 999/999 999 999 000/999 999 999 999]. Теперь окнинем промежуточные максимумы и получим искомый диапозон - [0..999 999 999 999]. Путанное объяснение, но что придумал... Не проверял. Прошу строго не критиковать...


 
Anatoly Podgoretsky ©   (2002-08-17 22:44) [3]

Trunc(random * 900000000000 + 10000000000)


 
Alexey Kuzovlev   (2002-08-18 12:32) [4]

Сделай 3 randomа: 1000..9999, 0..9999, 0..9999, а потом склей их


 
frum   (2002-08-19 09:49) [5]

Не мароч себе голову, делай как Гена.
Пишешь:
random(9999999)+100000;

получается, что 9999999 максимальный елемент, а 10000000 - минимальный. ИНДЖОЙ.


 
Anatoly Podgoretsky ©   (2002-08-19 10:19) [6]

frum (19.08.02 09:49)
Вот именно не морочь людям голову, а попробуй сначала, только именно в тех пределах как запрошено, или в справочной системе посмотри.


 
MAYOR ©   (2002-08-19 10:59) [7]

Не мароч себе голову, делай как Гена.
Пишешь:
random(9999999)+100000;


тогда ответ будет в диапазоне 10099999
уж если хочеш подобным образом тода
random(8999999)+1000000


 
nikolo ©   (2002-08-19 14:09) [8]

{Пример получения 14-значного числа Random, но можно любой длины}

var
S: String;
begin
Randomize;
S := FloatToStr(Random);
Delete(S, 1, 2);
S := DelBChars(S, "0"); //удаление первых нулей
if Length(StPin) < 14 then
while Length(S) < 14 do
S := S+IntToStr(Random(9));
S := Copy(S, 1, 14);
end;


 
Moro   (2002-08-20 16:04) [9]

Дапустим у тебя предел от 1 000 000 000 до 9999 999 999 тогда:
var I : Integer;
Begin
I := random( 8999999999);
I := I + 1000000000;
End;
вот и всё.


 
programmerts   (2002-08-20 17:37) [10]

Довольно таки много способов. Будем выбирать.
Спасибо всем!


 
programmerts   (2002-08-20 18:31) [11]

Вот ещё проблема. Иногда выдаёт 11 цифр, вместо 12.
Я сделал
var
m:real;
begin
m:=random(999999999999)+100000000000;


 
RV ©   (2002-08-20 18:37) [12]

programmerts (20.08.02 18:31

не может быть,
как узнаешь дальше?



Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-92512
Стивенс
2002-10-18 14:57
2002.10.28
Установка


14-92667
Jumbot
2002-10-05 20:08
2002.10.28
СРОЧНО!!! HELP ME!!! SOS!!!


3-92391
Эрик
2002-10-08 11:15
2002.10.28
ShellListView?


8-92625
.: Joiro :.
2002-06-30 18:11
2002.10.28
Компоненты RGB из констант красок.


1-92553
Kaban
2002-10-16 14:28
2002.10.28
RPN