Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Fondamenti di architettura e programmazione > Compitino Laboratorio martedì 25 novembre[Capra]
Pages (3): « 1 [2] 3 »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
magicorla
.amico.

User info:
Registered: Oct 2005
Posts: 32 (0.00 al dì)
Location: Vimercate (MI)
Corso: Comunicazione Digitale
Anno: boh
Time Online: 11:42:32 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by ViPah
emily per aiutarti fallo prima su carta, cioè pensa al ragionamento che fai nella tua testa e scrivilo.


math.random() restituisce un numero tra 0 e 1. Quindi moltiplicalo per 2008 e ti uscira un numero tra 0 e 2007.

metti questo in un do while o un for e fallo uscire dal ciclo solo quando l'anno riportato sarà tra 1920 e 2007.

Parti da questo!


ancora meglio:

classe random, crei un oggetto
next.int(88) ti restituisce un numero fra 0 e 87, ci sommi 1920 e il gioco è fatto

o con math.random moltiplichi per 87 (mi sembra) e sommi ancora 1920

Last edited by magicorla on 26-11-2008 at 12:14

26-11-2008 12:12
Click Here to See the Profile for magicorla Click here to Send magicorla a Private Message Find more posts by magicorla Add magicorla to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
pirata1
.amico.

User info:
Registered: Oct 2008
Posts: 27 (0.00 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: primo
Time Online: 22:35:58 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Grazie mille, ho provato a farli... All'inizio bisogna pensarci un po, ma nn son difficilissimi.
Un consiglio per il primo es. della data da estrarre:
int x = (int)((Math.random()*(2008-1920))+1920);

In questo modo, prendo il range da 1920 a 2007.
Grazie per aver messo il testo della prova :D

26-11-2008 16:22
Click Here to See the Profile for pirata1 Click here to Send pirata1 a Private Message Find more posts by pirata1 Add pirata1 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
ViPah
.arcimaestro.

User info:
Registered: Nov 2008
Posts: 404 (0.07 al dì)
Location: xD
Corso: =]
Anno:
Time Online: 1 Day, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

personalmente, mi sembra molto piu intuitivo moltiplicarlo per 2008 e fare un while...

26-11-2008 17:51
Click Here to See the Profile for ViPah Click here to Send ViPah a Private Message Visit ViPah's homepage! Find more posts by ViPah Add ViPah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Andrewz
.primate.

User info:
Registered: Sep 2008
Posts: 66 (0.01 al dì)
Location: Milano
Corso: ComDig
Anno: terzo
Time Online: 2 Days, 5:45:05: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

..peccato che con il while come dici tu è possibile (una probabilità remota) che non estragga mai una data nel range richiesto...inoltre il computer fatica in modo notevolmente maggiore in quanto deve attuare un ciclo fino a che non esce una data compresa nell'intervallo dovuto, cosa facilmente aggirabile con la linea di codice suggerita dagli altri.

Mi accodo ai sostenitori del (int)(Math.random()*88)+1920; :)

26-11-2008 20:39
Click Here to See the Profile for Andrewz Click here to Send Andrewz a Private Message Find more posts by Andrewz Add Andrewz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
pirata1
.amico.

User info:
Registered: Oct 2008
Posts: 27 (0.00 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: primo
Time Online: 22:35:58 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Andrewz
..peccato che con il while come dici tu è possibile (una probabilità remota) che non estragga mai una data nel range richiesto...inoltre il computer fatica in modo notevolmente maggiore in quanto deve attuare un ciclo fino a che non esce una data compresa nell'intervallo dovuto, cosa facilmente aggirabile con la linea di codice suggerita dagli altri.

Mi accodo ai sostenitori del (int)(Math.random()*88)+1920; :)

Hmm bo, nn ho ben capito :D
Pero vabbe mi sembrano simili, cmq lo provero :)

26-11-2008 21:06
Click Here to See the Profile for pirata1 Click here to Send pirata1 a Private Message Find more posts by pirata1 Add pirata1 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
ViPah
.arcimaestro.

User info:
Registered: Nov 2008
Posts: 404 (0.07 al dì)
Location: xD
Corso: =]
Anno:
Time Online: 1 Day, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

perchè secondo te il pc fa fatica a moltiplicare 2008 * 0<x<1? farà un milione di calcoli al secondo se ha un processore lento -.-''

26-11-2008 21:28
Click Here to See the Profile for ViPah Click here to Send ViPah a Private Message Visit ViPah's homepage! Find more posts by ViPah Add ViPah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Andrewz
.primate.

User info:
Registered: Sep 2008
Posts: 66 (0.01 al dì)
Location: Milano
Corso: ComDig
Anno: terzo
Time Online: 2 Days, 5:45:05: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

è diverso: se tu metti un ciclo while che ti calcola

int anno;
while (anno<1920){

anno=(Math.random()*2008);
}

il programma calcola n volte l'istruzione finchè non esce un numero compreso nell'intervallo che vuoi (in questo caso 1920-2007).Perciò il computer svolge l'istruzione n volte prima di trovare il numero che tu cerchi, contro la unica volta necessaria se si utilizza l'istruzione :
(Math.random()*88)+1920;.

Sono d'accordo che i computer di oggi sono molto veloci e di questo problema se ne possono fregare alla grande, però da un punto di vista di efficienza del codice è innegabile che eseguire una istruzione una volta è assolutamente più auspicabile che eseguirla almeno una volta.

Per concludere:le due soluzioni funzionano entrambe e a questi livelli di programmazione sono esattamente equivalenti, ma nel caso di un programma molto più complicato in cui il computer deve eseguire grandissime quantità di istruzioni non avrebbe tanto senso utilizzare la ripetizione di un gruppo di istruzioni per risolvere un problema per il quale ne occorrerebbe in realtà una sola !



Last edited by Andrewz on 26-11-2008 at 22:01

26-11-2008 21:53
Click Here to See the Profile for Andrewz Click here to Send Andrewz a Private Message Find more posts by Andrewz Add Andrewz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
ViPah
.arcimaestro.

User info:
Registered: Nov 2008
Posts: 404 (0.07 al dì)
Location: xD
Corso: =]
Anno:
Time Online: 1 Day, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Son d'accordo con te, ma il problema si sarebbe posto nel caso di calcoli abnormi, il primo milione di numeri primi o cose del genere...

27-11-2008 09:55
Click Here to See the Profile for ViPah Click here to Send ViPah a Private Message Visit ViPah's homepage! Find more posts by ViPah Add ViPah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Andrewz
.primate.

User info:
Registered: Sep 2008
Posts: 66 (0.01 al dì)
Location: Milano
Corso: ComDig
Anno: terzo
Time Online: 2 Days, 5:45:05: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ok siamo d'accordo però siamo d'accordo anche che più un codice è efficiente maggiore è la sua qualità :)

27-11-2008 10:01
Click Here to See the Profile for Andrewz Click here to Send Andrewz a Private Message Find more posts by Andrewz Add Andrewz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
magicorla
.amico.

User info:
Registered: Oct 2005
Posts: 32 (0.00 al dì)
Location: Vimercate (MI)
Corso: Comunicazione Digitale
Anno: boh
Time Online: 11:42:32 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by ViPah
Son d'accordo con te, ma il problema si sarebbe posto nel caso di calcoli abnormi, il primo milione di numeri primi o cose del genere...


guarda, ci hanno fatto capire piu volte anche a lezione che la cosa da fare è trovare l'algoritmo piu efficente possibile... (esempio dell'algoritmo di euclide per l'MCD mi pare)..


il tuo metodo si può paragonare a fare pari e dispari con un dado a 20 facce aspettando che esca 1 per il dispari, e 2 per il pari..scartando gli altri risultati... non è meglio interpretare anche gli altri? (appunto pari e dispari) :-D

in linea strettamente teorica fra l'altro l'algoritmo col while potrebbe anche non avere soluzione, o averla dopo qualche minuto....è vero che è statisticamente impossibile, ma non è da escludere... piu che altro perchè per analogia rischi di portarti un errore simile in programmi piu avanzati dove questo problema può saltare fuori


ti faccio un esempio, metti di voler applicare questo programma "lotteria" ad un asilo, quindi con bambini nati fra il 2002 e il 2004.
per il tuo ciclo WHILE ci sono solamente 3 soluzioni su 2004 possibilità. Non mi intendo di statistica, però se dovessimo estrare 10 bambini si rischia nell'ordine delle 8mila operazioni..o sbaglio?

Last edited by magicorla on 27-11-2008 at 11:19

27-11-2008 11:14
Click Here to See the Profile for magicorla Click here to Send magicorla a Private Message Find more posts by magicorla Add magicorla to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
ViPah
.arcimaestro.

User info:
Registered: Nov 2008
Posts: 404 (0.07 al dì)
Location: xD
Corso: =]
Anno:
Time Online: 1 Day, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Non può avere soluzione è una cagata, è un ipotesi remotissima che non si verificherà quasi mai. Al test del programma, appena schiacciavo "invio" andava, anche con 100 date mi restituiva subito l'output. Sull'efficienza del programma ok, ma con un codice e un problema di questa entità, le due soluzioni sono equivalenti...Tantè che alla fine ho usato anche io la tecnica del 88 che rendeva il codice piu leggibile, visto che mi era rimasto un poco di tempo

27-11-2008 11:23
Click Here to See the Profile for ViPah Click here to Send ViPah a Private Message Visit ViPah's homepage! Find more posts by ViPah Add ViPah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Andrewz
.primate.

User info:
Registered: Sep 2008
Posts: 66 (0.01 al dì)
Location: Milano
Corso: ComDig
Anno: terzo
Time Online: 2 Days, 5:45:05: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ahahah dai questa discussione sta durando da tanto e direi che va bene così, alla fine siamo un po tutti d'accordo vedo...

Piuttosto..chissà com'era il compitino di oggi!

27-11-2008 11:28
Click Here to See the Profile for Andrewz Click here to Send Andrewz a Private Message Find more posts by Andrewz Add Andrewz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
ViPah
.arcimaestro.

User info:
Registered: Nov 2008
Posts: 404 (0.07 al dì)
Location: xD
Corso: =]
Anno:
Time Online: 1 Day, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

hihihi, stasera sentiremo le bestemmie :D

27-11-2008 11:29
Click Here to See the Profile for ViPah Click here to Send ViPah a Private Message Visit ViPah's homepage! Find more posts by ViPah Add ViPah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
magicorla
.amico.

User info:
Registered: Oct 2005
Posts: 32 (0.00 al dì)
Location: Vimercate (MI)
Corso: Comunicazione Digitale
Anno: boh
Time Online: 11:42:32 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by ViPah
Non può avere soluzione è una cagata, è un ipotesi remotissima che non si verificherà quasi mai. Al test del programma, appena schiacciavo "invio" andava, anche con 100 date mi restituiva subito l'output. Sull'efficienza del programma ok, ma con un codice e un problema di questa entità, le due soluzioni sono equivalenti...Tantè che alla fine ho usato anche io la tecnica del 88 che rendeva il codice piu leggibile, visto che mi era rimasto un poco di tempo


ti ho scritto anche io che è STASTICAMENTE impossibile...non c'è bisogno di scrivere che è una cagata...dato che era un esempio tecnico

comunque so anche io che il tuo metodo è efficente, ma si sta ragionando su un fatto di "logica" e penso che piu avanti ci servirà molto rendersi conto al volo che fra i 2 la cosa migliore da fare sia estrarre un numero con l'88... perchè magari il tuo metodo oltre che essere efficente è piu leggibile per noi novizi (se lo leggo lo capisco al volo, mentre l'altro ci metterei un po di piu),però logicamente non è la cosa migliore da fare...

comunque dato che siamo tutti daccordo penso che possiamo anche finirla qui,senza stare a discutere troppo su una cosa che abbiamo capito entrambi! :-D

27-11-2008 11:37
Click Here to See the Profile for magicorla Click here to Send magicorla a Private Message Find more posts by magicorla Add magicorla to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
lik2006
.illuminato.

User info:
Registered: Oct 2008
Posts: 175 (0.03 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 10:25:53 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

qualcuno sa qualcosa del test di inglese?

http://www.ccdinf.unimi.it/it/avvisi/6113.html

27-11-2008 16:19
Click Here to See the Profile for lik2006 Click here to Send lik2006 a Private Message Find more posts by lik2006 Add lik2006 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 10:08.    Post New Thread    Post A Reply
Pages (3): « 1 [2] 3 »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.049 seconds (78.09% PHP - 21.91% MySQL) con 26 query.