Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-92688
Hooch
2002-10-07 14:16
2002.10.28
Лекции в вузе


14-92657
Юрий Зотов
2002-09-28 23:01
2002.10.28
Странное поведение дебаггера D5 под XP


1-92465
Novichek
2002-10-18 07:25
2002.10.28
можно ли програмно пролистать StringGrid?


1-92542
SergeyDon
2002-10-16 10:33
2002.10.28
Создание компонента


1-92490
Karlson
2002-10-18 13:43
2002.10.28
Использование проэктов на разных мониторах





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский