Knobelei < Knobelaufgaben < Café VH < Internes < Vorhilfe
|
Aufgabe | Wie kann man die Zahl $78$ mit vier gleichen Ziffern schreiben? |
Hallo zusammen,
eine kleine, nicht sehr schwere Knobelaufgabe für Interessierte.
Viel Spaß
Gruß
schachuzipus
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:30 Di 03.08.2010 | Autor: | Loddar |
Hallo schachuzipus!
Ich nehme mal an, zwischen den Ziffern dürfen Rechenoperationen / Rechenzeichen stehen?
Dann habe ich eine Idee.
Gruß
Loddar
|
|
|
|
|
Hallo Loddar,
ja, ist erlaubt ...
Gruß
schachuzipus
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:13 Di 03.08.2010 | Autor: | abakus |
> Hallo Loddar,
>
> ja, ist erlaubt ...
>
> Gruß
>
> schachuzipus
Als erste Möglichkeit habe ich eine Lösung mit "7" gefunden. "6" geht auch, ebenso "3".
Mal sehen, was noch...
Gruß Abakus
|
|
|
|
|
Hallo Abakus,
ja, eine Lösung mit 7 und mit nur einem "Rechenzeichen" schwebte mir auch vor ...
Gruß
schachuzipus
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:51 Di 03.08.2010 | Autor: | Loddar |
Hallo!
Meine Lösung zielt eher in die Richtung einer Ziffer zwischen 2 und 4.
Gruß
Loddar
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 23:53 Di 03.08.2010 | Autor: | gfm |
> Wie kann man die Zahl [mm]78[/mm] mit vier gleichen Ziffern
> schreiben?
> Hallo zusammen,
>
> eine kleine, nicht sehr schwere Knobelaufgabe für
> Interessierte.
>
> Viel Spaß
>
> Gruß
>
> schachuzipus
Ist auch so was erlaubt: 66-6 (zur Basis 13).
LG
gfm
|
|
|
|
|
Hallo gfm,
> > Wie kann man die Zahl [mm]78[/mm] mit vier gleichen Ziffern
> > schreiben?
> > Hallo zusammen,
> >
> > eine kleine, nicht sehr schwere Knobelaufgabe für
> > Interessierte.
> >
> > Viel Spaß
> >
> > Gruß
> >
> > schachuzipus
>
> Ist auch so was erlaubt: 66-6 (zur Basis 13).
Hmm, es sollten schon 4 gleiche Ziffern sein ...
>
> LG
>
> gfm
>
Gruß
schachuzipus
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 09:19 Mi 04.08.2010 | Autor: | gfm |
> Hallo gfm,
>
> > > Wie kann man die Zahl [mm]78[/mm] mit vier gleichen Ziffern
> > > schreiben?
> > > Hallo zusammen,
> > >
> > > eine kleine, nicht sehr schwere Knobelaufgabe für
> > > Interessierte.
> > >
> > > Viel Spaß
> > >
> > > Gruß
> > >
> > > schachuzipus
> >
> > Ist auch so was erlaubt: 66-6 (zur Basis 13).
>
> Hmm, es sollten schon 4 gleiche Ziffern sein ...
Weiß ich. Ich wollte nur 66+6-6 im Duodezimalsystem nicht gleich nennen.
LG
gfm
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:53 Mi 04.08.2010 | Autor: | reverend |
Hallo gfm,
> > > Ist auch so was erlaubt: 66-6 (zur Basis 13).
> >
> > Hmm, es sollten schon 4 gleiche Ziffern sein ...
>
> Weiß ich. Ich wollte nur 66+6-6 im Duodezimalsystem nicht
> gleich nennen.
Ich finde das keine gültige Lösung. Die Rechnung sollte dann doch ganz duodezimal sein, also 66+6-6=66. Dass [mm] 66_{12}=78_{10} [/mm] ist, ist ja gut und schön, aber dann doch irgendwie an den Haaren herbeigezogen.
Dafür lässt sich Deine Lösung aber leicht ins Dezimalsystem übernehmen: [mm] 66+6+6=78_{10}
[/mm]
Im Elfersystem (undezimal) gibt es aber eine schöne sortenreine Lösung: [mm] 55+5*5=78_{11}
[/mm]
Zur Basis 31 gilt: [mm] (3!)^3+3*3=78_{31}
[/mm]
Und die Basis 103 erweist sich als besonders fruchtbar:
[mm] 3^3*3^3=78_{103}
[/mm]
Schwieriger zu finden sind Lösungen mit drei gleichen Ziffern:
Dezimal: [mm] 9*9-\wurzel{9}=78_{10}
[/mm]
Duodezimal: [mm] 4!*4-4=78_{12}
[/mm]
Hexadezimal: [mm] 4!*4+4!=78_{16}
[/mm]
Und wieder zur Basis 103: [mm] (3!+3)^3=78_{103}
[/mm]
Lösungen mit nur zwei gleichen Ziffern scheinen schwierig, aber natürlich gibt es zur Basis 103 diese naheliegende:
[mm] 9^{\wurzel{9}}=78_{103}
[/mm]
Mich stört aber generell die zusätzliche Angabe einer anderen Basis.
Darum schließe ich diesen Beitrag mal mit einer neuen Lösung im Dezimalsystem:
[mm] \vektor{3*3\\3}-3!=78
[/mm]
Grüße
reverend
|
|
|
|
|
Hallo zusammen,
> Wie kann man die Zahl [mm]78\![/mm] mit vier gleichen
> Ziffern schreiben?
Für kleine Parameter kann man solche Aufgaben meist mit einem kurzen Programm lösen ...
1: | zahl = 78
| 2: | n = 4
| 3: |
| 4: | from itertools import product
| 5: |
| 6: | for tplop in product(['+','*'], repeat=n):
| 7: | for ziffer in range(10):
| 8: | szziffer = str(ziffer)
| 9: | sztermtocalc = szziffer + szziffer.join(tplop) + szziffer
| 10: | itermrslt = eval(sztermtocalc)
| 11: | if itermrslt == zahl:
| 12: | print(sztermtocalc + ' =', itermrslt)
|
Ergebnis:
6+6*6+6*6 = 78
6*6+6+6*6 = 78
6*6+6*6+6 = 78
(Hab' mir jetzt nicht die Mühe gemacht dem Programm das Kommutativgesetz beizubringen. :) )
fragt sich nur noch, wie man die Aufgabe für sehr große Zahlen und sehr viele Summanden effizient lösen kann...
Gruß V.N.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 09:33 Mi 04.08.2010 | Autor: | fred97 |
> Hallo zusammen,
>
> > Wie kann man die Zahl [mm]78\![/mm] mit vier gleichen
> > Ziffern schreiben?
>
> Für kleine Parameter kann man solche Aufgaben meist mit
> einem kurzen Programm lösen ...
>
> 1: | zahl = 78
| 2: | > n = 4
| 3: | >
| 4: | > from itertools import product
| 5: | >
| 6: | > for tplop in product(['+','*'], repeat=n):
| 7: | > for ziffer in range(10):
| 8: | > szziffer = str(ziffer)
| 9: | > sztermtocalc = szziffer + szziffer.join(tplop) +
| 10: | > szziffer
| 11: | > itermrslt = eval(sztermtocalc)
| 12: | > if itermrslt == zahl:
| 13: | > print(sztermtocalc + ' =', itermrslt)
| 14: | > |
>
> Ergebnis:
>
> 6+6*6+6*6 = 78
> 6*6+6+6*6 = 78
> 6*6+6*6+6 = 78
Da stehen aber 5 Sechsen !!
4 gleiche Ziffern waren aber verlangt.
FRED
>
> (Hab' mir jetzt nicht die Mühe gemacht dem Programm das
> Kommutativgesetz beizubringen. :) )
>
> fragt sich nur noch, wie man die Aufgabe für sehr große
> Zahlen und sehr viele Summanden effizient lösen kann...
>
> Gruß V.N.
|
|
|
|
|
Hallo Fred,
> Da stehen aber 5 Sechsen !!
>
> 4 gleiche Ziffern waren aber verlangt.
Ups, stimmt. Außerdem habe ich noch übersehen, daß man auch Klammern als Zusatzoperatoren verwenden darf, sonst klappt's nicht. Das Folgende sollte nun aber stimmen ...
1: | zahl = 78
| 2: | n = 4
| 3: |
| 4: | from itertools import product
| 5: |
| 6: | for tplop in product(['+', ')+', '+(', ')+(', '*', ')*', '*(', ')*('], repeat=n-1):
| 7: | for ziffer in range(10):
| 8: | szziffer = str(ziffer)
| 9: | lsttermstocalc = list()
| 10: |
| 11: | lsttermstocalc.append(szziffer + szziffer.join(tplop) + szziffer)
| 12: | lsttermstocalc.append('(' + lsttermstocalc[0])
| 13: | lsttermstocalc.append(lsttermstocalc[1] + ')')
| 14: | lsttermstocalc.append(lsttermstocalc[0] + ')')
| 15: |
| 16: | for sztermtocalc in lsttermstocalc:
| 17: | try:
| 18: | itermrslt = eval(sztermtocalc)
| 19: | if itermrslt == zahl:
| 20: | print(sztermtocalc + ' =', itermrslt)
| 21: | except:
| 22: | pass
|
Ergebnis:
(6+6)*6+6 = 78
(6+6)*6+(6) = 78
6+6*(6+6) = 78
(6+6)*(6)+6 = 78
(6+6)*(6)+(6) = 78
(6)+6*(6+6) = 78
6+(6+6)*6 = 78
(6+(6+6)*6) = 78
6+(6+6)*(6) = 78
6+(6)*(6+6) = 78
(6)+(6+6)*6 = 78
(6)+(6+6)*(6) = 78
(6)+(6)*(6+6) = 78
6*(6+6)+6 = 78
(6*(6+6)+6) = 78
6*(6+6)+(6) = 78
(6)*(6+6)+6 = 78
(6)*(6+6)+(6) = 78
Gruß V.N.
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 10:30 Mi 04.08.2010 | Autor: | gfm |
> Hallo zusammen,
>
> > Wie kann man die Zahl [mm]78\![/mm] mit vier gleichen
> > Ziffern schreiben?
>
> Für kleine Parameter kann man solche Aufgaben meist mit
> einem kurzen Programm lösen ...
>
> 1: | zahl = 78
| 2: | > n = 4
| 3: | >
| 4: | > from itertools import product
| 5: | >
| 6: | > for tplop in product(['+','*'], repeat=n):
| 7: | > for ziffer in range(10):
| 8: | > szziffer = str(ziffer)
| 9: | > sztermtocalc = szziffer + szziffer.join(tplop) +
| 10: | > szziffer
| 11: | > itermrslt = eval(sztermtocalc)
| 12: | > if itermrslt == zahl:
| 13: | > print(sztermtocalc + ' =', itermrslt)
| 14: | > |
>
> Ergebnis:
>
> 6+6*6+6*6 = 78
> 6*6+6+6*6 = 78
> 6*6+6*6+6 = 78
>
> (Hab' mir jetzt nicht die Mühe gemacht dem Programm das
> Kommutativgesetz beizubringen. :) )
>
> fragt sich nur noch, wie man die Aufgabe für sehr große
> Zahlen und sehr viele Summanden effizient lösen kann...
>
> Gruß V.N.
Und was müßte man machen, damit auch sowas wie [mm] 3*3^3-3 [/mm] raus kommt? :)
LG
gfm
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:04 Mi 04.08.2010 | Autor: | reverend |
Hallo,
> Und was müßte man machen, damit auch sowas wie [mm]3*3^3-3[/mm]
> raus kommt? :)
... oder gar [mm] 77+\tfrac{7}{7} [/mm] ?
Grüße
reverend
Nachtrag: in der Variante mit 5 Ziffern wäre auch [mm] 3+\bruch{(3!)^3}{3}+3 [/mm] schlecht zu implementieren.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:20 Mi 04.08.2010 | Autor: | gfm |
> Hallo,
>
> > Und was müßte man machen, damit auch sowas wie [mm]3*3^3-3[/mm]
> > raus kommt? :)
>
> ... oder gar [mm]77+\tfrac{7}{7}[/mm] ?
Sehr schön.
>
> Grüße
> reverend
>
> Nachtrag: in der Variante mit 5 Ziffern wäre auch
> [mm]3+\bruch{(3!)^3}{3}+3[/mm] schlecht zu implementieren.
Jawoll.
LG
gfm
|
|
|
|
|
Hallo reverend,
> Nachtrag: in der Variante mit 5 Ziffern wäre auch
> [mm]3+\bruch{(3!)^3}{3}+3[/mm] schlecht zu implementieren.
Vielleicht wäre es besser den !-Operator für diese Aufgabe zu verbieten, da sonst auch folgende Terme möglich wären:
3!!!!!!!!!!!!!!!...! - 3!!!!!!!! {+,-,...} u.s.w.
Dann gäbe es möglicherweise unendlich viele Terme, die 78 ergeben (müßte man beweisen oder widerlegen). Ich würde sagen, daß für diese Aufgabe nur Operatoren mit mindestens zwei und höchstens 4 Eingaben erlaubt sein sollten.
Ich habe mein Programm jetzt etwas verändert:
1: | zahl = 78
| 2: | n = 4
| 3: |
| 4: | from itertools import product
| 5: | import re
| 6: | from numpy import array
| 7: |
| 8: | def makeoplist(lstszop):
| 9: | rslt = list()
| 10: |
| 11: | for szop in lstszop:
| 12: | rslt += [szop, ')'+szop, szop+'(', ')%s('%szop]
| 13: |
| 14: | return rslt
| 15: |
| 16: | if __name__ == '__main__':
| 17: | f = open('results.txt', 'w')
| 18: |
| 19: | for tplop in product(makeoplist(['', '+', '*' ,'-', '//', '%', '**']), repeat=n-1):
| 20: | for ziffer in range(10):
| 21: | szziffer = str(ziffer)
| 22: | lsttermstocalc = list()
| 23: |
| 24: | lsttermstocalc.append(szziffer + szziffer.join(tplop) + szziffer)
| 25: | lsttermstocalc.append('(' + lsttermstocalc[0])
| 26: | lsttermstocalc.append(lsttermstocalc[1] + ')')
| 27: | lsttermstocalc.append(lsttermstocalc[0] + ')')
| 28: |
| 29: | for sztermtocalc in lsttermstocalc:
| 30: | sztermtocalc_ = sztermtocalc
| 31: |
| 32: | lsttermtocalc = re.split('(\d+)', sztermtocalc)
| 33: | for itermpart in range(len(lsttermtocalc)):
| 34: | try:
| 35: | int(lsttermtocalc[itermpart])
| 36: | lsttermtocalc[itermpart] = 'array('+lsttermtocalc[itermpart]+')'
| 37: | except:
| 38: | pass
| 39: | sztermtocalc = ''.join(lsttermtocalc)
| 40: |
| 41: | try:
| 42: | itermrslt = eval(sztermtocalc)
| 43: | if itermrslt == zahl:
| 44: | f.write(sztermtocalc_ + ' = %d\n'%itermrslt)
| 45: | except:
| 46: | pass
| 47: |
| 48: | f.close() |
Ergebnis:
66+6+6 = 78
(66+6+6) = 78
(66+6)+6 = 78
66+6+(6) = 78
(66+6)+(6) = 78
77+7//7 = 78
(77+7//7) = 78
77+7//(7) = 78
(66)+6+6 = 78
(66)+6+(6) = 78
(77)+7//7 = 78
(77)+7//(7) = 78
66+(6+6) = 78
66+(6)+6 = 78
(66+(6)+6) = 78
66+(6)+(6) = 78
77+(7//7) = 78
77+(7)//7 = 78
(77+(7)//7) = 78
77+(7)//(7) = 78
(66)+(6+6) = 78
(66)+(6)+6 = 78
(66)+(6)+(6) = 78
(77)+(7//7) = 78
(77)+(7)//7 = 78
(77)+(7)//(7) = 78
6+66+6 = 78
(6+66+6) = 78
(6+66)+6 = 78
6+66+(6) = 78
(6+66)+(6) = 78
6+6+66 = 78
(6+6+66) = 78
(6+6)+66 = 78
6+6+(66) = 78
(6+6)+(66) = 78
(6+6)*6+6 = 78
(6+6)*6+(6) = 78
6+6*(6+6) = 78
(6+6)*(6)+6 = 78
(6+6)*(6)+(6) = 78
(6)+66+6 = 78
(6)+66+(6) = 78
(6)+6+66 = 78
(6)+6+(66) = 78
(6)+6*(6+6) = 78
6+(66+6) = 78
6+(66)+6 = 78
(6+(66)+6) = 78
6+(66)+(6) = 78
6+(6+66) = 78
6+(6+6)*6 = 78
(6+(6+6)*6) = 78
6+(6+6)*(6) = 78
6+(6)+66 = 78
(6+(6)+66) = 78
6+(6)+(66) = 78
6+(6)*(6+6) = 78
(6)+(66+6) = 78
(6)+(66)+6 = 78
(6)+(66)+(6) = 78
(6)+(6+66) = 78
(6)+(6+6)*6 = 78
(6)+(6+6)*(6) = 78
(6)+(6)+66 = 78
(6)+(6)+(66) = 78
(6)+(6)*(6+6) = 78
3*3**3-3 = 78
(3*3**3-3) = 78
(3*3**3)-3 = 78
3*3**3-(3) = 78
(3*3**3)-(3) = 78
3*3**(3)-3 = 78
(3*3**(3)-3) = 78
3*3**(3)-(3) = 78
(3)*3**3-3 = 78
(3)*3**3-(3) = 78
(3)*3**(3)-3 = 78
(3)*3**(3)-(3) = 78
6*(6+6)+6 = 78
(6*(6+6)+6) = 78
6*(6+6)+(6) = 78
3*(3**3)-3 = 78
(3*(3**3)-3) = 78
3*(3**3)-(3) = 78
3*(3)**3-3 = 78
(3*(3)**3-3) = 78
(3*(3)**3)-3 = 78
3*(3)**3-(3) = 78
(3*(3)**3)-(3) = 78
3*(3)**(3)-3 = 78
(3*(3)**(3)-3) = 78
3*(3)**(3)-(3) = 78
(6)*(6+6)+6 = 78
(6)*(6+6)+(6) = 78
(3)*(3**3)-3 = 78
(3)*(3**3)-(3) = 78
(3)*(3)**3-3 = 78
(3)*(3)**3-(3) = 78
(3)*(3)**(3)-3 = 78
(3)*(3)**(3)-(3) = 78
7//7+77 = 78
(7//7+77) = 78
(7//7)+77 = 78
7//7+(77) = 78
(7//7)+(77) = 78
(7)//7+77 = 78
(7)//7+(77) = 78
7//(7)+77 = 78
(7//(7)+77) = 78
7//(7)+(77) = 78
(7)//(7)+77 = 78
(7)//(7)+(77) = 78
3**3*3-3 = 78
(3**3*3-3) = 78
(3**3*3)-3 = 78
3**3*3-(3) = 78
(3**3*3)-(3) = 78
(3**3)*3-3 = 78
(3**3)*3-(3) = 78
3**3*(3)-3 = 78
(3**3*(3)-3) = 78
3**3*(3)-(3) = 78
(3**3)*(3)-3 = 78
(3**3)*(3)-(3) = 78
(3)**3*3-3 = 78
(3)**3*3-(3) = 78
(3)**3*(3)-3 = 78
(3)**3*(3)-(3) = 78
3**(3)*3-3 = 78
(3**(3)*3-3) = 78
(3**(3)*3)-3 = 78
3**(3)*3-(3) = 78
(3**(3)*3)-(3) = 78
3**(3)*(3)-3 = 78
(3**(3)*(3)-3) = 78
3**(3)*(3)-(3) = 78
(3)**(3)*3-3 = 78
(3)**(3)*3-(3) = 78
(3)**(3)*(3)-3 = 78
(3)**(3)*(3)-(3) = 78
Gruß V.N.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:20 Fr 06.08.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|