Главная страница
    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.58 MB
Время: 0.036 c
3-92360
{bas}
2002-10-07 16:08
2002.10.28
чистый SQL


14-92666
Desdechado
2002-10-07 13:18
2002.10.28
Ассоциации


3-92398
Maik
2002-10-08 14:04
2002.10.28
Работа c Cursors в IB


4-92824
Voyager TM
2002-09-13 18:28
2002.10.28
Не подскажет кто, каким образом в область Caption добавить свою


1-92552
wer
2002-10-16 13:32
2002.10.28
Цвет caption





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский