abonnement Unibet Coolblue Bitvavo
pi_31760191
quote:
Op vrijdag 28 oktober 2005 17:55 schreef Roonaan het volgende:
64 tekens

[ code verwijderd ]

Hij kan efficienter als je die nummers bij 0 kan laten starten tot 702. Alleen moeten dan de modulussen anders.
Als je de { en } weghaalt zit je al op 62 tekens

Als je dan nog <br> gebruikt ipv <br/> zit je op 61.

Als laatste nog <? gebruiken in plaats van <?php en je zit al op 58. Dan kan je ook nog de spatie tussen <? $i= weghalen, dat wordt dan <?$i= en je komt op 57.

Als je dan ook nog de ; aan het einde weghaald zit je op 56.

[ Bericht 6% gewijzigd door HuHu op 28-10-2005 18:09:10 ]
pi_31760251
Maar dan nog kom je niet aan 52 ;-)
pi_31760333
- Edit dan maar -

[ Bericht 49% gewijzigd door Roonaan op 29-10-2005 11:08:53 ]
pi_31760426
quote:
Op vrijdag 28 oktober 2005 18:08 schreef Roonaan het volgende:

[ code verwijderd ]
57.

55 als je de sluittags weghaalt.
1<?while($i++<702)echo$i%27?chr(65+($i-1)%26):'<br>';


Zo zit je op 52.
pi_31760616
Jups, tot die conclusie was ik ook gekomen. Same as yapf dus.

Maar met wat bit operations, kan het dan niet korter?

-r-
pi_31760770
[Centraal]PHP - Golf wedstrijd
Daar kunnen jullie lekker verder spelen met jullie Golf, dan blijft dit topic een beetje schoon

-edit-
Oeps, ik zie dat ik dat topic onder de naam van mn vriendin heb gepost
pi_31760863
Hmm, zo is de lol er wel een beetje af nu er complete code gepost is
Op phpfreakz wordt gevraagd geen code te posten, doe 't dan ook niet hier.

Ik zit zelf op 49.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31760954
ach, vorige keer was iedereen dol op het samenwerken.
pi_31761146
Samenwerken is ok, maar er stond volgens mij geen complete code.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas vrijdag 28 oktober 2005 @ 19:22:51 #135
1972 Swetsenegger
Egocentrische Narcist
pi_31762297
Code posten is niet echt de bedoeling eigenlijk
Overigens snap ik ';m nog niet ook

en de code is 51 karakters, geen 52

-edit- je kan niet tellen swets..
  FOK!-Schrikkelbaas vrijdag 28 oktober 2005 @ 19:47:59 #136
1972 Swetsenegger
Egocentrische Narcist
pi_31762908
quote:
Op vrijdag 28 oktober 2005 18:27 schreef ikke_ook het volgende:
[Centraal]PHP - Golf wedstrijd
Daar kunnen jullie lekker verder spelen met jullie Golf, dan blijft dit topic een beetje schoon

-edit-
Oeps, ik zie dat ik dat topic onder de naam van mn vriendin heb gepost
Waarom zou het een beetje schoon moeten blijven
Kan je erg veel van leren.
pi_31764623
Hallo,

Ben op dit moment bezig met een stukje random te genereren arrays oftwel het volgende idee dat vooral Sop heeft aangedragen.

Ik heb een paar mensen in een lijst ziten en sommige mense mogen sommige mensen kiezen en sommige niet. Nou heb ik eventjes een voorbeeld uit de hand gemaakt. Nu heb ik ieder persoon voorzien van een array met daarin de mogelijke mensen die ze kunnen kiezen. Echter krijg ik steeds errors met wat ik ook probeer..

zie code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?

$arr = array(11 => array(13, 14, 15, 16, 17),
             12 => array(13, 14, 15, 16, 17),
             13 => array(11, 12, 16, 17),
             14 => array(11, 12, 17),
             15 => array(11, 12, 16, 17),
             16 => array(11, 12, 13, 14, 15, 17),
             17 => array(11, 12, 13, 14, 15, 16));
             
foreach ($arr as $id => $narr)
{
    $tmpArr = $narr;
    
    if (isSet($remove) && is_array($remove))
    {
        foreach ($remove as $x => $verwijderkey)
        {
            foreach ($tmpArr as $xx => $value)
            {
                if ($tmpArr[$xx] == $verwijderkey)
                {
                    unset ($tmpArr[$xx]);
                }
            }
        }
    }
    
    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }
    
    $remove[] = $code;
    
    echo 'gebruiker ' . $id . ' heeft gebruiker ' . $code . ' getrokken <br>';
}

var_dump($remove);

?>


denk dat ik weer te diep doorspace ennuh zou volgens mij wel 1000x beter kunnen. Iemand een idee? als je het niet snapt probeer ik het nog wel wat beter uit te leggen
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31765858
Voor het begrip is het nuttiger als je gewoon namen gebruikt in plaats van nummers om gebruikers te identificeren.

Daarnaast een keuze maken of je je variabelen in het engels of het nederlands programmeerd, tevens is er de vraag wat $narr doet.

Een aanpak die je zou kunnen kiezen is om de array to sorteren op het aantal mensen dat iemand in zijn lijstje heeft. Zoals de opzet nu is (of ik mis iets) is het zo dat er iemand over zou blijven die niemand kan kiezen?

pi_31777689
Dus je ziet het liever met de namen? maar dan blijft het principe toch gelijk?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31802558
Ik heb het nu even zo gedaan.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?

$arr = array("eric" => array("tess", "joop", "kees", "loes", "joke"),
             "marc" => array("tess", "joop", "kees", "loes", "joke"),
             "tess" => array("eric", "marc", "loes", "joke"),
             "joop" => array("eric", "marc", "joke"),
             "kees" => array("eric", "marc", "loes", "joke"),
             "loes" => array("eric", "marc", "tess", "joop", "kees", "joke"),
             "joke" => array("eric", "marc", "tess", "joop", "kees", "loes"));

foreach ($arr as $id => $tmpArr)
{
    if (isSet($remove) && is_array($remove))
    {
        foreach ($remove as $x => $verwijderkey)
        {
            foreach ($tmpArr as $xx => $value)
            {
                if ($tmpArr[$xx] == $verwijderkey)
                {
                    unset ($tmpArr[$xx]);
                }
            }
        }
    }

    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }

    $remove[] = $code;

    echo 'gebruiker ' . $id . ' heeft gebruiker ' . $code . ' getrokken <br>';
}

var_dump($remove);

?>



en kreeg na veel F5en het volgende te zien

1
2
3
4
5
6
7
8
gebruiker eric heeft gebruiker joop getrokken 
gebruiker marc heeft gebruiker tess getrokken 
gebruiker tess heeft gebruiker joke getrokken 
gebruiker joop heeft gebruiker eric getrokken 
gebruiker kees heeft gebruiker marc getrokken 
gebruiker loes heeft gebruiker kees getrokken 
gebruiker joke heeft gebruiker loes getrokken 
array(7) { [0]=> string(4) "joop" [1]=> string(4) "tess" [2]=> string(4) "joke" [3]=> string(4) "eric" [4]=> string(4) "marc" [5]=> string(4) "kees" [6]=> string(4) "loes" } 


want veelal zag ik dit soort uitkomsten..

1
2
3
4
5
6
7
8
9
10
11
12
gebruiker eric heeft gebruiker joke getrokken 
gebruiker marc heeft gebruiker joop getrokken 
gebruiker tess heeft gebruiker eric getrokken 
gebruiker joop heeft gebruiker marc getrokken 
gebruiker kees heeft gebruiker loes getrokken 

Notice: Undefined offset: 1 in d:\www\usersort.php on line 29
gebruiker loes heeft gebruiker getrokken 

Notice: Undefined offset: 0 in d:\www\usersort.php on line 29
gebruiker joke heeft gebruiker getrokken 
array(7) { [0]=> string(4) "joke" [1]=> string(4) "joop" [2]=> string(4) "eric" [3]=> string(4) "marc" [4]=> string(4) "loes" [5]=> NULL [6]=> NULL } 


en nu zie je dus dat op regel 29 een error komt, oftewel de volgende regel.

1        $code = $tmpArr[rand(0, count($tmpArr)-1)];


maar ik check of de array reeds groter is dan 1 item, dan zou je toch verwachten dat dat goed gaat

en als ik de regel (28) dus boven de code voorzie van > 2 dan krijg ik steeds mindervaak een error maar alsnog soms een error in regel 29

Help me!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31803171
en als je $code = $tmpVar[array_rand($tmpVar)] doet?

also, $tmpVar is meer dan een tijdelijke var natuurlijk. Deze heeft wel degelijk een bepaalde betekenis en significante inhoudt ondanks het tijdelijke karakter. Beter om in het vervolg dan ook een variabele naam te kiezen die wat zegt over de intentie van de variabele dan haar levensduur.

-r-
pi_31803362
quote:
Op zondag 30 oktober 2005 10:03 schreef Chandler het volgende:

maar ik check of de array reeds groter is dan 1 item, dan zou je toch verwachten dat dat goed gaat

en als ik de regel (28) dus boven de code voorzie van > 2 dan krijg ik steeds mindervaak een error maar alsnog soms een error in regel 29

Help me!
Met je rand() ding ga je op zoek naar een key tussen 0 en het aantal keys. Da's leuk, maar als je als keys de getallen 1,3,5,7 overhoudt dan heb je 4 keys en een kans van 50% dat je een niet-bestaande key tussen 0 en 3 pakt.
pi_31804196
idd, heb reeds array_rand toegevoegd en dat is deels een oplossing want om de zoveel keer krijg ik alsnog een error

ipv
1
2
3
4
5
6
7
8
9
10
11
    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }


de oplossing van roonaan en een andere gebruiker

1$code = $tmpVar[array_rand($tmpVar)];


maar dan nog krijg ik wel eens een error op lijn 27 oftewel bovenstaande code maar dat zal komen omdat ik dan een lege array heb...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31804488
1
2
3
4
5
6
7
8
9
10
11
    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }


Dat gaat idd mis bij een lege array. Oplossing is simpel, zorgen dat je niets doet als de array leeg is.

1
2
3
4
5
6
7
8
9
    if (count($tmpArr) > 0)
    {
        $code = $tmpArr[array_rand($tmpArr)];
    }
    else
    {
        echo 'Geen keuze beschikbaar voor '.$id.'<br>';
        break;
    }
pi_31805513
True, ik denk dat ik maar ff een routine ga maken dat wanneer alles goed is de gebruiker door gaat en anders overnieuw moet kiezen (automatisch natuurlijk )
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31805554
Maar goed, ik zit nu met een andere test... weer zelf bedacht...

Ga nu het idee omdraaien, wil nu inplaats van de wel mogelijkheden in een array te zetten de niet mogelijkheden in een array zetten

Dus ga weer hard aan het coden want ben niet zo ziek meer dus heb weer wat hersens beschikbaar...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31807210
Hier is de volgende.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?

$arr = array("eric" => array("eric", "marc"),
             "marc" => array("marc", "eric"),
             "tess" => array("tess", "joop", "kees"),
             "joop" => array("joop", "tess", "kees", "loes"),
             "kees" => array("kees", "tess", "joop"),
             "loes" => array("loes"),
             "joke" => array("joke"));

// build a second list.
foreach ($arr as $name => $null)
{
    $nArr[] = $name;
}

foreach ($arr as $id => $userRemove)
{
    $userChoose = $nArr;
    
    // verwijder mensen uit lijst :)
    foreach ($userRemove as $xid => $name)
    {
        foreach ($userChoose as $userid => $username)
        {
            if (isSet($userRemove[$userid]) && $userRemove[$userid] == $name)
            {
                unset($userChoose[$userid]);
            }
        }
    }

    // verwijder reeds geselecteerde mensen uit lijst :)
    if (isSet($userSelected) && is_array($userSelected))
    {
        foreach ($userSelected as $xxid => $name)
        {
            foreach ($userChoose as $uID => $tmp)
            {
                if (isSet($userChoose[$uID]) && $userChoose[$uID] == $name)
                {
                    unset($userChoose[$uID]);
                }
            }
        }
    }
    

    $code = $userChoose[array_rand($userChoose)];

    $userSelected[$id] = $code;

    echo 'gebruiker ' . $id . ' heeft gebruiker ' . $code . ' getrokken <br>';


}

var_dump($userSelected);

?>


echter zit het blijkbaar niet goed in elkaar want krijg bij iedere keuze fouten te zien en snap niet waar de fouten zitten?

OMG ben er nu al ruim een uur mee bezig geweest om te bugtesten iemand een idee?

oftwel uitkomst

1
2
3
4
5
6
7
8
9
10
gebruiker eric heeft gebruiker tess getrokken 
gebruiker marc heeft gebruiker kees getrokken 
gebruiker tess heeft gebruiker loes getrokken 
gebruiker joop heeft gebruiker joke getrokken 
gebruiker kees heeft gebruiker joop getrokken 
gebruiker loes heeft gebruiker marc getrokken 

Notice: Undefined index: in d:\www\usersort.php on line 49
gebruiker joke heeft gebruiker getrokken 
array(7) { ["eric"]=> string(4) "tess" ["marc"]=> string(4) "kees" ["tess"]=> string(4) "loes" ["joop"]=> string(4) "joke" ["kees"]=> string(4) "joop" ["loes"]=> string(4) "marc" ["joke"]=> NULL } 


The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31814231
Wat krijg je als je

$code = $userChoose[array_rand($userChoose)];

$userSelected[$id] = $code;

IN
$userSelected[$id] = $userChoose[array_rand($userChoose)];

veranderd?
pi_31814665
quote:
Op zondag 30 oktober 2005 17:32 schreef Darkomen het volgende:
Wat krijg je als je

$code = $userChoose[array_rand($userChoose)];

$userSelected[$id] = $code;

IN
$userSelected[$id] = $userChoose[array_rand($userChoose)];

veranderd?
Dan krijg je dat de variabele $code niet te gebruiken is bij het echo-statement even verderop
pi_31824906
Is het niet nuttiger om eerst de mensen te sorteren op het kleinst aantal mensen die ze mogen trekken, om te voorkomen dat ze op een gegeven moment niemand kunnen trekken, omdat die reeds getrokken zijn door andere, die in eerste instantie meer opties hadden?

-r-
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')