martedì, ottobre 31, 2006

Esercitazione di venerdì 27

Ho pensato che forse a qualcuno sarebbe stato utile rivedere un 'riassunto' dell'ultima esercitazione.. purtroppo non ho avuto molto tempo, così questo codice che vi posto è poco più di quello fatto in laboratorio (cioè: stampa un istogramma 'numerico' normalizzato rispetto all' 'altezza' della colonna più alta lavorando con una pfd arbitraria (nel codice ne ho incluse due, che ho dovuto definire perchè (nel caso di y=cosx+1) non erano funzioni di math.h o perchè (nel caso di y=x^2) non erano definite come funzioni di una sola variabile)). In particolare, non ho risolto il problema dell'estremo superiore del codominio della distribuzione (mentre, per quanto riguarda l'estremo inferiore, si usa sempre zero (anche se mi rendo conto che questo potrebbe generare qualche trascurabile incongruenza per pfd identicamente nulle in qualche punto, per via di come ho definito la condizione di ciclo in randFunc)).
Sperando di non aver fatto troppe stupidaggini, ho aggirato la questione del moltiplicare per 'quasi uno' facendo in modo che randFlat generi numeri nel chiuso e non nel semiaperto.
Se c'è qualcosa di sbagliato o incomprensibile fatevi sentire. Ci vediamo giovedì..


PS: cavoli. Non riesco a incollare direttamente qua sotto il codice. Che vergogna. Uso due immagini.

mercoledì, ottobre 25, 2006

Visualizzare un istogramma


Ok, avete scritto una funzione per generare numeri casuali con una distrubuzione arbitraria (ad esempio con il metodo di reiezione). Ma come fate a capire se avete scritto davvero una cosa sensata? Provate a generare un campione di questi numeri casuali e provate a guardare come si distribuiscono! Ad esempio visualizzando un (rozzo) istogramma come quello che visualizza questo codice!

lunedì, ottobre 23, 2006

soluzione esercizio 3a

Questa può andare come soluzione dell'esercizio 3a? (e così avete capito anche qual è la sintassi per passare una funzione come argomento di una funzione...)
Ma se questa funzione-argomento è una probabilità, l'estremo inferiore (miny) non dovrebbe essere per forza zero? Funziona dunque lo stesso, l'algoritmo proposto? (c'è da aggiustare qualcosa, per quella questione di moltiplicare per quasi-uno il valore massimo della probabilità?)

Domanda da 100 punti: come faccio ad evitare di passare anche gli estremi del codominio della funzione di probabilità?

soluzioni esercizio 3

Avete provato a risolvere l'esercizio 3? Che ne dite di questa soluzione? e di questa?
Perchè nel generare y non ho usato semplicemente max_p, ma l'ho moltiplicato per quasi-uno?

C/C++ IDE per Windows

Un ambiente di sviluppo integrato (IDE) per programmare in C/C++ sotto windows è Dev-C++, che potete scaricare gratuitamente al seguente indirizzo:

http://www.bloodshed.net/dev/devcpp.html

NB Sotto windows, i programmi che scrivete vengono fatti girare in una finestra stile MS-DOS che viene aperta contingentemente quando lanciate il vostro eseguibile e chiusa immediatamente al termine dello stesso; in generale questo impedisce, nella maggior parte dei casi, di poter controllare l'output. Un piccolo accorgimento è sufficiente per mantenere la finestra aperta (e poterla chiudere con un invio): nel main, prima dell'ultima riga di uscita dal programma

return 0;


è sufficiente chiedere all'utente di inserire il valore di una variabile, così che il programma non risulti "davvero" terminato che quando l'utente non prema per un'ultima volta il tasto invio. Ad esempio, basta aggiungere le seguenti due righe:

char esci;

std::cin >> esci;


venerdì, ottobre 20, 2006

prima lezione

Riportiamo del materiale che, in qualche modo, riproduce quello visto nella prima lezione introduttiva: uno striminzito promemoria per l'input/output in C/C++, e una parziale riproduzione delle slide viste a lezione sulla funzione rand().

Probabilità e caso

Riportiamo, nello spazio degli approfondimenti (trovate il link nella colonna a destra, in alto), alcune brevi considerazioni sul concetto di probabilità. Per quanto riguarda un corso di programmazione, queste note vorrebbero essere una premessa all'uso (frequente) del concetto di numero casuale, così come verrà illustrato a lezione. L'inevitabile riferimento al concetto di (in)determinismo per sistemi dinamici non apparirà troppo fuori luogo, essendo questo un corso di laurea in Fisica.

Benvenuti

Questo blog e' inteso come uno spazio di confronto pubblico per voi studenti del corso di Laboratorio di Informatica per la Fisica II del corso di laurea in Fisica dell'Universita' di Milano-Bicocca. Con, in più, la possibilita' di interazione anche con i docenti.
Potrete iscrivervi, postare i vostri dubbi, le vostre domande, e le risposte alle domande e ai dubbi che altri hanno posto.
Buon lavoro (reciproco)!