Ouuuuuula!!! j'adore (pas les maths) je m'y met tout de suite et des que je finis je t'envoi le résultat (approche et code) :)
Bonjour / Bonsoir,
j'ai une question peu commune à vous soumettre : comment placer des des objets HTML, par exemple des balises génériques <div></div> en spirale.
Je ne sais pas s'il y a des gens assez passionnés par les mathématiques dans ce forum, mais peu importe.
J'ai plusieurs fonctions sur les nombres premiers dans un fichier. En bref, elles me permettent de déterminer quels sont les nombres premiers entre 0 et 1000000.
Je souhaiterais les afficher par le biais d'une spirale d'Ulam ( voir ici).
(Vous pouvez d'ailleurs voir qu'une des images a été générée par GD en PHP mais je souhaiterais procéder autrement question de 'lourdeur')
J'utilise le langage PHP couplé au HTML 5 (de préférence mais je saurais adapter).
Auriez-vous une idée ?
Je précise que je souhaite que la grille contenant cette spirale puisse s'adapter en fonction de la longueur de l'intervalle étudié.
Je pense sincèrement que c'est assez complexe.
Je vous remercie d'avance de toute l'aide que vous pourrez m'apporter,
Cordialement,
@ntonin.
5 réponses
Merci beaucoup j'ai déjà fait quelques ébauches de formules mais je dois avouer que je n'ai qu'à peine progressé. =)
Magnifique! merci a toi bien je t'explique le principe Pardon mais je parle avec la logique analyste et non mathématicien Ta spirale c'est un tableau qui contient des nombre qui vont de 1 à X pour le test j'ai fait en sortes que ce soit toujours un carré (1,4,9,16,25...) donc au debut ou je demande un nombre
<form method="GET">
<label for="nombre">Taille de la spirale</label><input id="nombre" name="nombre" if echo> class="span1"/>
</form><?php if(isset($_GET['nombre'])):
function testpremier($test){
$nbdiv=1;
for($i=3; $i<=$test; $i++)
{
$reste=$test%$i;
if($reste==0)
$nbdiv++;
}
return (($nbdiv == 2)?true:false);
}
// Notre nombre de calcul (désolé la spirale ne sera que carré mais on peut trés facilement change en x et y)
$nb=$_GET['nombre'];
//on cherche la position du 1 dans le tableau
$y=floor(($nb+1)/2+0.5);
$x=floor(($nb+1)/2);
$position=array();
$direction=3; // les direction sont 0-> d pour droite, 1->h pour haut, 2->g pour gauche et 3->b pour bas bref je suis la spirale $pas=0;// le pas change quand je change de direction entre d ou g $count=1; $position[$x][$y]=$count; while($count
Spirale d'Ulam
La taille choisit est <?php echo
Le centre est à la position:<?php echo
<style>
table {
background-color: transparent;
border-collapse: collapse;
border-spacing: 0;
max-width: 100%;
}
.table {
margin-bottom: 20px;
width: 100%;
}
.table th, .table td {
border-top: 1px solid #CCCCCC;
line-height: 20px;
padding: 8px;
text-align: left;
vertical-align: top;
}
.table-bordered {
-moz-border-bottom-colors: none;
-moz-border-image: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
border-collapse: separate;
border-color: #CCCCCC #CCCCCC #CCCCCC -moz-use-text-color;
border-radius: 0 0 0 0;
border-style: solid solid solid none;
border-width: 1px 1px 1px 0;
}
table.spirale td{
width:<?php echo 99.99/
height:<?php echo 500/$nb; ?>px;
padding:2px;
text-align:center;
vertical-align:middle;
}
table.spirale td.centre{
background-color:#bd362f;
color:#fff;
}
table.spirale td.prem{
background-color:#2f96b4;
color:#fff;
}
</style>
<?php for(
echo "<tr>"; for(
<?php endif; ?>
[/code] Voila en cas de soucis je suis la :)
Wow.
Merci beaucoup.
Je teste ça dès que j'aurai le temps (eh oui les devoirs me rattrapent...)
Edit : j'ai testé et ça marche très bien je vais l'adapter et l'optimiser et je t'enverrais tout ça si tu le souhaites, avec mes fonctions sur les nombres premiers.
Vraiment merci =)
Je t'envoie mon adresse-mail par MP pour te donner mes fonctions sur les nombres premiers si tu veux =).
Edit : je viens de voir qu'il n'y a pas de messages privés...
Je te donnerais mon adresse e-mail à un heure précise =)
18h pile ce soir te conviendrait ?
Je mets résolu le temps que je teste ;)
ca ira :) merci quand même :)