Заглавен файл:
stdlib.з
Синтаксис:
int rand (void)
Върнати стойности:
Тази функция връща следващото псевдослучайно число от поредицата. Стойността на диапазона на числовата поредица е между 0 и RAND_MAX. RAND_MAX е макрос, дефиниран в stdlib.з заглавен файл, чиято стойност е максималната стойност, която може да се върне чрез функция rand (). Стойността на RAND_MAX е по-голяма, но не по-малка от 32767 в зависимост от C библиотеките.
// Пример1.° С#include
#include
int main ()
int i;
printf ("10 произволни числа => \ n");
за (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
връщане 0;
В Пример1.c, извикваме функцията rand () във всяка итерация на цикъл for и отпечатваме връщаната стойност на функцията. Последователността на стойностите на функцията rand () е една и съща всеки път, когато стартираме програмата. По подразбиране семето на функцията rand е настроено на 1.
Можем да зададем семето за функцията rand с помощта на srand () функция. Семената могат да бъдат настроени само веднъж и преди първия път rand () извикване на функция.
srand () функция:
Заглавен файл:
stdlib.з
Синтаксис:
int srand (неподписано int seed)
Аргументи:
Тази функция отнема 1 аргумент
семе: Целочислена стойност, използвана като семе за нова поредица от псевдослучайни числа.
Върнати стойности:
Нито един
// Пример2.° С#include
#include
#include
int main ()
int i;
srand (време (0));
printf ("10 произволни числа => \ n");
за (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
връщане 0;
В Пример2.c, използвахме функцията srand (), за да зададем първоначалното начало на последователността на произволни числа, генерирана от функцията rand (). Всеки път, когато програмата се изпълнява, се генерира различна последователност. В srand (), функция time (0) (декларирана в време.з header file) се използва като семе. Функцията this time (0) връща броя секунди, изминали от епохата (00:00:00, 1 януари 1970 г.). Това все още може да създаде същите последователности, ако стартирате програмата в една и съща секунда.
#include
#include
#include
int main ()
int i;
srand (време (0));
printf ("10 произволни числа между 1 и 10 => \ n");
за (i = 0; i<10;i++)
printf ("% d", (rand ()% 10) + 1);
printf ("\ n");
връщане 0;
В Пример3.c видяхме как случайни числа могат да се генерират между 1 и 10.
#include
#include
#include
int main ()
int i, max, min;
printf ("Въведете минимална стойност =>");
scanf ("% d", & min);
printf ("Въведете максимална стойност =>");
scanf ("% d", & max);
ако (min> max)
printf ("Минималната стойност е по-голяма от максималната стойност \ n");
връщане 0;
srand (време (0));
printf ("10 произволни числа между% d и% d => \ n", мин., макс.);
за (i = 0; i<10;i++)
printf ("% d", (rand ()% (max - min +1)) + min);
printf ("\ n");
връщане 0;
В Пример4.c взехме диапазона от потребителя и генерирахме произволно число в рамките на този диапазон. Формулата е: rand ()% (макс. - мин. +1)) + мин
#include
#include
#include
int main ()
int i;
srand (време (0));
printf ("10 произволни числа между 0.0 и 1.0 => \ n ");
за (i = 0; i<10;i++)
printf ("% f", ((float) rand () / RAND_MAX));
printf ("\ n");
връщане 0;
В Пример5.c, видяхме как можем да генерираме случайни числа между float 0.0 и 1.0 Формулата е: (плаващ) rand () / RAND_MAX)
#include
#include
#include
int main ()
int i;
float max, min;
printf ("Въведете минимална стойност =>");
scanf ("% f", & min);
printf ("Въведете максимална стойност =>");
scanf ("% f", & max);
ако (min> max)
printf ("Минималната стойност е по-голяма от максималната стойност \ n");
връщане 0;
srand (време (0));
printf ("10 произволни числа между% f и% f => \ n", мин., макс.);
за (i = 0; i<10;i++)
printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));
printf ("\ n");
връщане 0;
В Пример6.в, взехме диапазона от потребителя и генерирахме произволно число в рамките на този диапазон (и двете включително). Формулата е: min + ((float) rand () / (RAND_MAX / (max - min)))
Заключение:
В тази статия научихме как случайни числа могат да се генерират с помощта на rand () и srand () функция. Няма гаранции за качеството на случайните числа, генерирани от функцията rand, но е достатъчно добра за случайна употреба.