CodeGym /Java Blog /Random /Java.util.Random na klase
John Squirrels
Antas
San Francisco

Java.util.Random na klase

Nai-publish sa grupo

Ano ang java.util.Random na klase sa Java?

Ang java.util.Random na klase ay ginagamit upang bumuo ng mga pseudorandom na numero. Ang mga pamamaraan na ipinatupad ng klase na ito ay ginagamit upang makabuo ng iba't ibang uri ng random na data tulad ng int, double, at float. Kaya't mayroong dalawang pangunahing uri ng mga random na numero, random na istatistika at pseudorandom na mga numero . Ang mga istatistikal na random na numero (tulad ng mga simpleng random na numero sa matematika), ay isang hanay ng mga halaga na walang nakikilalang pattern. Halimbawa, ang pag-roll ng dice ng 10 beses ay bubuo ng random na numero sa bawat oras na walang anumang nakikilalang pattern.

Ano ang Pseudo Random Numbers?

Ito ay isang hanay ng mga halaga na random sa istatistika ngunit may alam na panimulang punto . Sa Java, ang bawat pseudorandom na numero ay ginawa sa pamamagitan ng isang algorithm. Kaya karaniwang umuulit ang isang cycle sa tuwing bubuo ang java.util.Random ng random na numero. Ang isang random na generator ng numero sa Java ay gagawa ng mga istatistika na random na mga numero ngunit may kilalang panimulang punto, na binuo ng isang algorithm. Ginagawa nitong pseudorandom ang mga halagang iyon.

Ang java.util.Random class ba ay Cryptographically Insecure?

Ito ay cryptographically insecure dahil mayroon itong mga algorithm na ipinatupad para sa pagbuo ng mga random na numero. Bilang resulta kung saan ang isang taong nakakaalam kung paano gumagana ang algorithm ay hindi magtatagal sa pag-access sa iyong sensitibong data. Kaya't kung nagtatrabaho ka sa ilang application ng seguridad, kailangan upang ma-secure ang ilang sensitibong data, o kailangan na bumuo ng mga random na password, mas mabuting iwasan ang paggamit sa klase na ito. Nakakatulong ito sa maraming pagkakataon tulad ng pagbuo ng random na numero para sa iyong dice roll sa ludo, pagsusugal, paggawa ng toss para sa isang laban o iba pang mga lugar kung saan hindi mahuhulaan ang iyong nais na resulta.

Pamamaraan ng Deklarasyon

Para sa paggamit ng mga pamamaraan ng klase na ito kailangan mo munang i-import ito mula sa package bilang

import java.util.Random;
Pagkatapos mag-import, kailangan mong lumikha ng isang bagay ng klase na ito tulad ng

Random randomNumbers = new Random();
Sa karagdagang paglipat, tingnan natin ang iba't ibang mga halimbawa upang magamit ang java.util.Random na klase.

Halimbawa


import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();
		
		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which 
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);
		
		/*
		 * Returns the next pseudo random integer value between 0 and 5  
		 * because if we use '6' then, it will give random numbers from 0 to 6 
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		
		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);
		
		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */
		
		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);
		
		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Output

----------Random Boolean--------- Ang random na boolean value ay: true ----------Random Integer--------- Die Roll: 4 Die Roll: 6 Die Roll: 1 Die Roll: 1 Die Roll: 3 ----------Random Long--------- Random Long value: -6029959293504570824 ---- ------Random Bytes--------- Ito ang mga random na byte = [ -37 90 -98 -70 23 -111 19 108 ]

Paraan

Ngayon ay tatalakayin natin ang ilan sa mga pamamaraan na ibinigay ng klase na ito, na isinasaisip na ang randomNumbers ay ang object o instance ng ating klase.
  1. doble() :

    Ang pamamaraang ito ay nagbabalik ng walang katapusang serye ng mga pseudorandomly na nabuong dobleng halaga. Ngayon tingnan natin kung paano gamitin ang pamamaraang ito.

    
    randomNumbers.doubles();
    
  2. ints() :

    Ang pamamaraang ito ay nagbabalik ng isang walang katapusang serye ng mga pseudorandomly na nabuong mga halaga ng integer. Maaari mong gamitin ang sumusunod na script upang tawagan ang paraang ito.

    
    randomNumbers.ints();
    
  3. longs() :

    Ang pamamaraang ito ay nagbabalik ng isang walang katapusang serye ng mga pseudorandomly na nabuong mahabang halaga. Ang sumusunod na script ay ginagamit upang tawagan ang paraang ito.

    
    randomNumbers.longs();
    
  4. nextBoolean() :

    Ibinabalik ng pamamaraang ito ang susunod na pantay na ipinamahagi na pseudorandom na halaga ng boolean mula sa mga random na numero ng generator sequence. Ang pare-parehong pamamahagi ay hugis-parihaba, ibig sabihin, ang bawat halaga sa pamamahagi ay may pantay na posibilidad. Narito kung paano gamitin ang paraang ito.

    
    randomNumbers.nextBoolean();
    
  5. susunodInt(int n) :

    Ibinabalik ng pamamaraang ito ang susunod na pantay na ipinamahagi na pseudorandom integer na halaga mula sa mga random na numero ng generator sequence sa pagitan ng 0 inclusive at eksklusibong ibinigay na value. Magkaroon ng isang mabilis na pagtingin sa kung paano gamitin ang paraang ito.

    
    randomNumbers.nextInt(10);
    

Konklusyon

Umaasa kami na sa ngayon ay naiintindihan mo na kung ano ang java.util.Random at kung paano ipatupad ang iba't ibang pamamaraan nito at kung saang senaryo ito gagamitin. Maaari mong palaging gamitin ang klase na ito sa java. Huwag mag-atubiling magsanay at bumalik dito tuwing kailangan mo ng karagdagang tulong. Maligayang pag-aaral!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION