Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: random() в Си. Где он?  (Прочитано 4864 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Кровавый

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
random() в Си. Где он?
« : 18 Декабря 2011, 00:09:39 »


Учу Си (наконец-то серьёзно!).
Написал для себя некую программу движения точки к случайным координатам.
(Нажмите, чтобы показать/скрыть)

Функция rand() даёт число в промежутке [0; N-1]. Завязана с random();
Запускаю программу 5 раз подряд и вижу идентичный рисунок. Где же тут случайное число, если они всё время повторяются? ???

Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5583
  • Все по палатам!
    • Просмотр профиля
Re: random() в Си. Где он?
« Ответ #1 : 18 Декабря 2011, 00:16:52 »
Где же тут случайное число, если они всё время повторяются?
Для отладки как раз это и надо.
Извините, я все еще учусь

Оффлайн Кровавый

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: random() в Си. Где он?
« Ответ #2 : 18 Декабря 2011, 00:18:11 »
randomize

gcc ругается, что функция не объявлена:
Цитировать
./hello.cpp:53:21: error: ‘randomize’ was not declared in this scope

В какой библиотеке она содержится, если не секрет?

Пользователь решил продолжить мысль 18 Декабря 2011, 00:19:08:
Для отладки как раз это и надо.

Извините, что Вы подразумеваете под местоимением "это"?
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн egorchik007

  • Участник
  • *
  • Сообщений: 156
    • Просмотр профиля
Re: random() в Си. Где он?
« Ответ #3 : 18 Декабря 2011, 00:26:05 »
srand (time(0)); //установка генератора
int a = rand ();

Оффлайн Кровавый

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: random() в Си. Где он?
« Ответ #4 : 18 Декабря 2011, 00:30:07 »
srand (time(0)); //установка генератора
int a = rand ();

Спасибо. Теперь путь меняется.

На первом запуске словил вот такое:
Цитировать
egor@egorlaptop:~/C++$ ./a.out
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
      after 118 requests (118 known processed) with 0 events remaining.

Как это избежать?

PS, srand (time(0)); было добавлено перед каждым вызовом rand() в main().


эм... Гугл говорит, ошибка OpenGL. Ну и чёрт с ней!
« Последнее редактирование: 18 Декабря 2011, 00:45:49 от Кровавый »
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5583
  • Все по палатам!
    • Просмотр профиля
Re: random() в Си. Где он?
« Ответ #5 : 18 Декабря 2011, 00:33:33 »
что Вы подразумеваете под местоимением "это"?
То что при каждом запуске последовательность повторяется. В противном случае отладка программы может быть затруднена. При появлении ошибки зависящей от случайного события искать ее будет очень сложно.
Извините, я все еще учусь

Оффлайн Кровавый

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: random() в Си. Где он?
« Ответ #6 : 18 Декабря 2011, 00:34:33 »
То что при каждом запуске последовательность повторяется. В противном случае отладка программы может быть затруднена. При появлении ошибки зависящей от случайного события искать ее будет очень сложно.

Преимущества и недостатки осознал. Спасибо.

Пользователь решил продолжить мысль 18 Декабря 2011, 00:46:11:
Думаю, тему можно закрыть. Всем ещё раз спасибо!
« Последнее редактирование: 18 Декабря 2011, 00:46:11 от Кровавый »
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

 

Страница сгенерирована за 0.066 секунд. Запросов: 24.