was ist die höchstmögliche zahl die man mit 4 3 2 1 erreichen kann?
Bestimme die größte zahl die man mit 4 3 2 1 erreichen kann, wenn man diese immer nur in der reihe nach von links nach rechts miteinander entweder multiplizieren, subtrahieren, addieren oder dividieren kann. es kann eine klammer benutzt werden.
Bsp. 4 x 3 = 12 x 2 = 24 + 1 = 25
oder: 4 x 3 x (2+1) = 36
die höchstmögliche zahl die ich ermitteln konnte war 36
gibt es eine mögliche höhere Zahl die man auf dieser weise erreichen kann?
6 Antworten
Nein, ich habe ein kleines Python-Skript geschrieben, welches meinen PC alle in Frage kommenden Möglichkeiten hat durchprobieren lassen.
36 ist das größtmögliche Ergebnis und kann durch die folgenden beiden Möglichkeiten erhalten werden...
..., welche aufgrund der Assoziativität der Multiplikation äquvalent zueinander sind und kürzer auch einfach als...
... geschrieben werden können, was auch der von dir gefundenen Lösung entspricht.
Mein Python-Skript ist nicht optimal, sondern einfach schnell von mir hingeschrieben worden. Es erfüllt seinen Zweck, auch wenn ein professioneller Programmierer es evtl. kürzer und effizienter schreiben würde. Falls es dich interessiert...
def addi(a, b):
return(a+b)
def subt(a, b):
return(a-b)
def mult(a, b):
return(a*b)
def divi(a, b):
if b == 0:
return(None)
else:
return(a/b)
op_list = [addi, subt, mult, divi]
n_list = [4, 3, 2, 1]
h = 0
for i1 in range(3):
for op1 in op_list:
z = op1(n_list[i1], n_list[i1+1])
if z == None:
break
else:
n_list1 = n_list[:i1]+[z]+n_list[i1+2:]
for i2 in range(2):
for op2 in op_list:
z = op2(n_list1[i2], n_list1[i2+1])
if z == None:
break
else:
n_list2 = n_list1[:i2]+[z]+n_list1[i2+2:]
for op3 in op_list:
z = op3(n_list2[0], n_list2[1])
if z != None:
if z >= h:
h = z
print([i1, op1, i2, op2, 0, op3], n_list1, n_list2, [z])
Ergänzung: Die insgesamt möglichen Ergebnisse sind übrigens (der Größe nach sortiert)...
-5
-3
-2
-5/3
-1
-2/3
-1/2
-1/3
-1/5
0
1/3
4/9
1/2
4/7
2/3
4/5
1
4/3
3/2
8/5
5/3
9/5
2
7/3
5/2
8/3
3
10/3
7/2
11/3
4
13/3
9/2
5
11/2
6
13/2
7
8
9
10
11
12
13
14
15
16
19
20
21
23
24
25
28
36
okay, jetzt bin ich aber sprachlos begeistert von der mühe die du dir dafür gegeben hast und definitiv sehr überzeugend. dankeschön
Nein gibt es nicht
4*3*(2+1) =108
Korrektur: 36
Mehr als 36 geht nicht. Subtraktion und Division machen das Ergebnis kleiner. Diese Operationen scheiden aus: Wenn Du addierst, kannst Du den größeren Summanden nicht mehr als verdoppeln. Mit der 1 machst Du das Ergebnis mit einer Multiplikation nicht größer. Die 1 musst Du also addiren. Dann hast Du drei Faktoren größer als 2. Diese liefern das größtmögliche Ergebnis.
Vielleicht 4³=64, dann 64²=4096
4096¹ bleibt ja 4096.
haha nein also kein hoch zwei oder hoch drei. man darf nur plus, minus mal und getalt benutzten und einmal klammer. damit muss man die höchste mögliche zahl erzielen die über die 36 schafft wenn es überhaupt möglich ist
43 x21 = 903
haha wie kommt man auf 108? :D das wäre eher 36