Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможно ли... ...сгенерировать случайное число... 
:(
    Опции темы
geHucKa
Дата 20.6.2004, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.5.2004

Репутация: нет
Всего: нет



...с помощью директив препроцессора и подставить его при компиляции в текст программы? Если можно, то как?...
PM MAIL   Вверх
chipset
Дата 21.6.2004, 05:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Не знаю как с помощью директив, но я бы сконфигил bat'ник запускал бы его про компиляции, а он бы мне вызывал экзешник который проверял код на наличие #RANDOMIZE 33 и вставлял значение...
Фуф... smile.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
gepard
Дата 21.6.2004, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



Цитата
...с помощью директив препроцессора и подставить его при компиляции в текст программы? Если можно, то как?...

А зачем такой изврат?
Код

#include <stdio.h>
#include <time.h>
void main()
{
   srand(time(0));
   int x=rand()%256;
   printf("%d\n", x);
}

thumbs-up.gif

Это сообщение отредактировал(а) gepard - 21.6.2004, 06:08


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
chipset
Дата 21.6.2004, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Тут идет о прекомпиляционной рандомизации... Зачем она нужна я смутно понимаю но никак не могу сконцентрироваться... thumbs-up.gif thumbs-up.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
gepard
Дата 21.6.2004, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



Цитата
Тут идет о прекомпиляционной рандомизации...

withstupid.gif


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
bel_nikita
Дата 21.6.2004, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



С помощью деректив - наврятли. ( Маги препроцессора поправте меня biggrin.gif )
Хотя пишут, что переменное число параметров в дефайне не возможно, однако все-таки возможно.
С помощью шаблонов можно че-нить намудрить. Но это уже не просто программирование, а метапрограмминг.


З.Ы.: даже такие словечки знаю biggrin.gif



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
chipset
Дата 21.6.2004, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Нет с помощью шаблонов скорее всего нельзя... Тут надо использовать препроцессор а если Сионистский не помогает надо делать свой, что собственно я и предложил.. smile.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
mr.DUDA
Дата 21.6.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
#define RANDOM_NUMBER(max) ((((((117*__LINE__) ^ 354) % 315) * 253) ^ 183) % max)
   
   
int i =  RANDOM_NUMBER(100); // 88
   
i =  RANDOM_NUMBER(100); // 30
   
i =  RANDOM_NUMBER(100); // 22
   
i =  RANDOM_NUMBER(100); // 29
   
i =  RANDOM_NUMBER(100); // 34
   
i =  RANDOM_NUMBER(100); // 52
   
i =  RANDOM_NUMBER(100); // 73
   
i =  RANDOM_NUMBER(100); // 27


biggrin.gif tounge.gif smile.gif rolleyes.gif

Конечно, можно ещё поизвращаться над номером строки, но и в этом варианте ИМХО числа довольно-таки случайные thumbs-up.gif


--------------------
user posted image
PM MAIL WWW   Вверх
bel_nikita
Дата 21.6.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



mr.DUDA ну ты прям кудесник
можно еще пару делений и умножений добавить biggrin.gif

Девиз актуален:
если ты программист, то ты извращенец, но не наоборот biggrin.gif


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Олег М
Дата 21.6.2004, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



А зачем это тебе, geHucKa, нужно, если не секрет?
Насколько мне известно директив препроцессора таких нет, да и задач, где бы это понадобилось тоже не могу представить.
Напиши утилитку типа "Create GUID" и вставляй случайное число прямо в текст программы.
Иле тебе нужно, чтобы при каждой компиляции было другое число?
PM MAIL ICQ   Вверх
gepard
Дата 21.6.2004, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



mr.DUDA
А если у меня что-то типа:
Код

#include <stdio.h>
#define RANDOM_NUMBER(max) ((((((117*__LINE__) ^ 354) % 315) * 253) ^ 183) % max)
struct ss
{
   int str[2000];
};
void main()
{
   ss st;
   for (int i=0;i<2000;i++)
       st.str[i]=RANDOM_NUMBER(256);
   printf("%d\n", st.str[0]);
   printf("%d\n", st.str[123]);
   printf("%d\n", st.str[1089]);
}

В этом случае будет всегда одно и тоже число baaa.gif
Но соглашусь - идея хорошая exclamation.gif


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 21.6.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



эх, жаль что внутри #define нельзя вызывать вложенные #define wink.gif


--------------------
user posted image
PM MAIL WWW   Вверх
gepard
Дата 21.6.2004, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



Олег М
Ему наверное, как и мне(да как и многим другим) иногда хочется экзотики, что-нибудь такое эдакое, чтобы памяти не занимало и выполняло масштабные функции.
Без обид.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
chipset
Дата 21.6.2004, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



А может ему надо серийные номера генерить?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Олег М
Дата 21.6.2004, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



gepard
Цитата
Ему наверное, как и мне(да как и многим другим) иногда хочется экзотики, что-нибудь такое эдакое, чтобы памяти не занимало и выполняло масштабные функции.
Без обид.

Понятно. Ну тогда действительно самым простым решением будет написать программку, которая обрабатывает исходники до компиляции, как советовали ранее. В интернет-программировании, насколько я знаю, это совершенно обычное дело. Непонятно, зачем здесь придумывать какие-то ухищрения.
Цитата
Не знаю как с помощью директив, но я бы сконфигил bat'ник запускал бы его про компиляции, а он бы мне вызывал экзешник который проверял код на наличие #RANDOMIZE 33 и вставлял значение...

Необязательно батник. В мейкере есть специальные средства для таких дел.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1169 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.