/* Fichier permettant de générer un contenu aléatoire pour le fichier .stc, c'est à dire les étoiles distantes dans Celestia. */ 7,1=>6,2=>5,3=>4,4=>3,5=>2,6=>1,7=>0,8=>-1,9=>-2,10=>-3,11=>-4,12=>-5); $proba_classe=explode(",",$_POST['proba_classe']); $proba_temperature=explode(",",$_POST['proba_temperature']); $proba_classe_lum=explode(",",$_POST['proba_classe_lum']); $nombre_objet=$_POST['nombre_objet']; $decimales=$_POST['decimales']; $decimales_exp=6; $lambda=$_POST['lambda']; $separateur="
"; function cumul_proba($proba) { $proba_cumulee=array($proba[0]); for($i=1;$i=$rand_classe) { $spectral_type.=$classe[$i]; break; } } $rand_temperature=mt_rand(1,$proba_cumu_temperature[count($proba_cumu_temperature)-1]); for($i=0;$i=$rand_temperature) { $spectral_type.=$temperature[$i]; break; } } $rand_classe_lum=mt_rand(1,$proba_cumu_classe_lum[count($proba_cumu_classe_lum)-1]); for($i=0;$i=$rand_classe_lum) { $spectral_type.=$classe_lum[$i]; break; } } return $spectral_type; } function generation_magnitude($proba_cumu_magnitude,$magnitude,$decimales) { $rand_magnitude=mt_rand(1,$proba_cumu_magnitude[count($proba_cumu_magnitude)-1]); for($i=0;$i=$rand_magnitude) { $intervalle_choisi=$magnitude[$i]; return random($intervalle_choisi,$intervalle_choisi-1,$decimales); } } } $proba_cumu_classe=cumul_proba($proba_classe); $proba_cumu_temperature=cumul_proba($proba_temperature); $proba_cumu_classe_lum=cumul_proba($proba_classe_lum); $proba_magnitude=generation_proba_magnitude($lambda,$decimales_exp); $proba_cumu_magnitude=cumul_proba($proba_magnitude); if(count($proba_classe)!=count($classe)) { echo "Nombre de probabilités pour les classes différent du nombre de classes. Arrêt de la génération"; echo $separateur; exit; } if(count($proba_temperature)!=count($temperature)) { echo "Nombre de probabilités pour les températures différent du nombre de températures. Arrêt de la génération"; echo $separateur; exit; } if(count($proba_classe_lum)!=count($classe_lum)) { echo "Nombre de probabilités pour les classes lumineuses différent du nombre de classes lumineuses. Arrêt de la génération"; echo $separateur; exit; } $output=""; if($_POST['affichage_loi']) { $nb_magnitude=count($proba_magnitude); for($i=1;$i<$nb_magnitude;$i++) { $glouglou=$magnitude[$i]-1; echo 'Pour l\'intervalle ['.$magnitude[$i].';.'.$glouglou.'], il y a '.$proba_magnitude[$i]/$proba_magnitude[$nb_magnitude-1].' objets.'.$separateur; } } for($i=1;$i<$nombre_objet;$i++) { $nom_etoile=$i; $ra=random(0,360,$decimales); $dec=random(-180,180,$decimales); $distance=random(4,16000,$decimales); $spectral_type=generation_spectral_type($classe,$temperature,$classe_lum,$proba_cumu_classe,$proba_cumu_temperature,$proba_cumu_classe_lum); $app_mag=generation_magnitude($proba_cumu_magnitude,$magnitude,$decimales); $output.='"'.$nom_etoile.'" {'; $output.=$separateur; $output.='RA '.$ra; $output.=$separateur; $output.='Dec '.$dec; $output.=$separateur; $output.='Distance '.$distance; $output.=$separateur; $output.='SpectralType "'.$spectral_type.'"'; $output.=$separateur; $output.='AppMag '.$app_mag; $output.=$separateur; $output.='}'; $output.=$separateur; } echo $output; } else { header("Content-type: text/html; charset=UTF-8"); ?>

Pour les probabilités, indiquez les probabilités individuelles sous la forme p1,p2,p3...,pn dans l'ordre suivant :
O, B, A, F, G, K, M , L, T, R, N, S, C, WC, WN, D, Q, X pour les classes
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 pour les températures
I-a0, I-a, Ib, II, III, IV, V, "Vi,sd", D pour les classes lumineuses

Nombre d'objets céleste à calculer :
Nombre de décimales à garder :
Probabilités pour les classes :
Probabilités pour les températures :
Probabilités pour les classes lumineuses :
Paramètre de la loi exponentielle pour la répartition (plus il est élevée, plus la probabilité d'avoir une magnitude élevée est importante)
Afficher la répartition de la loi exponentielle ?