Random Image Script
- tommya
- Graduate


- Inscription: Mar 17, 2004
- Messages: 221
- Loc: United Kingdom
- Status: Offline
Salut,
J'utilise le script suivant que j'ai repris ailleurs et l'adapter. Cependant, je tiens pour afficher 2 images aléatoires et pas seulement l'un comme cela ne. Je ne veux pas les 2 images aléatoires pour être toujours les mêmes. Quelqu'un peut-il aider les
J'utilise le script suivant que j'ai repris ailleurs et l'adapter. Cependant, je tiens pour afficher 2 images aléatoires et pas seulement l'un comme cela ne. Je ne veux pas les 2 images aléatoires pour être toujours les mêmes. Quelqu'un peut-il aider les
Code: [ Select ]
<SCRIPT LANGUAGE="JavaScript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if (ry==0)
ry=1
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
}
random_imglink()
//-->
</SCRIPT>
<NOSCRIPT><IMG SRC="images/8.jpg" BORDER=0"></NOSCRIPT>
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if (ry==0)
ry=1
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
}
random_imglink()
//-->
</SCRIPT>
<NOSCRIPT><IMG SRC="images/8.jpg" BORDER=0"></NOSCRIPT>
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- function random_imglink(){
- var myimages=new Array()
- myimages[1]="/images/1.jpg"
- myimages[2]="/images/2.jpg"
- myimages[3]="/images/3.jpg"
- myimages[4]="/images/4.jpg"
- myimages[5]="/images/5.jpg"
- myimages[6]="/images/6.jpg"
- myimages[7]="/images/7.jpg"
- myimages[8]="/images/8.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- if (ry==0)
- ry=1
- document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
- }
- random_imglink()
- //-->
- </SCRIPT>
- <NOSCRIPT><IMG SRC="images/8.jpg" BORDER=0"></NOSCRIPT>
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Septembre 15th, 2004, 1:19 pm
- lucassix
- Mastermind


- Inscription: Sep 13, 2004
- Messages: 2344
- Loc: Living in a VAN DOWN BY THE RIVER!
- Status: Offline
- neksus
- Mastermind


- Inscription: Sep 10, 2004
- Messages: 2194
- Loc: Canada
- Status: Offline
Heres un pour PHP:
son rapide et sale, mais itll faire le travail.
Oui je sais que cela pourrait être améliorée, mais beaucoup mieux haha im tired
Code: [ Select ]
<?php
// total number of images
$total = "8";
// file extension
$file_type = ".jpg";
// the first file (they must be in numerical order)
$start = "1";
// randomize
$random = mt_rand($start, $total);
// randomize another variable
$random2 = mt_rand($start + 1, $total);
// try and make them not different if they were
if($random2 == $random){
$random2 = mt_rand($start + 1, $total);
}
// get a filename from random
$image_name = $random . $file_type;
// make another (because you want 2)
$image_name2 = $random . $file_type;
echo "<img src=\"images/$image_name\" width=\"x\" height=\"x\"><img src=\"images/$image_name2\" width=\"x\" height=\"x\">";
?>
// total number of images
$total = "8";
// file extension
$file_type = ".jpg";
// the first file (they must be in numerical order)
$start = "1";
// randomize
$random = mt_rand($start, $total);
// randomize another variable
$random2 = mt_rand($start + 1, $total);
// try and make them not different if they were
if($random2 == $random){
$random2 = mt_rand($start + 1, $total);
}
// get a filename from random
$image_name = $random . $file_type;
// make another (because you want 2)
$image_name2 = $random . $file_type;
echo "<img src=\"images/$image_name\" width=\"x\" height=\"x\"><img src=\"images/$image_name2\" width=\"x\" height=\"x\">";
?>
- <?php
- // total number of images
- $total = "8";
- // file extension
- $file_type = ".jpg";
- // the first file (they must be in numerical order)
- $start = "1";
- // randomize
- $random = mt_rand($start, $total);
- // randomize another variable
- $random2 = mt_rand($start + 1, $total);
- // try and make them not different if they were
- if($random2 == $random){
- $random2 = mt_rand($start + 1, $total);
- }
- // get a filename from random
- $image_name = $random . $file_type;
- // make another (because you want 2)
- $image_name2 = $random . $file_type;
- echo "<img src=\"images/$image_name\" width=\"x\" height=\"x\"><img src=\"images/$image_name2\" width=\"x\" height=\"x\">";
- ?>
son rapide et sale, mais itll faire le travail.
Oui je sais que cela pourrait être améliorée, mais beaucoup mieux haha im tired
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13458
- Loc: Florida
- Status: Offline
Code: [ Select ]
<SCRIPT LANGUAGE="JavaScript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if(ry<1) ry++;
var ry2=Math.floor(Math.random()*myimages.length)
if(ry2<1) ry2++;
if(ry == ry2){ry>1 ? ry2-- : ry2++;}
//alert(ry + "|" + ry2);
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
document.write('<IMG SRC="'+myimages[ry2]+'" BORDER=0><p>')
}
random_imglink()
//-->
</SCRIPT>
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if(ry<1) ry++;
var ry2=Math.floor(Math.random()*myimages.length)
if(ry2<1) ry2++;
if(ry == ry2){ry>1 ? ry2-- : ry2++;}
//alert(ry + "|" + ry2);
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
document.write('<IMG SRC="'+myimages[ry2]+'" BORDER=0><p>')
}
random_imglink()
//-->
</SCRIPT>
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- function random_imglink(){
- var myimages=new Array()
- myimages[1]="/images/1.jpg"
- myimages[2]="/images/2.jpg"
- myimages[3]="/images/3.jpg"
- myimages[4]="/images/4.jpg"
- myimages[5]="/images/5.jpg"
- myimages[6]="/images/6.jpg"
- myimages[7]="/images/7.jpg"
- myimages[8]="/images/8.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- if(ry<1) ry++;
- var ry2=Math.floor(Math.random()*myimages.length)
- if(ry2<1) ry2++;
- if(ry == ry2){ry>1 ? ry2-- : ry2++;}
- //alert(ry + "|" + ry2);
- document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
- document.write('<IMG SRC="'+myimages[ry2]+'" BORDER=0><p>')
- }
- random_imglink()
- //-->
- </SCRIPT>
Plus simple est de donner la fonction de plus à faire. Juste besoin d'avoir le doc .. write () S & modification de la balise noscript mis à jour pour utiliser deux valeurs par défaut.
Je viens de double emploi avec la répartition au hasard, vérifier si les numéros ry sont les mêmes, si elles sont les mêmes vérifier s'ils sont supérieurs à 1, si elles sont supérieures à un knock 1 au large de ry2 else ajouter 1 à elle.
Strong with this one, the sudo is.
- Mas Sehguh
- Mastermind


- Inscription: Aoû 07, 2004
- Messages: 1853
- Status: Offline
Le problème avec cela est que le hasard n'est pas répartie uniformément, et il sera même pas une chance de frapper l'image le plus numérotées (au lieu le plus faible pour l'image numérotée obtiendrait frappé deux fois plus souvent).
Utilisez plutôt ceci:
Incidemment, on pouvait faire cela sans problème particulier un tableau d'URL, puisque les noms de fichiers eux-mêmes sont numérotés. Plus tard, ils pourraient ne pas être, bien que, ou qu'ils pourraient avoir des zéros, gardant ainsi le tableau est une bonne idée.
Utilisez plutôt ceci:
Code: [ Select ]
<script type="text/javascript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[0] = "/images/0.jpg"
myimages[1] = "/images/1.jpg"
myimages[2] = "/images/2.jpg"
myimages[3] = "/images/3.jpg"
myimages[4] = "/images/4.jpg"
myimages[5] = "/images/5.jpg"
myimages[6] = "/images/6.jpg"
myimages[7] = "/images/7.jpg"
var ry=Math.floor(Math.random()*myimages.length)
// if(ry<1) ry++; not needed because array is zero-based.
var rya=Math.floor(Math.random()*(myimages.length - 1))
// now this SECOND piece of code will pick a random number
// of length myimages.length - 1.
if(rya >= ry) rya++; //now increment rya if it needs it.
// even if rya is greater than ry, it still needs incrementation
// because rya needs to be evenly distributed across the
// myimages.length - 1 remaining options.
// document.write(ry + " | " + rya);
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
document.write('<IMG SRC="'+myimages[rya]+'" BORDER=0><p>')
}
random_imglink()
// -->
</script>
<!--
function random_imglink(){
var myimages=new Array()
myimages[0] = "/images/0.jpg"
myimages[1] = "/images/1.jpg"
myimages[2] = "/images/2.jpg"
myimages[3] = "/images/3.jpg"
myimages[4] = "/images/4.jpg"
myimages[5] = "/images/5.jpg"
myimages[6] = "/images/6.jpg"
myimages[7] = "/images/7.jpg"
var ry=Math.floor(Math.random()*myimages.length)
// if(ry<1) ry++; not needed because array is zero-based.
var rya=Math.floor(Math.random()*(myimages.length - 1))
// now this SECOND piece of code will pick a random number
// of length myimages.length - 1.
if(rya >= ry) rya++; //now increment rya if it needs it.
// even if rya is greater than ry, it still needs incrementation
// because rya needs to be evenly distributed across the
// myimages.length - 1 remaining options.
// document.write(ry + " | " + rya);
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
document.write('<IMG SRC="'+myimages[rya]+'" BORDER=0><p>')
}
random_imglink()
// -->
</script>
- <script type="text/javascript">
- <!--
- function random_imglink(){
- var myimages=new Array()
- myimages[0] = "/images/0.jpg"
- myimages[1] = "/images/1.jpg"
- myimages[2] = "/images/2.jpg"
- myimages[3] = "/images/3.jpg"
- myimages[4] = "/images/4.jpg"
- myimages[5] = "/images/5.jpg"
- myimages[6] = "/images/6.jpg"
- myimages[7] = "/images/7.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- // if(ry<1) ry++; not needed because array is zero-based.
- var rya=Math.floor(Math.random()*(myimages.length - 1))
- // now this SECOND piece of code will pick a random number
- // of length myimages.length - 1.
- if(rya >= ry) rya++; //now increment rya if it needs it.
- // even if rya is greater than ry, it still needs incrementation
- // because rya needs to be evenly distributed across the
- // myimages.length - 1 remaining options.
- // document.write(ry + " | " + rya);
- document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
- document.write('<IMG SRC="'+myimages[rya]+'" BORDER=0><p>')
- }
- random_imglink()
- // -->
- </script>
Incidemment, on pouvait faire cela sans problème particulier un tableau d'URL, puisque les noms de fichiers eux-mêmes sont numérotés. Plus tard, ils pourraient ne pas être, bien que, ou qu'ils pourraient avoir des zéros, gardant ainsi le tableau est une bonne idée.
- Scorpius
- Proficient


- Inscription: Mar 20, 2004
- Messages: 401
- Loc: Scorpion Hole
- Status: Offline
Essayez ceci:
Je pense que ce serait probablement préférable et plus aléatoire que les autres façons, même si vous avez deux tableaux, vous aurez toujours des images différentes.
Code: [ Select ]
<script type="text/javascript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[0] = "/images/0.jpg"
myimages[1] = "/images/1.jpg"
myimages[2] = "/images/2.jpg"
myimages[3] = "/images/3.jpg"
var myimagesa=new Array()
myimagesa[0] = "/images/4.jpg"
myimagesa[1] = "/images/5.jpg"
myimagesa[2] = "/images/6.jpg"
myimagesa[3] = "/images/7.jpg"
var ry=Math.floor(Math.random()*myimages.length)
var rya=Math.floor(Math.random()*(myimagesa.length))
// document.write(ry + " | " + rya);
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
document.write('<IMG SRC="'+myimagesa[rya]+'" BORDER=0><p>')
}
random_imglink()
// -->
</script>
<!--
function random_imglink(){
var myimages=new Array()
myimages[0] = "/images/0.jpg"
myimages[1] = "/images/1.jpg"
myimages[2] = "/images/2.jpg"
myimages[3] = "/images/3.jpg"
var myimagesa=new Array()
myimagesa[0] = "/images/4.jpg"
myimagesa[1] = "/images/5.jpg"
myimagesa[2] = "/images/6.jpg"
myimagesa[3] = "/images/7.jpg"
var ry=Math.floor(Math.random()*myimages.length)
var rya=Math.floor(Math.random()*(myimagesa.length))
// document.write(ry + " | " + rya);
document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
document.write('<IMG SRC="'+myimagesa[rya]+'" BORDER=0><p>')
}
random_imglink()
// -->
</script>
- <script type="text/javascript">
- <!--
- function random_imglink(){
- var myimages=new Array()
- myimages[0] = "/images/0.jpg"
- myimages[1] = "/images/1.jpg"
- myimages[2] = "/images/2.jpg"
- myimages[3] = "/images/3.jpg"
- var myimagesa=new Array()
- myimagesa[0] = "/images/4.jpg"
- myimagesa[1] = "/images/5.jpg"
- myimagesa[2] = "/images/6.jpg"
- myimagesa[3] = "/images/7.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- var rya=Math.floor(Math.random()*(myimagesa.length))
- // document.write(ry + " | " + rya);
- document.write('<IMG SRC="'+myimages[ry]+'" BORDER=0><p>')
- document.write('<IMG SRC="'+myimagesa[rya]+'" BORDER=0><p>')
- }
- random_imglink()
- // -->
- </script>
Je pense que ce serait probablement préférable et plus aléatoire que les autres façons, même si vous avez deux tableaux, vous aurez toujours des images différentes.
- Mas Sehguh
- Mastermind


- Inscription: Aoû 07, 2004
- Messages: 1853
- Status: Offline
En fait, il est moins aléatoire. Il existe 16 combinaisons possibles des images dans votre exemple, 28 dans mon exemple précédent (et dans le mien, la commande est trop aléatoire), et les deux ne pas avoir la même image deux fois.
Pourquoi empêcher 1.jpg et 2.jpg d'être montré à la fois?
Pourquoi empêcher 1.jpg et 2.jpg d'être montré à la fois?
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13458
- Loc: Florida
- Status: Offline
Quote:
Le problème avec cela est que le hasard n'est pas répartie uniformément, et il sera même pas une chance de frapper l'image le plus numérotées (au lieu le plus faible pour l'image numérotée obtiendrait frappé deux fois plus souvent).
Sam theres aucune différence entre les résultats de nos fonctions, les deux sont tout aussi aléatoire et ils participent tous deux à un maximum de 140 millisecondes à courir 500 fois sur un processeur 500MHz....
Code: [ Select ]
<html>
<head>
<style type="text/css">
body{background:#123456; color:#ffffff;}
</style>
</head>
<body>
<div style="position:absolute; left:100px;">
<script type="text/javascript">
<!--
function random_imglin(){
var myimages=new Array()
myimages[0] = "/images/0.jpg"
myimages[1] = "/images/1.jpg"
myimages[2] = "/images/2.jpg"
myimages[3] = "/images/3.jpg"
myimages[4] = "/images/4.jpg"
myimages[5] = "/images/5.jpg"
myimages[6] = "/images/6.jpg"
myimages[7] = "/images/7.jpg"
var ry=Math.floor(Math.random()*myimages.length)
var rya=Math.floor(Math.random()*(myimages.length - 1))
if(rya >= ry) rya++; //now increment rya if it needs it.
document.write(ry + "|" + rya + "<br>");
}
time = new Date().getMilliseconds();
for(var i=0; i<500; i++){random_imglin();}
document.write(new Date().getMilliseconds() - time);
// -->
</script>
</div>
<div style:position:absolute; left:0px;">
<SCRIPT LANGUAGE="JavaScript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if(ry<1) ry++;
var ry2=Math.floor(Math.random()*myimages.length)
if(ry2<1) ry2++;
if(ry == ry2){ry>1 ? ry2-- : ry2++;}
document.write(ry + "|" + ry2 + "<br>");
}
time = new Date().getMilliseconds();
for(var i=0; i<500; i++){random_imglink();}
document.write(new Date().getMilliseconds() - time);
//-->
</SCRIPT>
</div>
</body>
</html>
<head>
<style type="text/css">
body{background:#123456; color:#ffffff;}
</style>
</head>
<body>
<div style="position:absolute; left:100px;">
<script type="text/javascript">
<!--
function random_imglin(){
var myimages=new Array()
myimages[0] = "/images/0.jpg"
myimages[1] = "/images/1.jpg"
myimages[2] = "/images/2.jpg"
myimages[3] = "/images/3.jpg"
myimages[4] = "/images/4.jpg"
myimages[5] = "/images/5.jpg"
myimages[6] = "/images/6.jpg"
myimages[7] = "/images/7.jpg"
var ry=Math.floor(Math.random()*myimages.length)
var rya=Math.floor(Math.random()*(myimages.length - 1))
if(rya >= ry) rya++; //now increment rya if it needs it.
document.write(ry + "|" + rya + "<br>");
}
time = new Date().getMilliseconds();
for(var i=0; i<500; i++){random_imglin();}
document.write(new Date().getMilliseconds() - time);
// -->
</script>
</div>
<div style:position:absolute; left:0px;">
<SCRIPT LANGUAGE="JavaScript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if(ry<1) ry++;
var ry2=Math.floor(Math.random()*myimages.length)
if(ry2<1) ry2++;
if(ry == ry2){ry>1 ? ry2-- : ry2++;}
document.write(ry + "|" + ry2 + "<br>");
}
time = new Date().getMilliseconds();
for(var i=0; i<500; i++){random_imglink();}
document.write(new Date().getMilliseconds() - time);
//-->
</SCRIPT>
</div>
</body>
</html>
- <html>
- <head>
- <style type="text/css">
- body{background:#123456; color:#ffffff;}
- </style>
- </head>
- <body>
- <div style="position:absolute; left:100px;">
- <script type="text/javascript">
- <!--
- function random_imglin(){
- var myimages=new Array()
- myimages[0] = "/images/0.jpg"
- myimages[1] = "/images/1.jpg"
- myimages[2] = "/images/2.jpg"
- myimages[3] = "/images/3.jpg"
- myimages[4] = "/images/4.jpg"
- myimages[5] = "/images/5.jpg"
- myimages[6] = "/images/6.jpg"
- myimages[7] = "/images/7.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- var rya=Math.floor(Math.random()*(myimages.length - 1))
- if(rya >= ry) rya++; //now increment rya if it needs it.
- document.write(ry + "|" + rya + "<br>");
- }
- time = new Date().getMilliseconds();
- for(var i=0; i<500; i++){random_imglin();}
- document.write(new Date().getMilliseconds() - time);
- // -->
- </script>
- </div>
- <div style:position:absolute; left:0px;">
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- function random_imglink(){
- var myimages=new Array()
- myimages[1]="/images/1.jpg"
- myimages[2]="/images/2.jpg"
- myimages[3]="/images/3.jpg"
- myimages[4]="/images/4.jpg"
- myimages[5]="/images/5.jpg"
- myimages[6]="/images/6.jpg"
- myimages[7]="/images/7.jpg"
- myimages[8]="/images/8.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- if(ry<1) ry++;
- var ry2=Math.floor(Math.random()*myimages.length)
- if(ry2<1) ry2++;
- if(ry == ry2){ry>1 ? ry2-- : ry2++;}
- document.write(ry + "|" + ry2 + "<br>");
- }
- time = new Date().getMilliseconds();
- for(var i=0; i<500; i++){random_imglink();}
- document.write(new Date().getMilliseconds() - time);
- //-->
- </SCRIPT>
- </div>
- </body>
- </html>
Peut-être que vous devriez réellement tester somthing avant "remarqué un problème" avec elle
Strong with this one, the sudo is.
- Mas Sehguh
- Mastermind


- Inscription: Aoû 07, 2004
- Messages: 1853
- Status: Offline
En fait, c'est peut-être atteint la dernière image...
Toutefois, la vôtre pics myimages [1] deux fois plus souvent elle fait tomber le reste des images, parce que cette image se accompagnées par un nombre aléatoire dans l'intervalle [0,2), qui a une largeur de deux, tandis que les autres ont des gammes de [2,3), [3,4), qui ont des largeurs d'un seul. Ils ne sont pas «tout comme au hasard. «Si vous voulez le tester, fine:
Les résultats d'une exécution:
Remarquez comment une image est choisie environ 2 / 9 de l'époque, le reste Obtenir choisi 1 / 9 de l'époque, au lieu de chaque être 1 / 8.
Peut-être que vous devriez réellement tester quelque chose avant de les déclarer "tout comme aléatoire"
Toutefois, la vôtre pics myimages [1] deux fois plus souvent elle fait tomber le reste des images, parce que cette image se accompagnées par un nombre aléatoire dans l'intervalle [0,2), qui a une largeur de deux, tandis que les autres ont des gammes de [2,3), [3,4), qui ont des largeurs d'un seul. Ils ne sont pas «tout comme au hasard. «Si vous voulez le tester, fine:
Code: [ Select ]
<SCRIPT LANGUAGE="JavaScript">
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if(ry<1) ry++;
var ry2=Math.floor(Math.random()*myimages.length)
if(ry2<1) ry2++;
if(ry == ry2){ry>1 ? ry2-- : ry2++;}
document.write(ry + "|" + ry2 + "<br>");
return ry;
}
var indexsum = new Array()
for(var i = 1; i < 9; i++)
{
indexsum[i] = 0;
}
for(var i=0; i<10000; i++)
{
indexsum[random_imglink()]++;
}
for(var i = 1; i < 9; i++)
{
document.write("Index " + i + ": " + indexsum[i] + "<br>");
}
//-->
</SCRIPT>
<!--
function random_imglink(){
var myimages=new Array()
myimages[1]="/images/1.jpg"
myimages[2]="/images/2.jpg"
myimages[3]="/images/3.jpg"
myimages[4]="/images/4.jpg"
myimages[5]="/images/5.jpg"
myimages[6]="/images/6.jpg"
myimages[7]="/images/7.jpg"
myimages[8]="/images/8.jpg"
var ry=Math.floor(Math.random()*myimages.length)
if(ry<1) ry++;
var ry2=Math.floor(Math.random()*myimages.length)
if(ry2<1) ry2++;
if(ry == ry2){ry>1 ? ry2-- : ry2++;}
document.write(ry + "|" + ry2 + "<br>");
return ry;
}
var indexsum = new Array()
for(var i = 1; i < 9; i++)
{
indexsum[i] = 0;
}
for(var i=0; i<10000; i++)
{
indexsum[random_imglink()]++;
}
for(var i = 1; i < 9; i++)
{
document.write("Index " + i + ": " + indexsum[i] + "<br>");
}
//-->
</SCRIPT>
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- function random_imglink(){
- var myimages=new Array()
- myimages[1]="/images/1.jpg"
- myimages[2]="/images/2.jpg"
- myimages[3]="/images/3.jpg"
- myimages[4]="/images/4.jpg"
- myimages[5]="/images/5.jpg"
- myimages[6]="/images/6.jpg"
- myimages[7]="/images/7.jpg"
- myimages[8]="/images/8.jpg"
- var ry=Math.floor(Math.random()*myimages.length)
- if(ry<1) ry++;
- var ry2=Math.floor(Math.random()*myimages.length)
- if(ry2<1) ry2++;
- if(ry == ry2){ry>1 ? ry2-- : ry2++;}
- document.write(ry + "|" + ry2 + "<br>");
- return ry;
- }
- var indexsum = new Array()
- for(var i = 1; i < 9; i++)
- {
- indexsum[i] = 0;
- }
- for(var i=0; i<10000; i++)
- {
- indexsum[random_imglink()]++;
- }
- for(var i = 1; i < 9; i++)
- {
- document.write("Index " + i + ": " + indexsum[i] + "<br>");
- }
- //-->
- </SCRIPT>
Les résultats d'une exécution:
Code: [ Select ]
Index 1: 2259
Index 2: 1095
Index 3: 1093
Index 4: 1059
Index 5: 1085
Index 6: 1134
Index 7: 1090
Index 8: 1185
Index 2: 1095
Index 3: 1093
Index 4: 1059
Index 5: 1085
Index 6: 1134
Index 7: 1090
Index 8: 1185
- Index 1: 2259
- Index 2: 1095
- Index 3: 1093
- Index 4: 1059
- Index 5: 1085
- Index 6: 1134
- Index 7: 1090
- Index 8: 1185
Remarquez comment une image est choisie environ 2 / 9 de l'époque, le reste Obtenir choisi 1 / 9 de l'époque, au lieu de chaque être 1 / 8.
Peut-être que vous devriez réellement tester quelque chose avant de les déclarer "tout comme aléatoire"
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13458
- Loc: Florida
- Status: Offline
- DY123
- Born


- Inscription: Jan 04, 2011
- Messages: 1
- Status: Offline
Salut,
Je suis tombé sur un vieux duscussion sur plusieurs images aléatoires.
programming-forum/random-image-script-t31615.html
Dans ce que vous avez écrit du code pour afficher 2 images. ry et rya.
Je voudrais ajouter un ryb tiers.
Ive a ajouté à votre code et tout semble fonctionner correctement, mais de temps en temps je reçois une répétition des images. ry et ryb sera le même.
Je pense que lorsque j'ai besoin de résoudre ce problème est dans cette ligne:
if (> = rya ry) rya + +;
Ive fait ce que je sais est faux:
if (> ryb ry = | |> = ryb rya) ryb + +;
Vous avez des suggestions?
Merci
Je suis tombé sur un vieux duscussion sur plusieurs images aléatoires.
programming-forum/random-image-script-t31615.html
Dans ce que vous avez écrit du code pour afficher 2 images. ry et rya.
Je voudrais ajouter un ryb tiers.
Ive a ajouté à votre code et tout semble fonctionner correctement, mais de temps en temps je reçois une répétition des images. ry et ryb sera le même.
Je pense que lorsque j'ai besoin de résoudre ce problème est dans cette ligne:
if (> = rya ry) rya + +;
Ive fait ce que je sais est faux:
if (> ryb ry = | |> = ryb rya) ryb + +;
Vous avez des suggestions?
Merci
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 11 messages
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 99 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
