Vind de kortste route...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Kumkwat Trender

Kumkwat Trender

21/01/2009 21:33:00
Quote Anchor link
Hoi iedereen,

ik zat weer eens challenges te doen totdat ik een best wel lastige challenge tegen kwam.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#########################################
S       #         #     #     #         #
####### # # ##### ### # # ### ####### # #
#   #   # # #   #   # # # # #   #     # #
# ### ##### ### ### # # # # ### # # #####
#   #     # #     #   # # #       # #   #
### ##### # # ### ##### # ########### # #
#     #   # #   #     # # #       #   # #
# ##### ### ### # ##### # # ##### # ### #
# #     #   #   # #     # #   #   #   # #
# # ##### # # ### # ##### ### # ### ### #
#   #   # # #   # #   #     # # #   #   #
# ##### # # # # # ### ### ### # # ### # #
# #   #   # # # #   #   #   # #     # # #
# # # ##### # # ### ### # # # ####### # #
# # #     # # #   #   # # #   #   #   # #
# # ##### # # ### ##### ####### # # ### #
#   #       #   #               #   #   F
#########################################

Als het goed is afgebeeld zie je hierboven een plategrondje.
zie deze plaatje:
Afbeelding
Ik moet bij S beginnen en bij F eindigen (kortste route uiteraad).

hoe het werkt:

#########
S+++++# #
#####+# #
#_____+++F
#########

De plus teken laat het weggetje zien.
code word: 111213141525353637
gescheiden: 11 12 13 14 15 25 35 36 37
uitleg: 11 betekent eigenlijk rij 1, kolom 1

kunnen jullie me helpen, een script of een uitleg geven hoe ik dit probleem het beste aan kan pakken?
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
PHP hulp

PHP hulp

24/04/2024 08:11:38
 
Gerben G

Gerben G

21/01/2009 21:38:00
Quote Anchor link
Je kunt kijken naar:
A* http://nl.wikipedia.org/wiki/A*
Dijkstra http://nl.wikipedia.org/wiki/Kortstepadalgoritme

Als je met Wiskunde de grafentheorie gehad heb, dan is het wel te implementeren. http://nl.wikipedia.org/wiki/Grafentheorie

Edit
Ik zou trouwens voor Dijkstra gaan, omdat die makkelijker te implementeren is.
Gewijzigd op 01/01/1970 01:00:00 door Gerben G
 
TJVB tvb

TJVB tvb

21/01/2009 21:39:00
Quote Anchor link
Voor het berekenen van het kortste pad is er het Dijkstra algoritme Je moet daarvoor wel zien dat je de afbeelding om kunt zetten in een gerichte graaf.
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 22:26:00
Quote Anchor link
ow ja, ik zit in havo 5 ;)
Want ik heb het echt 3 tot 5 keer doorgelezen hoe dat dijkstra algoritme werkt maar ik snap er geen enne hol van.
heb je misschien minder universiteits niveau misschien? :P
 
- SanThe -

- SanThe -

21/01/2009 22:28:00
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 22:30:00
Quote Anchor link
dat deed je zeker handmatig ? :P
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
- SanThe -

- SanThe -

21/01/2009 22:31:00
Quote Anchor link
Peter schreef op 21.01.2009 22:30:
dat deed je zeker met de hand ? :P

Nee, scriptje.
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 22:31:00
Quote Anchor link
xD,
mag ik dat scriptje zien a.u.b.?
 
- SanThe -

- SanThe -

21/01/2009 22:33:00
Quote Anchor link
Het is in principe heel dom. BruteForce.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
61
62
63
64
65
66
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

$array=array('*****************************************',
             'S       *         *     *     *         *',
             '******* * * ***** *** * * *** ******* * *',
             '*   *   * * *   *   * * * * *   *     * *',
             '* *** ***** *** *** * * * * *** * * *****',
             '*   *     * *     *   * * *       * *   *',
             '*** ***** * * *** ***** * *********** * *',
             '*     *   * *   *     * * *       *   * *',
             '* ***** *** *** * ***** * * ***** * *** *',
             '* *     *   *   * *     * *   *   *   * *',
             '* * ***** * * *** * ***** *** * *** *** *',
             '*   *   * * *   * *   *     * * *   *   *',
             '* ***** * * * * * *** *** *** * * *** * *',
             '* *   *   * * * *   *   *   * *     * * *',
             '* * * ***** * * *** *** * * * ******* * *',
             '* * *     * * *   *   * * *   *   *   * *',
             '* * ***** * * *** ***** ******* * * *** *',
             '*   *       *   *               *   *   F',
             '*****************************************');


echo '<pre>';
foreach($array as $line)
{

    echo '<br/>' . $line;
}

echo '</pre>';

do
{
    $bool = false;
    foreach($array as $key => $line)
    {

        for($i=1; $i<strlen($line)-1; $i++)
        {

            $tel = 0;
            if($line[$i] == ' ')
            {

                $tel = ($line[$i-1]=='*') ? $tel + 1 : $tel;
                $tel = ($line[$i+1]=='*') ? $tel + 1 : $tel;
                $tel = ($array[$key-1][$i]=='*') ? $tel + 1 : $tel;
                $tel = ($array[$key+1][$i]=='*') ? $tel + 1 : $tel;
            }

            if($tel > 2)
            {

                $line[$i] = '*';
                $bool = true;
            }

            $array[$key] = $line;
        }
    }
}

while($bool);

echo '<pre>';
foreach($array as $line)
{

    echo '<br/>' . $line;
}

echo '</pre>';

?>
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 22:34:00
Quote Anchor link
Hmm ziet er netjes uit ;)
nu nog dat rijen, kolomen nummers toevoegen :P
 
- SanThe -

- SanThe -

21/01/2009 22:35:00
Quote Anchor link
Hoe bedoel je?
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 22:37:00
Quote Anchor link
zie eerste post:
---
hoe het werkt:

#########
S+++++# #
#####+# #
#_____+++F
#########

De plus teken laat het weggetje zien.
code word: 111213141525353637
gescheiden: 11 12 13 14 15 25 35 36 37
uitleg: 11 betekent eigenlijk rij 1, kolom 1

kunnen jullie me helpen, een script of een uitleg geven hoe ik dit probleem het beste aan kan pakken?
----

zeg maar dat je een lange code krijgt met de stappen waardoor die heen loopt.
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
- SanThe -

- SanThe -

21/01/2009 22:40:00
Quote Anchor link
Zie de link nogmaals en dan onderaan.

Edit: Of moeten ze in de volgorde die je dan moet volgen. Nu zijn het gewoon de lege plekken van links naar rechts en van boven naar beneden.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 22:42:00
Quote Anchor link
Wojow,
Santhe, ik heb het code bekeken.. ik kan dat nooit maken, maar ik ga je code proberen te ontrafelen en aan te leren hoe je zulke dingen maakt.
Bedankt voor je hulp
 
- SanThe -

- SanThe -

21/01/2009 23:06:00
Quote Anchor link
Script is nu volledig en aangepast zodat je ook de code te zien krijgt als je het juiste pad volgt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

function
zoekleeg($x, $y)
{

    global $array;
    if($array[$y][$x]!=' ') return;
    echo $y . $x . ' ';
    $array[$y][$x] = 'X';
    zoekleeg($x-1, $y);
    zoekleeg($x+1, $y);
    zoekleeg($x, $y-1);
    zoekleeg($x, $y+1);
}





$array=array('*****************************************',
             'S       *         *     *     *         *',
             '******* * * ***** *** * * *** ******* * *',
             '*   *   * * *   *   * * * * *   *     * *',
             '* *** ***** *** *** * * * * *** * * *****',
             '*   *     * *     *   * * *       * *   *',
             '*** ***** * * *** ***** * *********** * *',
             '*     *   * *   *     * * *       *   * *',
             '* ***** *** *** * ***** * * ***** * *** *',
             '* *     *   *   * *     * *   *   *   * *',
             '* * ***** * * *** * ***** *** * *** *** *',
             '*   *   * * *   * *   *     * * *   *   *',
             '* ***** * * * * * *** *** *** * * *** * *',
             '* *   *   * * * *   *   *   * *     * * *',
             '* * * ***** * * *** *** * * * ******* * *',
             '* * *     * * *   *   * * *   *   *   * *',
             '* * ***** * * *** ***** ******* * * *** *',
             '*   *       *   *               *   *   F',
             '*****************************************');


echo '<pre>';
foreach($array as $line)
{

    echo '<br/>' . $line;
}

echo '</pre>';

do
{
    $bool = false;
    foreach($array as $key => $line)
    {

        for($i=1; $i<strlen($line)-1; $i++)
        {

            $tel = 0;
            if($line[$i] == ' ')
            {

                $tel = ($line[$i-1]=='*') ? $tel + 1 : $tel;
                $tel = ($line[$i+1]=='*') ? $tel + 1 : $tel;
                $tel = ($array[$key-1][$i]=='*') ? $tel + 1 : $tel;
                $tel = ($array[$key+1][$i]=='*') ? $tel + 1 : $tel;
            }

            if($tel > 2)
            {

                $line[$i] = '*';
                $bool = true;
            }

            $array[$key] = $line;
        }
    }
}

while($bool);

echo '<pre>';
foreach($array as $line)
{

    echo '<br/>' . $line;
}

echo '</pre>';

foreach($array as $key => $line)
{

    for($i=1; $i<strlen($line)-1; $i++)
    {

        if($line[$i] == ' ')
        {

            echo $key . $i . ' ';
        }
    }
}


echo '<br/><br/>De code volgens het lopen van de juiste weg:<br/>';
zoekleeg(1,1);

echo '<pre>';
foreach($array as $line)
{

    echo '<br/>' . $line;
}

echo '</pre>';

?>
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 23:11:00
Quote Anchor link
Cool, ziet er best wel vet uit.

ik had nog een challenge waar ik eigenlijk niet uit kwam, deze is wel simpeler en toch lastiger

ik heb een driehoek
namelijk:

___8
__7 5
_5 7 8
3 9 4 2
en wat je moet doen is van boven naar beneden alle mogelijkheden gebruiken.

8 + 7 + 5 + 3 = 23
8 + 7 + 5 + 9 = 29
8 + 7 + 7 + 9 = 31
8 + 7 + 7 + 4 = 26
8 + 5 + 7 + 9 = 29
8 + 5 + 7 + 4 = 24
8 + 5 + 8 + 4 = 25
8 + 5 + 8 + 2 = 23
De gemiddelde: 31.

hoe zou ik deze dan aan moeten pakken? ook door middel van arrays?

Edit: effe een mooie piramide van gemaakt
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
- SanThe -

- SanThe -

21/01/2009 23:26:00
Quote Anchor link
Die is best lastig. Maar ga eens wat uitproberen zou ik zeggen.

Edit: Gemiddelde is trouwens geen 31. Dat is de hoogste.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Robert Deiman

Robert Deiman

21/01/2009 23:32:00
Quote Anchor link
@Peter

Je zou dit aan kunnen pakken met een multidymensionale array,

array(1=>array(8),2=>array(7,5)) enzovoorts... Omdat een array zelf nummert met keys vanaf 0, kan je met een paar controles de boel doorlopen.

Je moet elke keer het nummer van de key zelf en indien mogelijk key-1 en +1 doen. Op zich is dat niet zo heel lastig volgens mij. Je moet alleen even de logica zien.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 23:33:00
Quote Anchor link
Hmm ik zat van zoiets te denken

als je dit in een array stopt

dan kijk je naar de laatste waarde (hoeveel array keys die bevat)
dus als we deze hebben als voorbeeld:
___8
__7 5
_5 7 8
3 9 4 2
krijgen we 4 uit

we beginnen uiteraad boven en tellen we net als binaire codes van boven naar beneden

alles op 1e cijfer scheiden:
8
7
5
3

laatste cijfer switchen:
8
7
5
9

uuhh,, je hebt gelijk.. is best wel lastig jaa..

Edit: @robert hoe wil je dit gaan controleren dan? :P
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
Gerben G

Gerben G

21/01/2009 23:34:00
Quote Anchor link
Peter schreef op 21.01.2009 22:26:
ow ja, ik zit in havo 5 ;)
Want ik heb het echt 3 tot 5 keer doorgelezen hoe dat dijkstra algoritme werkt maar ik snap er geen enne hol van.
heb je misschien minder universiteits niveau misschien? :P


Ik heb het tijdens het 2de jaar HBO gehad. Het lijkt heel moeilijk, maar het valt echt wel mee. Maar een bruteforce oplossing kan ook prima voor iets wat zo klein is.
 
Kumkwat Trender

Kumkwat Trender

21/01/2009 23:43:00
Quote Anchor link
Donhertog schreef op 21.01.2009 23:34:
Peter schreef op 21.01.2009 22:26:
ow ja, ik zit in havo 5 ;)
Want ik heb het echt 3 tot 5 keer doorgelezen hoe dat dijkstra algoritme werkt maar ik snap er geen enne hol van.
heb je misschien minder universiteits niveau misschien? :P


Ik heb het tijdens het 2de jaar HBO gehad. Het lijkt heel moeilijk, maar het valt echt wel mee. Maar een bruteforce oplossing kan ook prima voor iets wat zo klein is.


Het zit in me, ik weet het zeker. Maar het komt nog wel.. :)

Nou wat ik nu dan "moeilijk" eruit vind zien zijn die rare tekentjes/regeltjes.
Op zich weet ik een paar maar nog niet alles, wat ik nu op school krijg is logaritme's, dingen over figuren, abc-formule, x vrij maken enz. enz.
natuurkunde ga ik deze periode over atoom splitsingen of zow leren. Ik ga dus langzaaam die richting op..
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.