Linux-BG
Начало
Помощ
Търси
Календар
Вход
Регистрирай
Добре дошъл/дошла,
Гост
. Моля,
въведи своето потребителско име
или
се регистрирай
.
Влез с потребителско име, парола и продължителност на сесията
Linux за българи: Форуми
>
Програмиране
>
Общ форум
>
случайни числа
Страници: [
1
]
Надолу
« назад
напред »
Изпечатай
Автор
Тема: случайни числа (Прочетена 2219 пъти)
vstoykov
Напреднали
Публикации: 1286
Distribution: Ubuntu
Window Manager: Fluxbox
случайни числа
«
-:
Jul 25, 2006, 17:22 »
При всяко стартиране на програмата "случайните числа" са еднакви. Това нормално ли е?
http://d.interbild.net/vstoykov/tmp/screenshots/random.png
Активен
winboze
Напреднали
Публикации: 242
случайни числа
«
Отговор #1 -:
Jul 25, 2006, 17:44 »
Доколкото си спомням, май в C трябва да се използва randomize() преди rand(). Пробвай в началото на main() да сложиш
randomize();
Активен
.: МРАЗЯ ПАКЕТНИ ЗАВИСИМОСТИ :.
sdr
Напреднали
Публикации: 655
случайни числа
«
Отговор #2 -:
Jul 25, 2006, 17:52 »
Истината е в /dev/urandom иначе се позлва ранодм генератора на стандартната библиотека а той може да не е много добъ. За гарантирано добър генератор си намери имплементация на
Mersenne Twister
Активен
mironcho
Напреднали
Публикации: 495
случайни числа
«
Отговор #3 -:
Jul 25, 2006, 21:26 »
Тука има няколко примера за псевдо генератор:
http://cplus.about.com/od/cprogrammingtips/l/aa041403a.htm
Активен
VladSun
Напреднали
Публикации: 2166
случайни числа
«
Отговор #4 -:
Jul 25, 2006, 21:55 »
Цитат
(vstoykov @ Юли 25 2006,17:22)
При всяко стартиране на програмата "случайните числа" са еднакви. Това нормално ли е?
http://d.interbild.net/vstoykov/tmp/screenshots/random.png
За това му казват Генератор на Псевдослучайни Числа
'>
Съветите, които са ти дали по-горе ще ти свършат работа, ако наистина искаш при всяко пускане да са различни числата.
Има случаи, в които, обаче ти трябва една и съща поредица от "случайни числа".
Всичко това зависи от така наречения "seed". Това е число от което почва да се генерира псевдослучайната поредица.
Ако искаш различни числа, то за "seed" трябва да избереш число получено от достатъчно случаен фактор - системното време в милисекунди, координатите от точки получени от движението на мишката или други подобни.
Искам да кажа, че учудването ти може да е негативно, но в някои случаи псевдослучайността е полезна.
Активен
KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират
Гост
случайни числа
«
Отговор #5 -:
Jul 26, 2006, 11:15 »
Цитат
(sdr @ Юли 25 2006,18:52)
Истината е в /dev/urandom иначе се позлва ранодм генератора на стандартната библиотека а той може да не е много добъ. За гарантирано добър генератор си намери имплементация на
Mersenne Twister
/dev/{|u|s}random са интерфейс към генератора на случайни числа на ядрото и нямат общо с rand от libc. Ако при rand след като се захрани с едно и също число винаги се получава една и съща поредица, то при ядрото се използва и допълнителни смущения от устройства и т.н. .....
Активен
TeodorGig
Напреднали
Публикации: 14
случайни числа
«
Отговор #6 -:
Aug 02, 2006, 14:51 »
Добави следните редове:
#include <time.h>
А на първият ред в main():
srand( time(NULL) );
Това ще инициализира генератора на случайни числа с текущата стойност на системния часовник.
Активен
Lord Bad
Напреднали
Публикации: 1667
Distribution: Fedora 13
Window Manager: GNOME
Jedi Knight
случайни числа
«
Отговор #7 -:
Aug 02, 2006, 16:11 »
randomize е от Pascal, не е от С. Трябва само да сменяш сийда надеждно - времето е добра идея по принцип, но според мен /dev/urandom е по-добра...
Активен
Fuelled by Fedora 13 "Goddard"
====================================
Rock it!
Страници: [
1
]
Нагоре
Изпечатай
« назад
напред »