Pseudonáhodné generování čísel – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pseudonáhodné generování čísel – Java – Fórum – Programujte.comPseudonáhodné generování čísel – Java – Fórum – Programujte.com

 

Jokertwo0
Duch
26. 11. 2015   #1
-
0
-

Ahoj chtěl bych se zeptat.... mám napsat generátor čísel a z nejakého důvodu funguje jen pro prvni dvě čísla a pak už ne poradil by mě někdo prosím...

ještě bych chtěl dodat že ten random je tam jen kvůli mé lenosti abych nemusel pri každem spuštení zadávat čísla....

import java.util.*;

public class Ppa1_SP{
	
	static public Scanner sc = new Scanner(System.in);
	private static Random r = new Random();
	
	//umocni na druhou a orizne cislo
	public static int opakujeSe (int w){
		int mocnina = (int) Math.pow(w,2);
		int orez; 
		if(mocnina > 1000){
				orez = (mocnina / 100) + 1;
				
				}

			else{
				orez = (mocnina / 10) + 1;
			
			}
			
			
			
			return orez;
		}
	
	
	public static void main(String[]args){
		
		
		System.out.println("Zadej dvouciferne cislo: ");
		int a = r.nextInt(89) + 10;
		int b = opakujeSe(a) ;   
		int a1 = opakujeSe(a) ; 
		int mocnina;
		int orez; 
		
		System.out.println(a);
		
			//generuje pseudonahodna cisla
			do {
				
				int clen = opakujeSe(a); 
				a = clen;
				
				System.out.println(a);
					}
					
					
					
					while (a != a);
					
		
			
		

}
}
	
	
Nahlásit jako SPAM
IP: 81.201.60.–
NotBeginner
~ Anonymní uživatel
185 příspěvků
26. 11. 2015   #2
-
0
-

do { .. }while (a != a); ... tak takto to určitě nebude.Ten cyklus ti proběhne jenom jedenkrát.

Nahlásit jako SPAM
IP: 217.112.161.–
Jokertwo
~ Anonymní uživatel
7 příspěvků
26. 11. 2015   #3
-
0
-

Jako že to nepujde cyklem do while nebo je to jen špatně napsane...?

Nahlásit jako SPAM
IP: 81.201.60.–
Kit+15
Guru
26. 11. 2015   #4
-
0
-

#3 Jokertwo
Podmínka (a != a) nebude nikdy splněna.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:9001:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jokertwo
~ Anonymní uživatel
7 příspěvků
27. 11. 2015   #5
-
0
-

Ahoj tak jsem to dnes předělal a pořád to teda neni uplne ono.... 

při vstupu čísla 83 mám vystup

  • Zadej dvouciferne cislo:
  • 83
  • [23, 53, 29, 85, 73, 54, 30, 91, 83, 69, 48, 24, 58, 34, 12, 15]
  • [12, 15, 23, 24, 29, 30, 34, 48, 53, 54, 58, 69, 73, 83, 85, 91]

ale vzorový vystup při stejnem vstupu je

  •  [83, 69, 48, 24, 58, 34, 12, 15, 23, 53, 29, 85, 73, 54, 30, 91] 
  •  [12, 15, 23, 24, 29, 30, 34, 48, 53, 54, 58, 69, 73, 83, 85, 91]

a nemám vůbec tušení jak toho dosáhnout....

import java.util.*;

public class Ppa1_SP_A15B0055K{
	
	static public Scanner sc = new Scanner(System.in);
	private static Random r = new Random();
	
	//umocni na druhou a orizne cislo
	static int opakujeSe (int w){
		int mocnina = (int) Math.pow(w,2);
		int orez; 
		if(mocnina > 1000){
				orez = (mocnina / 100) + 1;
				
				}

			else{
				orez = (mocnina / 10) + 1;
			
			}
						
			return orez;
		}
		
		
		
		//vyhleda jestli cislo v poli uz je nebo ne podle klice
	static boolean vyhledavac (int lan[], int w){
		for (int i = 0; i < lan.length; i++){
			if (w == lan[i]){
				return true;
			}
		}
		return false;
	}
	
	
	
	
	// radi pole podle BubbleSort
	static void bublina (int[] lan){
		for(int i = lan.length - 1; i > 0 ; i--){
			boolean spravne = true;
		for (int j = 1; j <= i ; j++){
			if(lan[j-1] > lan[j]){
				int s = lan[j-1];
				lan[j-1] = lan[j];
				lan[j] = s;
				spravne = false;
			}
		}
		
	}
}
	
	
	public static void main(String[]args){
		
		
		System.out.println("Zadej dvouciferne cislo: ");
		int a = sc.nextInt();
		
		int c = opakujeSe(a);
		int j;
		int [] pole = new int [1];
		
		for( j = 0 ; j < pole.length;j++ ){
			pole = new int [pole.length + 1];
		for(int i = 0 ; i < pole.length; i++){
			
			pole[i]= c;
			c = opakujeSe(c);
			
		}
		//jakmile najde stejny prvek ukonci pocitani dalsiho
		if (vyhledavac(pole,c))
					break;
	}
				
				
		
		System.out.println(Arrays.toString(pole));
		bublina(pole);
		System.out.println(Arrays.toString(pole));	
			
		
	}
}
		
Nahlásit jako SPAM
IP: 81.201.60.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

Podobná vlákna

Generovani nahodnych cisel — založil jouda

Generování sudých čísel — založil dědek

Generovaní náhodných čísel v C — založil slaby_ucen46

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý