Hey mannen..
Op deze mooie morgen zit ik met een klein probleem. Ik dacht dat het allemaal heel makkelijk zou zijn, maar blijkbaar niet.

Ik heb een array, deze array kan alle lengtes hebben. En bestaat uit :
<?
array('x','y','z');
?>
Maar kan ook zijn :

<?
array('v','w','x','y','z');
?>

Ik heb nu alle string mogelijkheden nodig die zon array kan produceren in alle volgordes : Bij de eerste array zou dat dus zijn :

x,y,z | x,z,y | y,x,z | y,z,x | z,x,y | z,y,x

Ik heb al aardig wat for loopje sgeprobeerd, maar krijg hem steeds net niet te pakken :(
Enige idee ? Thanks alvast



Dr schiet mij maar 1 ding te binnen.

WAAROM?

En als je het voor vergelijken wil doen, 1 keer opslaan, imploden zonder spatie en http://nl3.php.net/eregi gaan leren
Gelukkig zijn de meeste functies al redelijk bekend bij me en het is helaas ook niet voor vergelijken.
Het is voor een game voor kinderen, een rekengame.
Zij moeten eerst het aantal mogelijkheden raden (faculteit), dat is gelukkgi niet zo moeilijk te berekenen, daarna moeten ze alle mogelijkheden opschrijven.
Die check ik daarna dan tegen de oplossing van dit probleem ;)
okey ik geloof je , u lost me :P , (ondanks dat ik pro programmer ben (ik doe het voor mn werk , niet dat ik goed ben :P) ik heb niet zon verstand van wiskunde :)
Jacco schreef op 23.06.2009 10:24
okey ik geloof je , u lost me :P , (ondanks dat ik pro programmer ben (ik doe het voor mn werk , niet dat ik goed ben :P) ik heb niet zon verstand van wiskunde :)


Jij zit zeker de hele dag alleen koffie te leuten en te forummen :p
Als jij vrolijk word van dat denken ;)
Een voorbeeldje:
<?php
function faculteit($g) {
switch($g) {
case 1:
return 1;
case $g > 1:
return $g * faculteit($g-1);
default:
return false;
}
}


$aLetters = array('w', 'x', 'y', 'z');
$aSolutions = array();

$iSolutions = faculteit(count($aLetters));

while(count($aSolutions) != $iSolutions) {
shuffle($aLetters);
$sSolution = implode('', $aLetters);

if(!in_array($sSolution, $aSolutions)) {
$aSolutions[] = $sSolution;
}
}

sort($aSolutions);
echo '<pre>'.print_r($aSolutions, true).'</pre>';
?>
Blanche, had je die op de plank liggen of zag je het gewoon meteen.
Wat een uiterst simpele oplossing en EXACT wat ik nodig heb. Ik ga weer aa de koffie. Ontzettend bedankt Blanche. De kids zullen het heel erg waarderen!

Greetz Joep
ook overnagedacht wat er gebeurt als je bijvoorbeeld ipv 4 letters er 100 in propt?

Blanche schreef op 23.06.2009 10:36
Een voorbeeldje:
<?php
function faculteit($g) {
switch($g) {
case 1:
return 1;
case $g > 1:
return $g * faculteit($g-1);
default:
return false;
}
}


$aLetters = array('w', 'x', 'y', 'z');
$aSolutions = array();

$iSolutions = faculteit(count($aLetters));

while(count($aSolutions) != $iSolutions) {
shuffle($aLetters);
$sSolution = implode('', $aLetters);

if(!in_array($sSolution, $aSolutions)) {
$aSolutions[] = $sSolution;
}
}

sort($aSolutions);
echo '<pre>'.print_r($aSolutions, true).'</pre>';
?>


o.O
Niet over nagedacht, de grootste array die ik heb is 6 zover ik nu weet.
Deze werkt gewoon..

Het vullen van de array tot 20 values was idd een probleem voor mijn execution time of 30 seconds ;)

Reageren