26. februar 2004 - 14:01Der er
15 kommentarer og 2 løsninger
En Regnemaskine/beregner ?
Hejsa kloge hoveder :)
Jeg så et forholdsvis simpelt regnestykke forleden og tænkte om det ikke er muligt at lave en beregner på computeren ... Det er som følger:
Der er 5 tal, og de skal tilsammen give 5. Det gælder om at sætte tegnene imellem de 5 tal (og eventuelle paranteser). Dvs '+', '-', '*', '/'. Kan i hvert fald lykkedes med tal fra 1 til og med 9. F.eks. :
1 1 1 1 1 = 5 <-- hvordan med tegn ? 1+1+1+1+1 = 5 <-- svar
5 5 5 5 5 = 5 <-- hvordan med tegn ? (5*5+5-5)/5 = 5 <-- svar
Jeg ville gerne have et script eller meget hjælp til, at lave en beregner i php til dette.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Jeg har ikke testet, men du kunne bruge eval() funktionen i php, dvs. du bygger først et udtryk, og så tester det med eval:
altså noget i stil med $str = "$x = (5*5-5+5)/5" eval($str) if $x=5 then { // wee - found solution }
Det andet du skal igennem, er en metode til at finde alle kombinationer af tallene og regnemåderne.
Uden at bruge parenteser vil der være 4 muligheder på 4 pladser, altså (4^4 = 256) muligheder.
Med parenteser er der væsenligt flere, og din rutine til at genere alle muligheder bliver lidt mere komplex, men det skulle stadig være muligt inden for kort tid at lave en "bruteforce" løsning.
Som pseudo kode kunne de se således ud:
procedure lave_alle_parentes_kombinationer for each parentes_kombination call lav_alle_regnekombinationer next end procedure
procedure lav_alle_regnekombinationer // her genereres helt slavisk udtryk med // hhv, +-'/ på hver af de 4 pladser // og udtrykket evalueres end procedure
Det er klart at nogle kombinationer vil være overflødige ex. (5*5)+5-5+5, men det betyder nok mindre i dette "legeprojekt".
JP
Synes godt om
Slettet bruger
26. februar 2004 - 14:24#3
Det lyder som om du vil være doven i et opgavehæfte? *G*
Nu har jeg leget lidt med eval() og nogle parenteser, men jeg kan stadig ikke få den til at gå op med talet 9 og resultatet 5. Der er nok nogle kombinationer af parenteser i parenteser jeg ikke har prøvet:
hehe, tak for det :) havde ikke regnet med en komplet løsning men bare hjælp .. men takker :)
og, sandbox, Ja, ideen kom rent faktisk fra et opgavehæfte til en HH klasse, jeg så da jeg var ifærd med at ordne deres computere ... Så det er ikke 'snyd til mig' ;)
Synes godt om
Slettet bruger
29. februar 2004 - 15:25#16
Jeg tænkte faktisk ikke på skoleopgaver men på kryds-og-tværs-blade. Et ef de små til ca. 12 kr. har ofte opgaver af denne type.
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.