Вопрос № 18228: Уважаеммые эксперты, прошу помощи у вас.
Начал изучать OpenGl на Bortland C++ 5.02 и при компиляции вывались следующие ошибки линковщика (см. в приложении). Помогите разобраться... Использовал библиотеку Glut....Вопрос № 18242: Здравствуйте.
Нужно получить действительное случайное число. Я так понимаю это можно сделать примерно так:
s = rand(10) / rand(10);
Но как можно сделать это по другому? Может быть уже есть функция rand() для действительных чисел?...
Вопрос № 18228
Уважаеммые эксперты, прошу помощи у вас.
Начал изучать OpenGl на Bortland C++ 5.02 и при компиляции вывались следующие ошибки линковщика (см. в приложении). Помогите разобраться... Использовал библиотеку Glut.
Приложение:
Отправлен: 13.03.2005, 16:19
Вопрос задал: Карпенко Александр Иванович (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Malish
Были похожие проблемы, но в Delphi. Нужен исходный код.
Ответ отправил: Malish (статус: 2-ой класс)
Отправлен: 13.03.2005, 17:18
Отвечает: Sin
Здравствуйте, Карпенко Александр Иванович!
Скорре всего, при линковке не подключаются нужные библиотеки
Попробуй в код вставтиь следующие строки:
# pragma comment(lib, "opengl32.lib")
# pragma comment(lib, "OpenGLUT.lib")
Названия библиотек могут несовпасть, если так то посмотри в папке BC5/lib, может найдешь подходящюю.
Ответ отправил: Sin (статус: 1-ый класс)
Отправлен: 14.03.2005, 08:02
Вопрос № 18242
Здравствуйте.
Нужно получить действительное случайное число. Я так понимаю это можно сделать примерно так:
s = rand(10) / rand(10);
Но как можно сделать это по другому? Может быть уже есть функция rand() для действительных чисел?
Отправлен: 13.03.2005, 22:03
Вопрос задал: andrey (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: Malish
Здравствуйте, andrey!
Что бы получить реально случайные часла надо включить
<stdlib.h>
<time.h>
и выполнить такие операции
srand(time0));
X = rand()/RAND_MAX; // это и будут случайные дробные числа
Ответ отправил: Malish (статус: 2-ой класс)
Отправлен: 14.03.2005, 00:11
Отвечает: DSota
Здравствуйте, andrey!
Например: rand(xxx)*0.001
Или если нужно больше 5 цифр: rand(10000)*0.000001+rand(xxx)*0.01
и так далее...
Ответ отправил: DSota (статус: Студент)
Отправлен: 14.03.2005, 09:31
Отвечает: vitya
Здравствуйте, andrey!
Так этого сделать нельзя, ибо функция rand в C не возвращает параметров. Сделать это можно double(rand())/rand() - так получится, но правда будет очень некачественное распределение. Я предлагаю привести случайное число каким-либо способом к интервалу [0,1], а дальше с помощью методов из тервера получить нужное распределение. Просто случайные числа обычно не бывают нужны.
Ответ отправил: vitya (статус: Профессор)
Отправлен: 14.03.2005, 09:45
Отвечает: KHeLeKRoN
Здравствуйте, andrey!
Вот вариант с шаблонной функцией:
#include <cmath>
using namespace std;
template <typename T>
T randomNumber (T maxNumber, T range)
{
T result = rand () % maxNumber;
T tempVar = result;
T power = (rand () % maxNumber)
for (int i = 0; i < power; i++) result *= tempVar; // Здесь мы возводим в степень...
return result;
}
Ответ отправил: KHeLeKRoN (статус: 1-ый класс)
Отправлен: 14.03.2005, 18:54