Avatar billede proff Nybegynder
10. august 2004 - 19:06 Der er 9 kommentarer og
1 løsning

JavaScript / php random tal funktion.

Hej. Jeg søger hjælp til at få lavet en funktion som består af følgende:

En funktion der deler 200 op i 10 variabler - Samlede værdi af alle 10 variabler må ikke overstige 200, og jeg skal kunne sætte procent på hvor stor del der er chance for at der kommer flere tal i en variabel i stedet for andre..

Og den skal selvfølelig udtrække forskellige numre hver gang. Sådan der fkes, den ene gang kommer 9 i variabel 1 og næste gang hvis man er ekstrem heldig kommer der 17 i variabel 1! Og hvis jeg har sat variabel 1 til 91 og alle andre 9 variabler til 1% hver, så kommer næsten alle tal i variabel 1..

Forstår i hvad jeg mener :)?
På forhånd mange tak
Avatar billede proff Nybegynder
10. august 2004 - 19:07 #1
Jeg har virkelig brug for hjælp til denne, jeg har smidt 200 på bordet og håber virkelig der er en af jer kloge hoveder der vil kigge på det :)
Avatar billede proff Nybegynder
10. august 2004 - 20:31 #2
Er der slet ingen der kan hjælpe :(?
Avatar billede roenving Novice
11. august 2004 - 00:59 #3
Nej, den har jeg ikke forstået ?-)

Men et forslag til forståelse:

Du skal have produceret 10 tal, helst forskellige? hvis sum ikke må overstige 200 ...

Et andet forslag til forståelse:

Du skal have delt alle tal mellem 1 og 200 op i forskellige arrays, hvor der ikke nødvendigvis er lige mange i hver ...

-- hvilken vej er det, du vil ?-)
Avatar billede proff Nybegynder
11. august 2004 - 07:03 #4
Du skal have delt alle tal mellem 1 og 200 op i forskellige arrays, hvor der ikke nødvendigvis er lige mange i hver ...

Og hvis det er muligt skal jeg kunne vælge hvor stor sandsynlighed der kommer i et array frem for andre :)
Avatar billede roenving Novice
11. august 2004 - 10:57 #5
Det er ikke nogen særlig præcis chance, du kan angive, i det indtastede eksempel, ses det tydeligt, hvis du generer de ny arrays:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tomt dokument</title>
<meta name="keywords" content="søgeord adskilt af komma">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
function generer(f){
  var chance = new Array(),csum=0,tal,resultat = new Array(),txt="Array 1: ";
  for(i=0;10>i;i++){
    tal = f.elements['minInput'+(i+1)].value;
    if(isNaN(tal))return;
    chance[i] = +tal;
    csum += +tal;
  }
  if(csum==0)return;
  tal = 0;
  for(i=0;10>i;i++){
    tal += chance[i]/csum;
    chance[i] = tal;
   
    resultat[i] = new Array();
  }
  for(k=1;201>k;k++){
    tal = Math.random();
    //alert(chance[i]+"\n"+tal);
    for(i=0;10>i;i++){
      if(chance[i]>tal){
        resultat[i][resultat[i].length] = k;
        break;
      }
    }
  }
  for(i=0;10>i;i++){
    for(j=0;resultat[i].length>j;j++){
      txt += resultat[i][j] + ", ";
    }
    txt += "<br>Array "+(i+2)+":";
  }
  document.getElementById('minDiv').innerHTML = txt.replace(/<br>Array 11:/g,"");
}
</script>
</head>
<body>
<br>
<form id="minForm" name="minForm">
Chance var 1: <input id="minInput1" name="minInput1" type="text" value="91" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 2: <input id="minInput2" name="minInput2" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 3: <input id="minInput3" name="minInput3" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 4: <input id="minInput4" name="minInput4" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 5: <input id="minInput5" name="minInput5" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 6: <input id="minInput6" name="minInput6" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 7: <input id="minInput7" name="minInput7" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 8: <input id="minInput8" name="minInput8" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 9: <input id="minInput9" name="minInput9" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
Chance var 10: <input id="minInput10" name="minInput10" type="text" value="1" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="3">
<br>
<button name="button2" id="button2" onclick="generer(this.form);">Lav variablerne</button>

</form>
<br>
<br>

<div id="minDiv" style="width:500px;overflow:none;">Alle arrays</div>

</body>

</html>
Avatar billede proff Nybegynder
12. august 2004 - 17:36 #6
Tja, har kigget på det. Og det nu ikke helt det jeg skal bruge ;)
Altså.. Jeg er igang med et håndbold spil. Så kan man oprette en spiller. Med navn, osv. Og så kommer der random ting i mine felter ved hver spiller.. fkes i Skud kommer der: 3 og i aflevering: 12 osv osv osv..
Avatar billede roenving Novice
12. august 2004 - 17:50 #7
Nej, jeg gik sandelig også ud fra, at du ikke kunne bruge det direkte, men det skal jo vises, så du kan få en ide !-)

Men hvad havde du så tænkt dig skulle styre mål og afleveringer ?-)

Skulle det være sådan, at alle de spillere, som er nævnt i hver array skulle have det antal mål hhv. afleveringer ?o]
Avatar billede proff Nybegynder
12. august 2004 - 19:11 #8
Jeg vil lige vende tilbage senere, da jeg lige skal have bikset noget sammen sådan du kan se hvad jeg mener :)
Avatar billede proff Nybegynder
13. august 2004 - 14:03 #9
Hej igen ;o)
Altså jeg skal have lagt tilfældige tal i mine variabler..

<?
if(!isset($_SESSION["username"])) {
die("Du skal være logget ind for at bruge denne funktion!");

} else {

$Afslutning = "";
$Aflevering = "";
$Dribling = "";
$Takling = "";
$Teknik = "";
$Straffespark = "";
$Taktik = "";
$Reflekser= "";
$Teamplay = "";
$Makering = "";
$Mod = "";
$Indflydelelse = "";
$Udenbold = "";
$Acceleration = "";
$Potentiale = "";


mysql_query("INSERT INTO spillere (Navn,Afslutning,Aflevering,Dribling,Teknik,Takling,Straffespark,Taktik,Reflekser,Gamespirit,Makering,Mod,Indflydelse,Udenbold,Acceleration,Holdspil,Potentiale) VALUES('$navn','$Afslutning','$Aflevering','$Dribling','$Teknik','$Takling','$Straffespark','$Taktik','$Reflekser','$Gamespirit','$Makering','$Mod','$Indflydelelse','$Udenbold','$Acceleration','$Teamplay','$Potentiale')");
print "Din spiller $navn, er nu oprettet!";
}

?>

Og de skal tilsammen være under 200? Altså værdien af alle tal må ikke overstige 200, hvordan kan jeg gøre det :)?
Avatar billede proff Nybegynder
13. august 2004 - 16:37 #10
Jeg har selv fundet ud af det ;o
Jeg bruger php funktionen rand..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester