• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с Randomom

Русалка

Ученик
Регистрация
20 Апр 2012
Сообщения
2
Реакции
0
Баллы
0
Помогите с Randomom

Мне нужно StrinGrid заполнить с помощью Randoma, в диапазоне от 0 до 1. У меня это получается, только нужно чтобы числа были десятичные.как это сделать?
 
К примеру сделать вмест просто random(number)
random(number)/random(number)
 
IntToStr(random(1)-1)
можно так.
 
Извините, не увидел диапазон
n := random(number);
if (not(n = 0))
begin
n := 1/n;
end;
//вставляем в грид
 
Коллеги, да вы чо? И в Паскале, и в Делфи функция Random БЕЗ ПАРАМЕТРОВ как раз и возвращает десятичное число в диапазоне 0..1. Так что
a:=Random;
И все дела!
 
Спасибо всем, у меня получилось, только у меня вот теперь другая загвоздка, мне надо что с помощью Randoma он выдавал числа не больше чем от 0 и до 0.5 и все они были положительные
 
эмм еще раз можно повторить корректнее ?
нужно что бы числа выводились от [0;0,5] ?
если я правильно понял, то заполнение идет примерно так:

var
float : single;
int : Integer;
i : Integer;

begin
// Получение случайных чисел с плавающей запятой в диапазоне 0 <= number <1.0
for i := 1 to 5 do
begin
float := Random;
ShowMessage('float = '+FloatToStr(float));
end;

ShowMessage('');

результат будет вот такой:
float = 2.3283064365387E-10
float = 0.031379981256104
float = 0.861048460006714
float = 0.202580958604813
float = 0.2729212641716
 
Последнее редактирование:
На вот так же познакомься с генерацией случайных чисел в очень маленьком диапазоне
var
i : Integer;
begin
// Показ 5 случайных чисел в диапазоне от 652 до 656
for i := 1 to 5 do
ShowMessage('Случайное число : '+IntToStr(RandomRange(652, 656)));
end;

результат будет вот такой:
Случайное число = 652
Случайное число = 652
Случайное число = 655
Случайное число = 652
Случайное число = 653

Delphi функция RandomRange генерирует произвольное целое число ( integer ) в пределах диапазона RangeFrom и RangeTo.

Она обеспечивает более удобную версию функции Random модуля System.

Оба используют псевдослучайную последовательность чисел 2^32 значений. Каждый раз, когда Вы выполняете вашу программу, сгенерированные значения будут одни и те же, если Вы не установите генератор в произвольную часть последовательности, используя функции Randomize или RandSeed.
 
Назад
Сверху