Šoreiz – nejaušie skaitļi un to pielietojums!

LIELĀ NEJAUŠĪBA jeb gadījumskaitļi! Kas gan tas ir? Vai Tu to zini?

Tie, kuri jau mācās fiziku, droši vien zina par daļiņu haotisko siltumkustību (skatīt) un Brauna kustību. Haotiska ir putekļu kustība – to var redzēt māju bēniņos, kad tur iespīd Saules gaisma. Ja mēs no kosmosa ilgāku laiku skatītos automašīnu kustību un fiksētu to kustības trajektorijas, tad arī šis process mums liktos haotisks, tieši tāpat kā skudru kustība pūznī. Nejaušība ir arī dažādu loteriju pamatā – laimīgais biļetes numurs parasti ir nejaušs skaitlis no pieņemtā skaitļu diapazona, tieši tāpat arī monētas vai kauliņa mešanas rezultātu nosauka neajušie procesi jeb gadījumskaitļi. Šādu nejaušu haotisku procesu pamatā ir gadījumkaitļi (Random) – pievienotajā animācijā katras daļiņas koordinātes kādā laika momentā ir nejauši skaitļi.

Daļiņu haotiskā siltumksutība

Citi piemēri ilustrācijās – skatīt šeit! Ja ilgāku laiku vērsoim 1 daļiņas kustību, tad tās kustības trajektorija būs līdzīga nākošajā attēlā redzamajai.

Nejaušie jeb gadījumskaitļi datorprogrammās

Gadījumskaitļu ģenerēšanai parasti izmanto speciālu funkciju, kuras nosaukums parasti atvasināts no angļu vārda Random (nejaušs). Piemēram, Rnd (n) vai Java valodā tas pats Random! Gadījumskaitļus iespējams relatīvi vienkārši programmēt.

Ja noskatījāties Startit.lv portālā ievietotās lekcijas, tad šobrīd jau nojaušat, ka šo nejaušo skaitļu ģenerēšanas iespēju var lieliski izmantot ļoti daudzās spēlēs un arī citās datorprogrammās:

  • nejaušie pasauļu ģeneratori;
  • skaitļu un vārdu minēšanas spēles;
  • dažādi Loto;
  • Mahjong tipa spēles (kauliņu sākotnejais ievietojums);
  • u.tml.

Kā tad lietot Random savās Java programmās?

Vispirms jau ieteicams pastudēt literatūru:

  • noskatīties 9.lekciju portālā Startit.lv;
  • Function.com par nejaušajiem skaitļiem – lasīt;
  • Java Practices (En) – skatīt;
  • Java.about.com – skatīt;
  • pdf formātā (En, viegli izdrukāt) – skatīt;
  • materiāls ar īsiem korektiem pasakidrojumiem – lasīt;
  • gatavs piemērs ar ciklu (vēl neesam mācījušies) – skatīt.

Darbību secība:

  • importēt bibliotēku Random lietošanai;
  • izveidot  objektu Random;
  • izveidot piemērotu metodi nejaušā skaitļa ieguvei;
  • jāievieš mainīgais metodes rezultāta saņemšanai;
  • ja nepieciešami vairāki nejaušie skaitļi metodi var izmantot atkārtoti;

import java.util.Random – Random klases imports

Random name = new Random(); – izveido objektu Random tavā Java programmā;

int nextInt() – metode dos kādu veselu pseidonejaušu skaitli no 2^32 veseliem skaitļiem;

vai int nextInt(int range) – metode dos kādu veselu pseidonejaušu skaitli no diapzona range: 0 <= x < range.;

int num = r.nextInt(10) + 1; – veselais mainīgais num iegūst vērtību kā veselu nejaušu skaitli  diapazonā 0 -10!

Vienkāršas Java programmas piemērs nejauša vesela skaitļa nejauss ģenerēšanai :

import java.util.Random;
// bibliotēkas Random imports
public class ArrayRandom{
	public static void main(String args[]){
		Random r = new Random(); //Izveido objektu Random tavā Java programmā;
		int nejauss = new int(20);//Izveido metodi un nodod vertību veselam mainīgajam nejauss;
		System.out.print("Nejaušs skaitlis = " +nejauss);//izdrukā mainīgā nejauss vēertību;
	} //main
} //class

Nejaušie skaitļi Android aplikācijā

Līdzīgā veidā varam šeit iegūtās zināšanas izmantot savās Android aplikācijās – skatieties 9.lekciju portālā Startit.lv!

Darbības:

  • izveidot jaunu Android aplikācijas projektu;
  • uzlikt uz formas teksta objektu Large Text, nomainīt tā identifikatoru uz Teksts un Text vērtību uz tukšu;
  • uzlikt uz formas teksta objektu  Button, nomainīt tā identifikatoru uz Poga un Text vērtību uz Ģenerēt;
  • izveidot savu programmas koda fragmentu (kā 9.lekcijā), tas var izskatīties līdzīgs talākajā piemērā dotajam;
    • neaizmirstam pieimportēt mūsu pieprasītās bibliotēkas (CTRL + SHIFT + O);
    • korekti pievienojam R.id ar CTRL +atstarpe palīdzību no parādītā saraksta;
  • klases nosaukumu click pievienojam pogai View => OnClick => click;
  • saglabājam ikreiz pēc katras koda rindiņas pievienošanas un beigās arī to nepiemirstam;
  • palaižam savu Android aplikāciju un  testējam;
  • ja ir Ok, pamainām programmas kodu (kaut ko pieleikeam, izmainām) un atkal testējam!
  • Mobilajā ierīcē var iekopēt atbilstošo aplikāciju  nosaukums.apk (ar paplašinājumu .apk) no projekta Bin mapes!

public void click(View view){
        Random kaulins= new Random();
        int vertiba=kaulins.nextInt(6)+1;
        TextView Teksts=(TextView)findViewById(R.id.Teksts);
        Teksts.setText(“Random = “+vertiba);
    }

Startit.lv 9.lekcijā Android programmas Java koda logs izskatījā šādi:

Random_2

Ja ir velēšanās, tad var mēģināt pievienot sazarojumu, kurā tiek noteikts, ka uzkrītot skaitlim 6, tiek izvadīts paziņojums “Maksimālais!”

if (vertiba==6){                       

Teksts.setText(“Maksimālais!”);

}else{

Teksts.setText(“Random = “+vertiba);

{

Nu tad kā ir? Piekusāt! Tas nekas, paturiet prātā, ka jebkuras prasmes, t.sk. programmēšanas prasmes ir iegūstamas tikai mācoties un strādājot! Galu galā rezultāts būs ieguldīto pūļu vērts, bet līdz tam tiks tikai tie, kuri nepadosies!

***

Ak, kāds vēl nav paguris? Nu tad Eclipsē jaunā Java projektā pablēņojieties ar tālāk pievienoto programmiņu un pamēģiniet tikt skaidrībā, ko šī programma dara un, galvenais, kādēļ tā dara!

import java.util.Random;
public class RandomStars{
	public static void main(String args[]){
		Random r = new Random();
		int num = 0;

	      for(int i = 0; i < 25; i++){
	         //random numbers from 0 to 15:
	         num = r.nextInt(16);
	         for(int j = 0; j < num; j++) 
	    	      System.out.print("*");
	         System.out.println();
	      }
	} //main
} //class

Nu gan šai reizei – viss! Līdz nākošajai nodarbībai!

*****

Advertisements