####################################################################################################################################### # # # V I S U A L I S A T I O N P O L A I R E D E S N O M B R E S P R E M I E R S : # # # # # # Author of '$xiirv/.PRIM.I1.1.$U' : # # # # Jean-Francois COLONNA (LACTAMME, 20220103140027). # # # ####################################################################################################################################### $Z setParam _____NPremiers 16 $Z setParam _____NDiviseurs 16 $Z # On notera qu'il est preferable que '$_____NDiviseurs' soit un carre afin de pouvoir # $Z # calculer la valeur de '$NoMbRe_HV' plus loin... # $Z SETParam _____RandomWalk $NEXIST $Z # Parametre introduit le 20220107114159... # $Z SETParam _____CumulPhi $NEXIST $Z # Parametre introduit le 20220107114159... # $Z SETParam _____FRayon 1 $Z setParam _____RayonA 0.004 $Z setParam _____Rho 0.50 $Z # Parametre introduit le 20220107114159... # $Z setParam _____Z0 0 $Z # Parametre introduit le 20220107114159... # $Z setParam _____ZN 0 $Z setParam _____ParticulePara2 "$K_VIDE" $Z # Parametre introduit le 20220107114159... # $Z setParam _____NiveauA $GRIS_2 $Z _____include(_____xiirk/.SYRA.C1.1._____U) $Z if ($_____RandomWalk == $EXIST) then $Z # Test introduit le 20220107114159... # $Z if ($_____CumulPhi == $NEXIST) then $Z set CuMuLoUPas=$xrv/neutre$X $Z else $Z set CuMuLoUPas=$xrv/accumule.01$X $Z # Cas ou l'on va cumuler les 'Phi's successifs... # $Z endif $Z else $Z endif $Z FilSTmpB FNoMbReS_PrEmIeRs $Z set NoMbRe_HV=`calculINS sqrt($_____NDiviseurs)` $Z set index0=1 $Z $xci/valeurs_Goldbach$X \ $Z p=$index0 d=$_____NPremiers \ $Z editer_nombres_premiers=VRAI \ $Z calculer_decompositions=FAUX \ $Z >> $FNoMbReS_PrEmIeRs $Z # Liste des nombres premiers utiles... # $Z set LiStE_PrEmIeRs=`$CA $FNoMbReS_PrEmIeRs | $HEA -$_____NDiviseurs` $Z set DeRnIeR_PrEmIeR=`$CA $FNoMbReS_PrEmIeRs | $TAI -1` $Z set PaRaMeTrEs="$K_VIDE" $Z set PaRaMeTrEs="$PaRaMeTrEs"" premiere=$index0" $Z set PaRaMeTrEs="$PaRaMeTrEs"" derniere=$_____NDiviseurs" $Z set LNuMeRo=`$xci/nombres$X $PaRaMeTrEs` $Z set _____images=$xTV/PRIM.I1 $Z set LeGeNdE="$K_VIDE" $Z set index=$index0 $Z while ($index <= $_____NDiviseurs) $Z set NuMeRo=$LNuMeRo[$index] $Z set PrEmIeR_CoUrAnT=$LiStE_PrEmIeRs[$index] $Z @ PrEmIeR_CoUrAnT_m1 = $PrEmIeR_CoUrAnT - 1 $Z # N'oublions pas que le reste maximal ($PrEmIeR_CoUrAnT_m1) est egal au diviseur # $Z # ($PrEmIeR_CoUrAnT) moins 1. # $Z FilSTmpB FCoOrD $Z # Le 'FilSTmpE' est dans 'v $xiirk/.SYRA.C1.3.$U FilSTmpE..FCoOrD'... # $Z if ($_____RandomWalk == $NEXIST) then $Z # Test introduit le 20220107114159... # $Z $xrv/RESZ.11$X \ $Z ne=$_____NPremiers \ $Z fichier1=$FNoMbReS_PrEmIeRs \ $Z fichier2=$PrEmIeR_CoUrAnT | \ $Z $xrv/SCAL.11$X \ $Z ne=0 \ $Z fichierX== \ $Z fichierA=$PrEmIeR_CoUrAnT_m1 \ $Z fichierN=$dpi \ $Z > $FCoOrD.PHI $Z $xci/valeurs_inte$X p=$index0 d=$_____NPremiers \ $Z vD=$pis2 vA=$pis2 \ $Z lineaire=VRAI \ $Z > $FCoOrD.THETA $Z $xci/valeurs_inte$X p=$index0 d=$_____NPremiers \ $Z vD=0 vA=$_____FRayon \ $Z lineaire=VRAI \ $Z > $FCoOrD.RHO $Z $xci/valeurs_inte$X p=$index0 d=$_____NPremiers \ $Z vD=$BLANC vA=$NOIR_PLANCHER \ $Z lineaire=VRAI \ $Z entier=VRAI \ $Z > $FCoOrD$NIVEAU $Z set Nparts=$_____NPremiers $Z set _____ImageR=$_____images.$NuMeRo #20220107114159____:$Z _____include(_____xiirk/.SYRA.C1.1._____U) # $Z _____include(_____xiirk/.SYRA.C1.3._____U) $Z else $Z set _XYZ=0 $Z echo $_XYZ \ $Z > $FCoOrD$COORD_X $Z echo $_XYZ \ $Z > $FCoOrD$COORD_Y $Z FilSTmpB FiLePhI $Z $xrv/RESZ.11$X \ $Z ne=$_____NPremiers \ $Z fichier1=$FNoMbReS_PrEmIeRs \ $Z fichier2=$PrEmIeR_CoUrAnT | \ $Z $xrv/SCAL.11$X \ $Z ne=0 \ $Z fichierX== \ $Z fichierA=$PrEmIeR_CoUrAnT_m1 \ $Z fichierN=$dpi \ $Z >> $FiLePhI $Z $xrv/RPT_XYZ.01$X ne=$_____NPremiers \ $Z LISTE_RHO=$_____Rho \ $Z LISTE_THETA=$pis2 \ $Z LISTE_PHI=$FiLePhI \ $Z px=1 py=0 pz=0 | \ $Z $xrv/accumule.01$X ne=0 \ $Z fichier== \ $Z >> $FCoOrD$COORD_X $Z $xrv/RPT_XYZ.01$X ne=$_____NPremiers \ $Z LISTE_RHO=$_____Rho \ $Z LISTE_THETA=$pis2 \ $Z LISTE_PHI=$FiLePhI \ $Z px=0 py=1 pz=0 | \ $Z $xrv/accumule.01$X ne=0 \ $Z fichier== \ $Z >> $FCoOrD$COORD_Y $Z FilSTmpE FiLePhI $Z @ NPoInTs = $_____NPremiers + 1 $Z $xci/valeurs_inte$X premiere=1 derniere=$NPoInTs \ $Z vD=$_____Z0 vA=$_____ZN \ $Z lineaire=VRAI \ $Z > $FCoOrD$COORD_Z $Z $xci/valeurs_inte$X premiere=1 derniere=$NPoInTs \ $Z vD=$NOIR_PLANCHER vA=$BLANC \ $Z lineaire=VRAI \ $Z entiers=VRAI \ $Z > $FCoOrD$NIVEAU $Z set ArGuMeNtS="$K_VIDE" $Z set ArGuMeNtS="$ArGuMeNtS"" AXYZ=1 BXYZ=0" $Z set ArGuMeNtS="$ArGuMeNtS"" Lz=1000" $Z set ArGuMeNtS="$ArGuMeNtS"" ZOOM=$_____Zoom" $Z set ArGuMeNtS="$ArGuMeNtS"" ROTATION_OX=0" $Z set ArGuMeNtS="$ArGuMeNtS"" ROTATION_OY=0" $Z set ArGuMeNtS="$ArGuMeNtS"" ROTATION_OZ=0" $Z set ArGuMeNtS="$ArGuMeNtS"" N_au_carre=FAUX" $Z set ArGuMeNtS="$ArGuMeNtS"" editer_extrema_hors=FAUX" $Z set ArGuMeNtS="$ArGuMeNtS"" emeni=FAUX" $Z set ArGuMeNtS="$ArGuMeNtS"" $_____ParticulePara2" $Z set ArGuMeNtS="$ArGuMeNtS"" chiffres=0" $Z $xrv/particule.10$X npoints=$NPoInTs \ $Z LISTE_X=$FCoOrD$COORD_X \ $Z LISTE_Y=$FCoOrD$COORD_Y \ $Z LISTE_Z=$FCoOrD$COORD_Z \ $Z isoles=FAUX chainer=VRAI \ $Z ajuster_points=VRAI equidistance=VRAI \ $Z distance_minimale=$_____DistanceMinimale \ $Z Vrayon=$_____Rayon \ $Z LISTE_NIVEAU=$FCoOrD$NIVEAU \ $Z p=$_____Palette \ $Z $ArGuMeNtS \ $Z R=$_____images.$NuMeRo \ $Z $formatI $Z endif $Z set LeGeNdE="$LeGeNdE""$PrEmIeR_CoUrAnT/$DeRnIeR_PrEmIeR" $Z @ ReStE = $index % $NoMbRe_HV $Z if ($ReStE == 0) then $Z set LeGeNdE="$LeGeNdE""\n" $Z else $Z set LeGeNdE="$LeGeNdE"" " $Z endif $Z @ index = $index + 1 $Z end $Z FilSTmpE FNoMbReS_PrEmIeRs $Z execRVB $xci/accumule.01$X \ $Z A=$_____images. \ $Z postfixe=%s \ $Z premiere=$index0 \ $Z derniere=$_____NDiviseurs \ $Z interpolation_lineaire=VRAI \ $Z normaliser=VRAI \ $Z maximum=VRAI \ $Z R=$_____animation%s \ $Z $formatI $Z if ($_____RandomWalk == $NEXIST) then $Z # Test introduit le 20220107132548... # $Z set index=$index0 $Z while ($index <= $_____NDiviseurs) $Z set NuMeRo=$LNuMeRo[$index] $Z set PrEmIeR_CoUrAnT=$LiStE_PrEmIeRs[$index] $Z FilSTmpB FCoOrDoNnEeSA $Z set LPhiA=`$xci/valeurs_inte$X p=$index0 d=$PrEmIeR_CoUrAnT lineaire=VRAI vD=0 vA=$dpi` $Z set indexa=1 $Z while ($indexa <= $PrEmIeR_CoUrAnT) $Z echo "0\n1" | \ $Z $xrv/duplique.01$X \ $Z ne=0 \ $Z fichier== \ $Z exemplaires=1 \ $Z >>! $FCoOrDoNnEeSA.RHO $Z echo $pis2 | \ $Z $xrv/duplique.01$X \ $Z ne=0 \ $Z fichier== \ $Z exemplaires=2 \ $Z >>! $FCoOrDoNnEeSA.THETA $Z echo $LPhiA[$indexa] | \ $Z $xrv/duplique.01$X \ $Z ne=0 \ $Z fichier== \ $Z exemplaires=2 \ $Z >>! $FCoOrDoNnEeSA.PHI $Z echo $_____RayonA | \ $Z $xrv/duplique.01$X \ $Z ne=0 \ $Z fichier== \ $Z exemplaires=2 \ $Z >>! $FCoOrDoNnEeSA$RAYON $Z @ indexa = $indexa + 1 $Z end $Z set NPoInTsN=`$CA $FCoOrDoNnEeSA.RHO | $WCl` $Z set PaRaMs="$K_VIDE" $Z set PaRaMs="$PaRaMs"" np=1" $Z set PaRaMs="$PaRaMs"" spheriques=VRAI" $Z set PaRaMs="$PaRaMs"" AXYZ=1 BXYZ=0" $Z set PaRaMs="$PaRaMs"" p=$_____Palette" $Z set PaRaMs="$PaRaMs"" editer_extrema_hors=FAUX" $Z set PaRaMs="$PaRaMs"" Lz=1000 ZOOM=0.98" $Z # On utilise "ZOOM=0.98" et non pas "ZOOM=1" afin que deux axes horizontaux ou verticaux # $Z # voisins ne semblent pas "monolithiques"... # $Z set PaRaMs="$PaRaMs"" ROTATION_OX=0" $Z set PaRaMs="$PaRaMs"" ROTATION_OY=0" $Z set PaRaMs="$PaRaMs"" ROTATION_OZ=0" $Z set PaRaMs="$PaRaMs"" isoles=FAUX chainer=FAUX" $Z set PaRaMs="$PaRaMs"" ajuster_points=VRAI" $Z set PaRaMs="$PaRaMs"" equidistance=VRAI" $Z set PaRaMs="$PaRaMs"" dm=$_____DistanceMinimale" $Z set PaRaMs="$PaRaMs"" couronne=2" $Z set PaRaMs="$PaRaMs"" RVB=VRAI" $Z set PaRaMs="$PaRaMs"" chiffres=0" $Z $xrv/particule.10$X \ $Z npoints=$NPoInTsN \ $Z $PaRaMs \ $Z LISTE_RHO=$FCoOrDoNnEeSA.RHO \ $Z LISTE_THETA=$FCoOrDoNnEeSA.THETA \ $Z LISTE_PHI=$FCoOrDoNnEeSA.PHI \ $Z LISTE_Z=$_____ZN \ $Z p== \ $Z LISTE_ROUGE=$_____NiveauA \ $Z LISTE_VERTE=$_____NiveauA \ $Z LISTE_BLEUE=$_____NiveauA \ $Z LISTE_RAYON=$FCoOrDoNnEeSA$RAYON \ $Z grossissement=1 \ $Z R=$xTV/AXES \ $Z $formatI $Z # Le "p==" est destine a faire prendre en compte {LISTE_ROUGE=,LISTE_VERTE=,LISTE_BLEUE=}... # $Z FilSTmpE FCoOrDoNnEeSA $Z execRVB $xci/cache$X \ $Z A=$xTV/AXES%s \ $Z M=$_____images.$NuMeRo%s \ $Z R=$_____images.$NuMeRo%s \ $Z $formatI $Z @ index = $index + 1 $Z end $Z else $Z endif $Z set NChIfFrEs=`GetParam $xci/nombres$X chiffres` $Z execRVB $xci/regroupe.02$Z \ $Z $_____images. \ $Z $_____animation.$NoMbRe_HV"x"$NoMbRe_HV%s \ $Z $index0 1 \ $Z $NoMbRe_HV $NoMbRe_HV \ $Z "%s" \ $Z '$K_QD$formatR_Sdu$K_QD' \ $Z $NChIfFrEs \ $Z FAUX \ $Z FAUX \ $Z VRAI $Z saut $Z echo "$LeGeNdE" | \ $Z $AC $Z saut $Z # Edition des differents parametres (introduite le 20220106100859)... #