Mathe Zahlenrätsel / Rechenmauer 1 bis 15?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

5

9 4

2 11 7

10 12 1 8

13 3 15 14 6

Woher ich das weiß:eigene Erfahrung – Einserschüler im Fach Mathematik
Papalie  08.01.2021, 17:16

Wo ist mein Preis? ^^

1
Yokuma 
Fragesteller
 08.01.2021, 17:18

Oh super, vielen Dank!!!!

1

Habs: 5

9, 4

1, 10, 6

11, 12, 2, 8

14, 3, 15, 13, 5

Woher ich das weiß:Hobby – Ich liebe Knobeln und bin gut im Kopfrechnen. :)
Yokuma 
Fragesteller
 08.01.2021, 17:17

Du hast die 5 doppelt und dafür die 7 nicht 😅 aber ich hab's mit einer anderen Antwort abgeglichen und der Rest ist nicht so weit weg... Aber vieeeelen Dank für deine Bemühungen! <3

0

Welche Differenzen kannst du mit den wenigsten Zahlenpaaren bilden? Also welche sind am schwierigsten zu bilden?

Yokuma 
Fragesteller
 08.01.2021, 16:24

Naja 14 lässt sich nur einmal bilden, und somit am wenigsten oder? Also allgemein die hohen zahlen am wenigsten, weshalb die schlecht oben in der Pyramide stehen können...zu dem Schluss war ich auch schon gekommen... :/

0
qwertzvsqwerty  08.01.2021, 16:26
@Yokuma

Genau. Zerteile in Aufgabe in mehrere Teilprobleme und versuche, die Teile passend zusammenzusetzen. Divide and Conquer. Du kannst also schon die Reihen angeben in denen die stehen. Versuche die absteigend einzusetzen.

0
Yokuma 
Fragesteller
 08.01.2021, 16:28
@qwertzvsqwerty

Mh, ja ich denk ich schau mir das ganze nochmal an... Aber wenn du Zeit und Lust hast kannst du ja auch versuchen auf eine Lösung zu kommen und sie mir dann mitteilen! :)

0
Zweite Antwort von mir:
Möglichkeit 1:
        05
      09  04
    02  11  07
  10  12  01  08
13  03  15  14  06

Möglichkeit 2 (gespiegelte Möglichkeit 1):
        05
      04  09
    07  11  02
  08  01  12  10
06  14  15  03  13
Yokuma 
Fragesteller
 08.01.2021, 17:18

Dankee🙏🏽

0
qwertzvsqwerty  08.01.2021, 17:21
from itertools import permutations as pm

def calcnext(row, used):
    out=[]
    for i in range(len(row)-1):
        new=abs(row[i]-row[i+1])
        if new in used: return False
        used.append(new)
        out.append(new)
    return out, used

for elem in pm([i+1 for i in range(15)], r=5): #r=5, da unten die Breite 5 ist
    elem=list(elem)
    original=elem[:]
    used=list(elem)
    while len(used)!=15:
        if (a:=calcnext(elem, used)):
            elem, used=a
        else: break
    else:
        print(original)

Ab Python 3.8 (vorher geht beim if nicht und muss in zwei Schritten erledigt werden). Für die "in" Abfragen sollte man Sets benutzen und den Kram nicht so hardcoden. Sollte schnell gehen.

0
qwertzvsqwerty  08.01.2021, 17:33
@qwertzvsqwerty

Für welche mit 21 gibt es keine Lösung

Für 10 gibt es die (und ihre gespiegelten) als untere Reihe: [8, 1, 10, 6], [8, 3, 10, 9], [8, 10, 1, 6], [8, 10, 3, 9]

Für 6 gibt es [1, 6, 4], [2, 6, 5], [4, 1, 6], [5, 2, 6]

Für 3 gibt es [1, 3], [2, 3] (da braucht man kein Programm für...)

Für 1 gibt es [1]

0