Lösungshilfe zum magischen Sechseck gesucht

23/12/2012 - 22:41 von Henrik Mesen | Report spam
Hallo,
ich habe hier ein (fast)magisches Sechseck bestehend aus 19 Stücken in
welchem die Zahlen 1 bis 19 so eintragen werden sollen, dass:
-die Summe in jedem Strahl, der vom Zentrum ausgeht
-und in jeder Seite des Sechsecks (also den geraden Linien der Umfassung)
den Wert 22 ergibt. Als Start sind bereits 2 Zahlen eingetragen.
-Die Zahl 9 links oben sowie 1 links unten sind vorgegeben.

Ich finde im ganzen Netz nur Lösungen mit Quersumme 38.

Hat mir jemand einen Tipp wie man hier Vorgehen muss/kann um auf die Lösung
zu kommen?
http://img.geocaching.com/cache/lar...729dc0.jpg

Danke und Gruß
 

Lesen sie die antworten

#1 ram
24/12/2012 - 00:58 | Warnen spam
"Henrik Mesen" writes:
Hat mir jemand einen Tipp wie man hier Vorgehen muss/kann um auf die Lösung
zu kommen?



Mit dem folgenden in zirka 20 Minuten geschriebenem Programm
wurde eine mögliche Lösung gefunden, aber ich habe noch
nicht geprüft, ob sie stimmt. Dabei habe ich die beiden
vorgegebenen Zahlen ignoriert. Aufgrund des
Nichtdeterminismus kann es sein, daß das Programm bei einem
erneuten Start keine Lösung mehr findet. Vielleicht ist mein
Programm und meine Lösung auch falsch! Fehler sind dank
meiner eiligen Vorgehensweise (ich habe nicht viel Zeit)
sogar eher wahrscheinlich. Aber dann gibt das Programm
vielleicht Anregungen zu eigenen Experimenten.

Spoilerspace

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


/*
f[ 0 ] f[ 1 ] f[ 2 ]
f[ 03 ] f[ 04 ] f[ 05 ] f[ 06 ]
f[ 07 ] f[ 08 ] f[ 09 ] f[ 10 ] f[ 11 ]
f[ 12 ] f[ 13 ] f[ 14 ] f[ 15 ]
f[ 16 ] f[ 17 ] f[ 18 ]
*/

class Conf
{ final int[] f = new int[ 19 ];
private int value(){ return( int )( java.lang.Math.random() * 20 + 1 ); }
public Conf()
{ for( int i = 0; i < f.length; ++i )f[ i ]=value(); }
public Conf( final Conf conf )
{ for( int i = 0; i < f.length; ++i )f[ i ]=conf.f[ i ];
f[( int )( java.lang.Math.random() * 19 )]= value(); }
@java.lang.Override public java.lang.String toString()
{ java.lang.String result = "";
for( int i = 0; i < f.length; ++i )result = result + f[ i ] + ",";
return result; }
int quality()
{ final int result ( f[ 0 ]+ f[ 1 ]+ f[ 2 ]- 22 )*( f[ 0 ]+ f[ 1 ]+ f[ 2 ]- 22 ) +
( f[ 2 ]+ f[ 6 ]+ f[ 11 ]- 22 )*( f[ 2 ]+ f[ 6 ]+ f[ 11 ]- 22 ) +
( f[ 11 ]+ f[ 15 ]+ f[ 18 ]- 22 )*( f[ 11 ]+ f[ 15 ]+ f[ 18 ]- 22 ) +
( f[ 18 ]+ f[ 17 ]+ f[ 16 ]- 22 )*( f[ 18 ]+ f[ 17 ]+ f[ 16 ]- 22 ) +
( f[ 16 ]+ f[ 12 ]+ f[ 7 ]- 22 )*( f[ 16 ]+ f[ 12 ]+ f[ 7 ]- 22 ) +
( f[ 7 ]+ f[ 3 ]+ f[ 0 ]- 22 )*( f[ 7 ]+ f[ 3 ]+ f[ 0 ]- 22 ) +

( f[ 0 ]+ f[ 4 ]+ f[ 9 ]- 22 )*( f[ 0 ]+ f[ 4 ]+ f[ 9 ]- 22 ) +
( f[ 2 ]+ f[ 5 ]+ f[ 9 ]- 22 )*( f[ 2 ]+ f[ 5 ]+ f[ 9 ]- 22 ) +
( f[ 11 ]+ f[ 10 ]+ f[ 9 ]- 22 )*( f[ 11 ]+ f[ 10 ]+ f[ 9 ]- 22 ) +
( f[ 18 ]+ f[ 14 ]+ f[ 9 ]- 22 )*( f[ 18 ]+ f[ 14 ]+ f[ 9 ]- 22 ) +
( f[ 16 ]+ f[ 13 ]+ f[ 9 ]- 22 )*( f[ 16 ]+ f[ 13 ]+ f[ 9 ]- 22 ) +
( f[ 7 ]+ f[ 8 ]+ f[ 9 ]- 22 )*( f[ 7 ]+ f[ 8 ]+ f[ 9 ]- 22 );
return -result; }}

public class Main
{ public static void main( final java.lang.String[] args )
{ int minquality = - java.lang.Integer.MIN_VALUE;
Conf best = new Conf();
while( true )
{ final Conf conf = new Conf( best );
if( conf.quality() > minquality )
{ java.lang.System.out.println( conf );
java.lang.System.out.println( conf.quality() );
minquality = conf.quality();
best = conf; }}}}

7,6,5,3,13,15,4,7,8,2,1,6,12,1,9,17,7,2,15,
-720
7,6,5,3,13,15,6,7,8,2,1,6,12,1,9,17,7,2,15,
-696
7,6,5,3,13,15,6,7,8,2,1,6,12,20,9,17,7,2,15,
-601
7,6,5,3,13,15,8,7,8,2,1,6,12,20,9,17,7,2,15,
-585
7,6,5,3,13,15,8,7,16,2,1,6,12,20,9,17,7,2,15,
-569
7,6,5,3,13,15,8,7,16,2,12,6,12,20,9,17,7,2,15,
-404
7,6,5,3,13,15,8,7,16,2,12,6,12,20,9,4,7,2,15,
-157
7,11,5,3,13,15,8,7,16,2,12,6,12,20,9,4,7,2,15,
-142
7,11,5,3,13,15,8,7,16,2,12,6,12,20,9,4,7,2,11,
-118
7,11,5,3,13,15,8,7,16,2,12,6,12,11,9,4,7,2,11,
-73
7,11,5,3,13,15,8,7,16,2,12,6,6,11,9,4,7,2,11,
-61
7,11,5,3,13,15,8,7,16,2,12,6,6,11,9,4,10,2,11,
-52
7,11,5,3,13,15,8,7,13,2,12,6,6,11,9,4,10,2,11,
-43
7,11,5,3,13,15,10,7,13,2,12,6,6,11,9,4,10,2,11,
-35
7,11,5,3,13,15,10,8,13,2,12,6,6,11,9,4,10,2,11,
-30
7,11,5,3,13,15,10,8,13,2,12,6,6,11,9,4,10,1,11,
-29
7,11,5,3,13,15,10,8,13,2,12,6,4,11,9,4,10,1,11,
-25
7,11,5,3,13,15,10,8,13,2,12,8,4,11,9,4,10,1,11,
-21
7,11,5,3,13,15,10,9,13,2,12,8,4,11,9,4,10,1,11,
-18
7,11,5,3,13,15,10,9,12,2,12,8,4,11,9,4,10,1,11,
-15
8,11,5,3,13,15,10,9,12,2,12,8,4,11,9,4,10,1,11,
-14
8,11,5,3,13,15,10,9,12,2,12,7,4,11,9,4,10,1,11,
-13
8,10,5,3,13,15,10,9,12,2,12,7,4,11,9,4,10,1,11,
-10
8,10,5,3,13,15,10,9,11,2,12,7,4,11,9,4,10,1,11,
-9
8,10,5,3,13,15,10,9,11,2,12,7,4,10,9,4,10,1,11,
-8
8,10,5,3,12,15,10,9,11,2,12,7,4,10,9,4,10,1,11,
-7
8,10,5,6,12,15,10,9,11,2,12,7,4,10,9,4,10,1,11,
-4
8,10,5,6,12,15,10,8,11,2,12,7,4,10,9,4,10,1,11,
-3
8,10,5,6,12,15,10,8,11,2,13,7,4,10,9,4,10,1,11,
-2
8,9,5,6,12,15,10,8,11,2,13,7,4,10,9,4,10,1,11,
-1
8,9,5,6,12,15,10,8,12,2,13,7,4,10,9,4,10,1,11,
0

Ähnliche fragen