Pages: 1 [2] 3   Go Down
Print
Author Topic: AIUTO:TOROIDALE  (Read 6379 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #15 on: 06-03-2009, 12:51:47 »

ho risolto grazie a un collega,si cmq li avevo sbagliato pray
Logged

djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #16 on: 06-03-2009, 13:36:07 »

Peccato, stavo per postare la mia soluzione

Code:
public class Esercizio{
public static void main(String[] args){
printMatrix(metodo(new byte[]{3,1,127,0,2}));
}
private static <T>void printMatrix(T[][] matrix){
for(T[] row:matrix){
for(T element:row)
System.out.print(element.toString()+" ");
System.out.println();
}
}
/*Scrivere 1 metodo che prenda in input un array A di byte,
 *  e restituisca un array bidimensionale frastagliato B di stringhe
 *   la cui lunghezza delle righe è data dai valori di A.
 *   Si riempia B con delle stringhe casuali da 5 a 8 caratteri
 *   in cui ogni singolo carattere è
 *   'p' con probabilità 2/3,
 *   'a' con probabilità 1/6 e
 *   'k' con probabilità 1/6.*/
public static String[][] metodo(byte[] A){
String[][] B;//creo l'array frastagliato B
int x=A.length,y=0;//creo due variabili di supporto
for(String[] r=(B=new String[x][])[0];x-->0&&(r=B[x]=new String[y=A[x]])!=null;)for(;y>0&&(r[--y]=new String(new char[(int)((1.25+Math.random())*4)])).length()>0;)while((r[y]=r[y].substring(1)+(Math.random()*3<2?'p':Math.random()<.5?'k':'a')).charAt(0)==A.length-B.length);//faccio alcuni conti
return B;//restituisco l'array
}}
C'è anche il main per testarla
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #17 on: 10-03-2009, 18:33:06 »

Per quanto riguarda la matrice toroidale io non ho capito l'esempio anche se era chiaro, posto un'immagine, praticamente riprendendo l'esempio di prima, se la matrice è toroidale ed è 5x5
l'aereo dalla posizione 4,4 si sposta di uno, praticamente su quale casella che ho nel disegno mi comparirà??


Link Immagine
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
MisteroLupo
Apprendista Forumista
**
Offline Offline

Posts: 273

Tra il dire e il fare c'è distanza di hamming 2.


« Reply #18 on: 10-03-2009, 18:52:06 »

Bisogna ammettere che è un significato di toroidale un po' immaginato.

I "problemi traballanti" sono fin troppo frequenti. testate
Logged
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #19 on: 10-03-2009, 19:08:46 »

dalla posizione 4,4 si sposta di uno, praticamente su quale casella che ho nel disegno mi comparirà??
se si sposta a destra, andrà su v
se si sposta in basso andrà su d
(hai fatto bene a mettere le lettere, se ti dicevo 0,4 restavamo tutti col dubbio)

come lo snake, insomma
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #20 on: 10-03-2009, 19:17:03 »

Ah perfetto ora è chiaro, mentre per quanto riguarda l'altro esercizio, non so come generare la lunghezza casuale delle stringhe, dice da 5 a 8 caratteri, ma io la math random non la so fare così, l'ho sempre fatta da 1 a 10, da 1 a 6, come faccio tra 5 e 8?
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #21 on: 10-03-2009, 19:20:40 »

Hai già dato un'occhiata alla mia soluzione?

La Math.random() genera un numero tra 0 e 1, e tu la usi per generare numeri da 0 a 10. Se ci pensi, non c'è molta differenza con l'usarla per generare numeri tra 5 e 8
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #22 on: 10-03-2009, 19:27:30 »

Potrebbe essere...Math.random()*5+8 ??
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #23 on: 10-03-2009, 19:30:18 »

per [0,1[ intendo "un numero nell'intervallo tra 0 ed 1, 0 incluso, 1 escluso"

Math.random() = [0,1[
Math.random()*5 = [0,5[
Math.random()*5 + 8=[8,13[

Tra un po' c'arrivi, non temere =)
Ma fai le prove, fai prima.
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #24 on: 10-03-2009, 19:33:28 »

Math.random() *4+4.......... boh
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #25 on: 10-03-2009, 19:37:26 »

Math.random()*4 = [0,4[
Math.random()*4 + 4 = [4,8[

quando arrotondi, lo fai sempre per difetto
l'8 è escluso dall'intervallo, arrivi a 7.9periodico, che arrotondato fa 7

Math.random()*4 + 5 = [5,9[
(int)(Math.random()*4 + 5) = {5,6,7,8}
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #26 on: 10-03-2009, 19:42:11 »

E' giusto fare Math.random()*4+5
« Last Edit: 10-03-2009, 19:50:28 by guitarplaying » Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #27 on: 10-03-2009, 19:51:04 »

Ma perché non fai la prova?
E comunque te l'avevo già detto io, *4+5

Se moltiplichi per tre, quando arrotondi ottieni solo tre possibili output. A te ne servono quattro, ovvero i numeri 5,6,7,8

La moltiplicazione allarga il range dei numeri casuali, la somma lo trasla
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #28 on: 10-03-2009, 19:52:09 »

Si si si ho provato adesso...grazie mille della pazienza  pray  pray  pray
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #29 on: 11-03-2009, 09:45:21 »

Sempre su questo secondo esercizio ho dubbi su come generare le lettere casuali....per dire se la probabilità che esce 'p' è due terzi come faccio a scriverlo....per dire (int)(Math.random()*2/3)Huh?
Mi dareste un aiuto chiaro..perchè sennò...
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Pages: 1 [2] 3   Go Up
Print
Jump to: