Nå har jeg funnet en løsning på dette, men jeg er ikke ferdig med å progge den. (Prøver å gjøre det i PHP, men er helt ny \ blank, så det går litt seint
).
Jeg poster likevel prinsippet her nå først (NB: Godt mulig det er litt uklart, dette, eller at det er enkelte tilfeller der det ikke funker, eller er buggy - Det er m.a.o. bare en uferdig idè):
Oppgaven er å plukke ut 5 tall av 10 bestemte tall for å få en bestemt sum, og hvert tall kan bare brukes en gang, slik eg har forstått det. Da må \ kan progget gjøre følgende:
1) Ta det høyeste tallet i rekken. (10 i eksempelet)
2) Lagre tallet 10 i en variabel, eller rekke (e.l.)
3) Trekk det fra svaret (21) og få resten (11).
4) Ta det nest-høyeste tallet (9) og trekk dette fra resten (11) og få den nye resten (2). (finner ett passende tall med if-else-struktur)
Nå har du funnet tre tall blandt de 10 som har summen 21 (Rekke#1: 2, 9, 10). Du
skulle imidlertid ha 5 tall, og det kan du gjøre slik:
5) Ta det øverste tallet av de du har funnet (10) (vi skal prøve å dele det opp i flere deler slik at vi får 5 tall til sammen)
6) Ta det første tallet under dette som ikke er brukt (8) og finn resten til ti (2). 2 er brukt, så progget går videre til 7,
som gir resten 3. (vi har nå tallene 2, 3, 7 og 9).
7) Nå har progget en ny rekke (rekke#2: 2, 3, 7, 9) og begynner å dele opp på samme måte her, det største tallet først. Tallet under
9 er 8. 9-8=1 i rest, altså 1, 2, 3, 7, 8. Summen her er 21, og vi har altså en løsning.
Dersom progget
ikke hadde funnet løsningen her så fort kunne det gått videre og prøvd å dele opp de neste tallene (nest størst, tredje størst, osv)
i hver rekke. Om det ikke fant en løsning da heller kunne det gått helt tilbake til den første rekken igjen og prøvd neste mulige oppdeling
av det største tallet (10). Altså, i stedet for:
10=7+3 og deretter 9=1+8 (1, 2, 3, 7, 8), så:
10=6+4 (2, 4, 6, 9) og deretter 9=8+1 (1, 2, 4, 6, 8; TipeX sin egen løsning).
Jeg er ikke sikker på om alle løsninger blir funnet på denne måten, så det er usikkert om den funker i alle tilfeller, men her funker den i alle fall fint. Nå gjenstår det bare å få det kodet og kjørbart...
Sist endret av Psy_Illusion; 22. oktober 2002 kl. 17:16.