Simulazione del decadimento delle particelle
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <math.h>
using namespace std;
bool uno_su_N(int);
int main(){
srand(time(0));
// Parametri della simulazione:
const unsigned long int NUM_PARTICELLE = 800;
const unsigned long int PASSI = 1000;
// (quando prima di avere finito i passi non ci
// sono più particelle ci si ferma...)
// Questa è l'inverso della probabilità che nell'unità di tempo
// (= in un passo) una particella decada...
const int PROB_INVERSA = 40;
bool part_attive[NUM_PARTICELLE];
unsigned long int i,j;
// Questo contatore, inizialmente al massimo, tiene conto via
// via dei decadimenti che hanno luogo...
unsigned long quante_attive = NUM_PARTICELLE;
// Si impostano inizialmente tutte le particelle su "ancora presente"
(true)
for (j=0;j<NUM_PARTICELLE;j++) part_attive[j]=true;
cout << "Passo" << "\t" << "N_sp" << "\t" << "N_th" << endl;
cout << "------------------------" << endl;
for (i=1;i<=PASSI;i++){
// Particella per particella, se è il caso (calcolato
probabilisticamente)
// la si fa decadere. Se è già svanita, la si salta.
for (j=0;j<NUM_PARTICELLE;j++)
if (part_attive[j])
if (uno_su_N(PROB_INVERSA)){
part_attive[j]=false;
quante_attive--;
}
// Stampa del numero di particelle attive
cout << i << "\t" << quante_attive << "\t" << (unsigned long int)
(NUM_PARTICELLE*exp(-(i*1.0/PROB_INVERSA))) << endl;
// Si verifica se le particelle sono decadute tutte...
if (quante_attive<=0) break;
}
}
bool uno_su_N(int N){
int numero=rand() % N;
return (numero == 0);
// Un numero sarà zero (modulo N) in un caso su N...
}
Il decadimento radioattivo
Il decadimento radioattivo segue una legge esponenziale: ovvero, se a t=0 sono presenti N nuclei radioattivi instabili che possono decadere in nuclei stabili, al tempo t ne sono rimasti N(t) = N * exp(-r*t), dove r è l'inverso della vita media T, definita come il tempo necessario perché un campione radioattivo si riduca di e volte. Tale legge però è risultato di un processo stocastico: infatti, la probabilità che un nucleo decada, oltre ad essere scorrelata dagli altri nuclei, è scorrelata istante per istante.