Генерирање случајних бројева на Јави

Генерисање серије насумични бројеви један је од оних уобичајених задатака који се повремено појављују. Ин Јава, то се може постићи једноставним коришћењем јава.утил. Случајна класа.

Први корак, као и код употребе било којег АПИ-ја класа, је да ставку увоза ставите пре почетка ваше програмске класе:

Затим креирајте случајни објект:

Објект Рандом пружа вам једноставан генератор случајних бројева. Методе објекта дају могућност избора случајних бројева. На пример, методе нектИнт () и нектЛонг () ће вратити број који је унутар распона вредности (негативне и позитивне) инт и дугих типова података, респективно:

Враћени бројеви биће насумично одабрани инт и дуге вредности:

Бирање случајних бројева из одређеног распона

Обично бројеви који се генеришу морају бити из одређеног распона (нпр., Између 1 и 40 укључиво). У ту сврху, метода нектИнт () такође може прихватити инт параметар. Означава горњу границу за опсег бројева. Међутим, горња граница није укључена као један од бројева који се могу одабрати. То можда звучи збуњујуће, али следећа метода () ради од нуле према горе. На пример:

instagram viewer

ће одабрати само случајни број од 0 до 39 укључиво. Да бисте изабрали из распона који започиње са 1, једноставно додајте 1 у резултат нектИнт () методе. На пример, да бисте одабрали број између 1 и 40 укључиво додајте један у резултат:

Ако се распон креће од већег броја од једног, мораћете:

  • минус почетни број од горњег граничног броја, а затим додајте један.
  • додајте почетни број резултату методе нектИнт ().

На пример, да бисте одабрали број од 5 до укључиво 35, горњи гранични број ће бити 35-5 + 1 = 31 и резултату је потребно додати 5:

Колико је случајна класа?

Морам истаћи да класа Рандом генерише случајне бројеве на детерминиран начин. Алгоритам који производи случајност заснован је на броју названом семе. Ако је познат број семена, тада је могуће утврдити бројеве који ће се произвести из алгоритма. Да бих то доказао, послужићу се бројевима од датума који Нил Армстронг прво ступио на Месец као мој број семена (20. јула 1969.):

Без обзира ко користи овај код, редослед произведених "случајних" бројева биће:

Подразумевано је број семена који користи:

је тренутно време у милисекундама од 1. јануара 1970. Обично ће то произвести довољно случајне бројеве за већину сврха. Међутим, имајте на уму да ће два генератора случајних бројева креирана унутар исте милисекунде генерисати исте случајне бројеве.

Такође будите опрезни када користите класу Рандом за било коју апликацију која мора имати сигуран генерисање случајних бројева (нпр. Програм за коцкање). Можда ће бити могуће погодити број семена на основу времена покретања апликације. Генерално, за апликације у којима су насумични бројеви апсолутно критични, најбоље је пронаћи алтернативу Рандом објекту. За већину апликација у којима само треба да постоји одређени случајни елемент (нпр. Коцкице за игру на плочи) онда то функционира у реду.

instagram story viewer