två tal ger ett tredje
jag har tre tal där de två första talen ska resultera i de tredje talet. Man kan använda de 4 räknesätten +, -,*,/.
Ex: 123 -> 1+2 = 3
siffrorna är mellan 0-9
frågan är: hur många gånger kan de två siffrorna ge den tredje siffran?
svaret är 152 men jag har ingen aning hur det blir så. Jag har ingen aning hur jag börjar.
Så du har något i stil med :
där x,y,z kan vara ickenegativa ensiffriga heltal och ska vara någon av de aritmetiska operationerna? (Det måste finnas begräsningar på talen annars finns oändligt många kombinationer.
Ja jag skulle säga att du i praktiken helt enkellt bör försöka lista alla möjliga kombinationer snarare.
En strategi: Tabulering.
Konstruera tabeller med x och y värdena och se hur många olika z-värden du kan få med de olika operationerna.
Ta exempelvis en vanlig multiplikationstabell
(behöver addera en rad och kolumn för 0)
Här motsvarar varje ruta med en ensiffrigt tal ett sätt att fylla i mönstret exempelvis en av rutorna med 6 motsvar . Antalet lösningar till kommer motsvaras av antal rutor med ensiffriga tal så hur många är de?
Sedan kan man göra motsvarande tabeller för addition, subtraktion, och division. Som du förmodligen märker rätt så snabbt så behöver du inte fylla i hela tabellen utan du kan kanske räkna ut antalet ensiffriga-talrutor via mönster.
Kan du programmera kan detta även göras med några for-loopar.
Jag kommer inte på något smartare sätt än brute force. Här börjar jag på några tal med addition.
011, 022,033,...,099 10 st
101,202, 303,...,909 10 st
112, 123, 134,...,189 9 st
213, 224, 235,...,279 7 st
och så vidare
delz skrev:jag har tre tal där de två första talen ska resultera i de tredje talet. Man kan använda de 4 räknesätten +, -,*,/.
Ex: 123 -> 1+2 = 3
siffrorna är mellan 0-9
frågan är: hur många gånger kan de två siffrorna ge den tredje siffran?
svaret är 152 men jag har ingen aning hur det blir så. Jag har ingen aning hur jag börjar.
Frågan är otydligt formulerad.
Är till exempel 000 OK?
Om ja, ska vi räkna både 000 (0+0=0), 000 (0-0=0) och 000 (0*0=0)?
Det vore bra om du kunde skriva av uppgiften ord för ord, eller ännu hellre, ladda upp en bild på den.
--------
Tips: Ta ett räknesätt i taget.
Exempel addition:
000, dvs 0 + 0 = 0
011, dvs 0 + 1 = 1
101, dvs 1 + 0 = 1
022, dvs 0 + 2 = 2
202, dvs 2 + 0 = 2
och så vidare ...
Exempel division:
020, dvs 0/2 = 0
221, dvs 2/2 = 1
och så vidare ...
SeriousCephalopod skrev:Så du har något i stil med :
där x,y,z kan vara ickenegativa ensiffriga heltal och ska vara någon av de aritmetiska operationerna? (Det måste finnas begräsningar på talen annars finns oändligt många kombinationer.
Ja jag skulle säga att du i praktiken helt enkellt bör försöka lista alla möjliga kombinationer snarare.
En strategi: Tabulering.
Konstruera tabeller med x och y värdena och se hur många olika z-värden du kan få med de olika operationerna.
Ta exempelvis en vanlig multiplikationstabell
(behöver addera en rad och kolumn för 0)
Här motsvarar varje ruta med en ensiffrigt tal ett sätt att fylla i mönstret exempelvis en av rutorna med 6 motsvar . Antalet lösningar till kommer motsvaras av antal rutor med ensiffriga tal så hur många är de?
Sedan kan man göra motsvarande tabeller för addition, subtraktion, och division. Som du förmodligen märker rätt så snabbt så behöver du inte fylla i hela tabellen utan du kan kanske räkna ut antalet ensiffriga-talrutor via mönster.
Kan du programmera kan detta även göras med några for-loopar.
Hur skulle jag programmera detta isåfall?
Yngve skrev:delz skrev:jag har tre tal där de två första talen ska resultera i de tredje talet. Man kan använda de 4 räknesätten +, -,*,/.
Ex: 123 -> 1+2 = 3
siffrorna är mellan 0-9
frågan är: hur många gånger kan de två siffrorna ge den tredje siffran?
svaret är 152 men jag har ingen aning hur det blir så. Jag har ingen aning hur jag börjar.
Frågan är otydligt formulerad.
Är till exempel 000 OK?
Om ja, ska vi räkna både 000 (0+0=0), 000 (0-0=0) och 000 (0*0=0)?
Det vore bra om du kunde skriva av uppgiften ord för ord, eller ännu hellre, ladda upp en bild på den.
--------
Tips: Ta ett räknesätt i taget.
Exempel addition:
000, dvs 0 + 0 = 0
011, dvs 0 + 1 = 1
101, dvs 1 + 0 = 1
022, dvs 0 + 2 = 2
202, dvs 2 + 0 = 2
och så vidare ...
Exempel division:
020, dvs 0/2 = 0
221, dvs 2/2 = 1
och så vidare ...
Jag skrev exakt som det var skrivet.
Svaret blir:152
och det kan vara omöjligt att jag ska räkna tills det har blivit 152 möjliga svar. så det funkar ej med brute force.
Hur skulle jag man kunna lösa detta via programmering?
Du har ju bara 1000 olika kombinationer att kolla, så det verkar inte helt ogenomförbart!
Men jag låser den här tråden, så kan du göra en ny i programmeringsforumet istället. /moderator