Тхе Питхон насумично модул омогућава генерисање случајних бројева. Генерисани бројеви су низ псеудослучајних бројева, који се заснивају на коришћеној функцији. Постоје различите врсте функција које се користе у насумичном модулу за генерисање случајних бројева, као нпр рандом.рандом(), рандом.рандинт(), рандом.цхоице(), рандом.рандранге(старт, стоп, видтх) , и још много тога.
Овде ћемо разговарати о рандранге() функција на насумично модул. Тхе рандранге() функција се користи за генерисање случајног броја између наведеног опсега у свом параметру. Прихвата три параметра: почетни број, број заустављања и ширину, који се користи за прескакање броја у опсегу.
Синтакса рандом.рандранге()
random.randrange(start, stop[, width])
Тхе рандом.рандранге() функција враћа насумични цео број унутар датог опсега, тј. почетак и заустављање. Тхе рандом.рандранге() функција узима три параметра као улаз старт Стоп , и ширина . Од ова три параметра, два параметра почетак и ширина су опциони.
- Тхе почетак параметар је почетни или доњи гранични цео број у случајном опсегу. Ако почетни параметар није прослеђен у параметру, узима подразумевану вредност 0 (нула).
- А зауставити параметар је последњи број или цео број горње границе у случајном опсегу.
- Тхе ширина параметар је опсег између сваког броја у случајном низу. Овај параметар је опциони и ако параметар ширине није прослеђен у параметру, узима подразумевану вредност 1 (један).
Тхе рандранге (почетак, заустављање, ширина) функција не укључује крајњи параметар док генерише насумични цео број. Тхе зауставити параметар је ексклузивни , и не генерише се као случајни број.
Погледајте ову функцију рандом.рандранге(3, 30, 3) која ће генерисати било коју насумичне целобројне вредности између 3 и 30, на пример 3, 6, 9, 12, …27. Али ова функција никада не укључује 30 док генерише насумични број.
Генерисање случајног одабира у апликацији је увек било важно и има неколико употреба у реалном времену у свакодневном животу. На пример, генерисање и слање случајног броја клијенту као ОТП (једнократна лозинка) за обављање безбедне трансакције. Други пример генерисања случајног броја се користи током играња лудо игре за генерисање случајног броја коцкица.
Примери 1: рандом.рандранге() генерише насумични цео број у датом опсегу
Хајде да видимо пример где генеришемо насумични цео број унутар датог опсега. Овај пример показује све различите облике функције рандом.рандранге().
import random print('Generating random number within a given range ') # Random number between 0 and 29 number1 = random.randrange(30) print('Random integer: ', number1) # Random number between 10 and 29 number2 = random.randrange(10, 30) print('Random integer: ', number2) # Random number between 25 and 200 divisible by 5 number3 = random.randrange(25, 201, 5) print('Random integer: ', number3)
Излаз:
Пример 2: Генеришите насумични опсег целог броја (вишеструко) од н
Хајде да генеришемо насумични цео број између 5 и 100, што је опсег од 5, као што су 5, 10, 25, …, 90, 95.
import random #print 'Random number range (multiple) of 5' number = random.randrange(5, 100, 5) print('Random number range (multiple) of 5 is ', number)
Излаз:
Пример 3: Генеришите насумични цео број одређене дужине
Такође можете генерисати насумични цео број одређене дужине. Ако желите да генеришете случајни број дужине 3, унесите почетак и зауставити параметар у рандранге() функционише као најмањи број троцифрене дужине (100) и најмањи број дужине од 4 цифре (1000) јер генерише насумични број од 3 цифре од 100 до 999 где су 4 цифре (1000) искључене.
Пример: Генеришите насумични број од 3 цифре користећи рандом.рандранге()
import random number1 = random.randrange(100, 1000) print('First random number of length 3 is: ', number1) number2 = random.randrange(100, 1000) print('Second random number of length 3 is: ', number2)
Излаз:
First random number of length 3 is: 813 Second random number of length 3 is: 770
Пример 4: Генеришите насумичан негативан цео број:
Хајде да видимо пример који генерише насумични негативан цео број између -50 и -10.
import random randomNagativeInteger = random.randrange(-50, -10) print('Random negative integer number between -50 to -10') print('Random negative integer number between -50 to -10 is: ',randomNagativeInteger)
Излаз:
Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43
Пример 5: Генеришите насумичан позитиван или негативан цео број
import random number1 = random.randrange(-5, 5) print(number1) number2 = random.randrange(-5, 5) print(number2)
Излаз:
-5 0
Имајте на уму да параметар почетак и зауставити , који се прослеђује рандом.рандранге() функција мора бити у растућем редоследу, као нпр рандом.рандранге(5, 10) или рандом.рандранге(-20, -10) . Тхе почетак параметар увек бити мањи од зауставити параметар; у супротном, ова функција генерише грешку као 'Трацебацк (последњи позив последњи) и подићи празан опсег ВалуеЕррор за рандранге()' .
На пример:
Погледајте овај пример у којем кршимо правило проношењем почетак параметар већи од зауставити параметар у рандом.рандранге() функција, која генерише поруку о грешци као:
ц++ подељени стринг
import random randomNumber = random.randrange(10,5)
Излаз:
Неке од других функција Питхон'с насумично модул који се користе за насумично генерисање бројева су:
рандом.цхоице()
Питхон насумично модул има а избор() функција која се користи за бирање случајног елемента са листе или друге секвенце. А рандом.цхоице() функција се користи за враћање случајног елемента са листе вредности.
Синтакса рамдом.цхоице()
random.choice(sequence)
или
random.choices(sequence, k=l)
Овде параметар низ може бити стринг, листа, тупле и рандом.цхоице() само један случајни елемент.
У рандом.цхоицес() функција к је број елемената које треба вратити. Претпоставимо да не помињемо вредност за к параметар тхе рандом.цхоицес() враћа једну ставку из низа или листе.
Пример 1:
У овом примеру, ми обезбеђујемо секвенцу (листу) као параметар и враћамо један случајни елемент.
import random listValue = [5,10,15,20,25,30] item = random.choice(listValue) print('random item from list is: ', item)
Излаз:
random item from list is: 10
Пример 2:
Функција рандом.цхоицес() се углавном користи за враћање насумичних елемената са различитим могућностима. Ова функција такође узима тежину (к) број случајних избора. На пример, желимо да одштампамо 3 насумична имена филма са листе од 5 филмова.
import random movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic'] randomMovies = random.choices(movieList, k=3) print('random movies from list are: ', randomMovies)
Излаз:
random movies from list are: ['Avengers', 'Black Panther', 'Titanic']
рандом.рандинт()
Питхон рандом.рандинт() функција се користи за генерисање случајног целог броја унутар наведеног опсега.
Синтакса:
random.randint(start, stop)
Тхе рандом.рандинт() функција узима два параметра почетак , што је почетни распон, и зауставити , што је крајњи опсег. Оба параметра (старт, стоп) су укључена приликом генерисања случајног броја.
Пример рандом.рандинт() који генерише листу случајних целих бројева
Овај пример ће креирати листу више насумичних целих бројева помоћу функције рандинт(). Генерисање листе од 5 насумичних целих бројева између 1 и 100, обе вредности су инклузивне.
import random randomListValue = [] # specifing length of list equal to 5 for i in range(0, 5): # generates random numbers from 1 to 100 randomListValue.append(random.randint(1, 100)) print('Printing list of 5 generated random numbers') print(randomListValue)
Излаз:
Printing list of 5 generated random numbers [65, 82, 3, 39, 40]
Међутим, може постојати могућност да тхе рандом.рандинт() функција враћа дупликат броја у излазном резултату. Да бисте избегли дупликат случајног целог броја у резултату, користите Случајни узорак() функција.
Случајни узорак()
У горњем примеру може постојати могућност да рандом.рандинт() генерише дупликат случајног броја са листе. Ако желите да генеришете јединствене случајне бројеве са листе, користите Случајни узорак() функција.
Тхе Случајни узорак() функција генерише јединствене елементе из скупа, листе и других секвенци. Питхон-ова функција рандом.сампле() дозвољава насумично узорковање више од једног елемента унутар опсега са листе без дуплирања.
Пример рандом.сампле() за генерисање насумичних елемената са листе без дупликата:
У овом примеру ћемо генерисати 10 насумичних целих бројева из опсега од 0 до 100.
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100), 10) print(randomList)
Излаз:
[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]
Ако желите да генеришете листу насумичних бројева и сваки од њих мора бити вишеструки од 'н', онда користите параметар корака функције ранге().
На пример, генерисање 10 насумичних целих бројева који су вишеструки од 5 у опсегу од 0 до 100 користећи рандом.сампле(ранге(0, 100, 5), 10).
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100, 5), 10) print(randomList)
Излаз:
[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]
сортирање листе()
Тхе Питхон врста() функција се користи за сортирање насумичних целих бројева листе у растућем редоследу (подразумевано). Такође можемо сортирати вредност листе у опадајућем редоследу тако што ћемо навести њен редослед обрнуто = Тачно . Подразумевана вредност од обрнуто је Фалсе .
Пример 1: сорт() сортирање елемената листе у растућем редоследу
У овом примеру ћемо генерисати случајну листу од 5 бројева у опсегу од 50 до 100 са ширином 5 и сортирати их користећи врста() функција.
import random randomList = random.sample(range(50, 100, 5), 5) print('Before sorting random integers list') print(randomList) # sort the list ascending order by default randomList.sort() print('After sorting random integers list') print(randomList)
Излаз:
Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90]
Пример 2: сорт() сортирање елемената листе у опадајућем редоследу
У овом примеру ћемо сортирати елементе листе у опадајућем редоследу користећи рандомЛист.сорт(реверсе=Тачно) .
import random randomList = random.sample(range(50, 100, 5), 5) print('Before sorting random integers list') print(randomList) # sort the list descending order randomList.sort(reverse=True) print('After sorting random integers list') print(randomList)
Излаз:
Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]