Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Divertirsi un po' con Java
Scritto da Davide Panceri il 08-11-2011 ore 07:49
Parallel Studio XE
Ci sono alcuni argomenti che è indispensabile conoscere, come ad esempio i fondamenti della programmazione, o alcuni concetti di matematica, magari sotto forma di equazioni, ma a volte non è chiaro se sia indispensabile, utile o produttivo (in senso ampio, ovvero capace di portare frutti) conoscere per davvero un argomento, averne sentito parlare, o semplicemente fare sì con la testa al momento giusto.

Probabilmente gli aspetti divertenti o insoliti di un linguaggio, come ad esempio Java, potrebbero rientrare agevolmente nella prima categoria, e non ci si dovrebbe limitare a usarli come argomento folkloristico o di propaganda in favore del linguaggio stesso, anche se non è detto che l'utilità pratica debba necessariamente saltar fuori in una situazione reale.

Per esempio, pare che esistano sequenze casuali o random più regolari di altre, o almeno così sembra considerando il risultato di questa istruzione:
  1. Random random = new Random(441287210);
  2.     for(int i=0;i<10;i++)
  3.     {
  4.         System.out.print(random.nextInt(10)+" ");
  5.     }
Provare per credere: il passaggio al costruttore del numero 441287210 produce una sequenza di dieci cifre 1, cosa che non accade se si sostituisse ad esempio l'ultimo 0 con un 9. Dunque, parafrasando Orwell, "tutti i casuali sono uguali, ma alcuni sono più uguali degli altri". Cercando con Google, si troveranno in Rete alcuni nomi e facce di chi ha ripreso la fonte originaria di questa curiosità. Peccato, personalmente avrei preferito trovare la prossima cinquina sulla ruota nazionale.

Qualcosa di analogo succede se si usa, nella stessa situazione, il numero -6732303926L: in questo caso, succede che vengano stampate le cifre da 0 a 9, ovviamente in ordine crescente. Chissà se è possibile invertire l'ordinamento, in che modo, e come si arriva a trovare questi numeri magici, che portano, nell'ultima segnalazione, a costruire addirittura, sempre usando la classe Random, una stringa (pseudo) casuale, che ricorda molto da vicino quella che si trova nelle prime pagine dello storico manuale di Kernighan e Ritchie.

La segnalazione si chiude con una breve sitografia, nella quale sono menzionate le fonti di queste segnalazioni, all'interno delle quali si trova anche una motivazione, credo valida, per non arrendersi alla logica del cosa serve: capire il funzionamento del linguaggio aiuta a scrivere codice più semplice e veloce. Il caso in questione riguarda una linea di codice piuttosto astrusa, e il numero intero che ne deriva:
  1. int i = (byte) + (char) - (int) + (long) - 1;
Lascio la risposta alla curiosità dei lettori.
Precedente: JustPaste.It, editor online gratuito
Successiva: Minibloq, un ambiente di programmazione visuale per Arduino
Intervento di Enrico Guglielmi a.k.a. s599382 del 09-11-2011 ore 01:20, Roma (RM)
Plebeo
Plebeo
(1 intervento)
Iscritto il 09-11-2011
Mi sono divertito a creare una semplicissima applicazione per i miei amici che gli facesse vedere il 'fattaccio random' senza stare a creare un nuovo progetto per 3 righe di codice. La posto anche qui, in app per mac, jar eseguibile e zip progetto. ;)

Applicazione (mac osx): dl.dropbox.com/u/19878628/ThatsRandom.app.zip
Jar eseguibile: dl.dropbox.com/u/19878628/RandomGen.jar
Progetto java: dl.dropbox.com/u/19878628/RandomGen.zip
Intervento di Davide Panceri a.k.a. davidepanceri del 09-11-2011 ore 21:40, Milano (MI)
Barone
Barone
(232 interventi)
Iscritto il 13-09-2004
interessante... direi che interpreta in modo semplice ma elegante l'idea appunto del divertimento
s599382 ha scritto:
Mi sono divertito a creare una semplicissima applicazione per i miei amici che gli facesse vedere il 'fattaccio random' senza stare a creare un nuovo progetto per 3 righe di codice. La posto anche qui, in app per mac, jar eseguibile e zip progetto. ;)

Applicazione (mac osx): dl.dropbox.com/u/19878628/ThatsRandom.app.zip
Jar eseguibile: dl.dropbox.com/u/19878628/RandomGen.jar
Progetto java: dl.dropbox.com/u/19878628/RandomGen.zip
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.547 secondi.