
Създаване на произволни цели числа в определен диапазон на езика за програмиране C не е толкова лесно, колкото може да изглежда. Самият C няма специална функция за това, но предоставя различни инструменти, които могат да се комбинират, за да се постигне това. Концепцията зад генерирането на тези числа се върти около използването на произволни числа и конкретен диапазон.
Буквално казано, произволни числа, генерирани в рамките на определени диапазони, могат да бъдат доста полезни в много приложения в света на програмирането, като създаване на уникални идентификатори, компютърна графика, игри, симулации, тестване и много други.
Библиотеките и функциите при генериране на произволни числа
За генериране на произволни числа в C, ние използваме stdlib.h намлява време.ч библиотеки. The ранд() е част от библиотеката stdlib.h и тъй като не приема никакви аргументи, генерира една и съща последователност от произволни числа всеки път, когато стартираме програмата. За да ограничим това, ние използваме srand() функция, която променя семето на генератора на псевдослучайни.
#include
#include
#include
int main () {
srand(време(0));
for(int i = 0; i<5; i++){ printf(" %d ", rand()); } върне 0; } [/код]
Решение: Генериране на произволни числа в конкретен диапазон
Горният код ще генерира произволно число. За да генерирате произволно число в определен диапазон, можете да използвате тази формула: (rand() % (горен – долен + 1)) + долен където долната е долната граница, а горната е горната граница на диапазона, в който искате произволните числа.
Ето стъпка по стъпка разбивка на целия процес:
- Първо, ние използваме време() функция за получаване на текущото време на системата.
- След това използваме srand() функция за зареждане на произволния генератор.
- След това използваме ранд() функция за генериране на произволно число.
- Накрая привеждаме генерираното число в желания диапазон, като използваме формулата, спомената по-горе.
Ето примерен кодов фрагмент:
#include
#include
#include
int main () {
int долен = 50, горен = 100;
srand(време(0));
for(int i = 0; i<5; i++){ printf(" %d ", (rand() % (горен - долен + 1)) + долен); } върне 0; } [/code] В кодовия фрагмент по-горе генерираните произволни числа ще бъдат в диапазона от 50 до 100.
Демистифициране на кодекса
Забележете, че предадохме `time(0)` на srand() функция. Това е, за да гарантираме, че нашите произволни числа са възможно най-случайни. време() връща текущия календарен час, който се променя всяка секунда, следователно е добра идея да го използвате за зареждане на нашия генератор на произволни числа.
Формулата `(rand() % (upper – lower + 1)) + lower` може да изглежда объркваща на пръв поглед, но е доста проста. ранд() генерира произволно число. Когато вземем модула на това число с „(горно – долно + 1)“, ние основно получаваме остатъка от деленето на числото на „(горно – долно + 1)“. Резултатът от модулната операция винаги е по-малък от делителя. Като добавим долната граница, ние гарантираме, че нашето произволно число е поне долната граница.
Сега можете да генерирате произволни числа във всеки даден диапазон в C! Честито програмиране!