Другие языки программирования и технологии

Генератор случайных чисел в Basic или C++

Функция Rnd возвращает значение, которое меньше 1, но больше или равно нулю.
Способ генерации случайного числа в функции Rnd определяется значением параметра Number.
Для любого заданного начального числа генерируется одна и та же последовательность чисел, поскольку при каждом последующем вызове в функции Rnd при генерации следующего числа последовательности в качестве начального используется ранее сгенерированное число.
Перед вызовом функции Rnd, чтобы инициализировать генератор случайных чисел начальным значением на основе системного таймера, воспользуйтесь оператором Randomize без указания аргументов.
Для получения случайных целых чисел в заданном диапазоне используйте следующую формулу:
randomValue = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd())) + lowerbound
Валентин Окунев
Валентин Окунев
3 626
Лучший ответ
Ай, примитивная функция, читайте первоисточник. Ну как Вы учИте этот язык программирования? По какой литературе?
И? в чем вопрос?
Только не случайных чисел, а псевдослучайных, так как в данной функции заложен алгоритм, а алгоритм это правила! А правила уже не поддаются "случайности".
Example 1

//Randomize.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include <stdlib.h>

int Randomize(int nMax, bool range);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char szText[MAX_PATH];

wsprintf(szText,"%d",Randomize(16,TRUE));
MessageBox(NULL,szText,"Randomize",MB_OK);

return 0;
}

int Randomize(int nMax, bool range)
{
srand(GetTickCount()); int random_integer = (rand()%nMax);
if(range){random_integer++; return random_integer;}

return random_integer;
}

Example 2

//Randomize.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include <stdlib.h>

int Randomize(int nMax, bool range);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char szText[16][MAX_PATH] =
{
"Randomize = 0",
"Randomize = 1",
"Randomize = 2",
"Randomize = 3",
"Randomize = 4",
"Randomize = 5",
"Randomize = 6",
"Randomize = 7",
"Randomize = 8",
"Randomize = 9",
"Randomize = 10",
"Randomize = 11",
"Randomize = 12",
"Randomize = 13",
"Randomize = 14",
"Randomize = 15",
};

MessageBox(NULL,szText[Randomize(16,FALSE)],"Randomize",MB_OK);

return 0;
}

int Randomize(int nMax, bool range)
{
srand(GetTickCount()); int random_integer = (rand()%nMax);
if(range){random_integer++; return random_integer;}

return random_integer;
}
Кела Кела
Кела Кела
1 028
так это ж рандамайз... randomize();