Matroids Matheplanet Forum Index
Moderiert von viertel
Matroids Matheplanet Forum Index » Rätsel und Knobeleien (Knobelecke) » * Das kaputte (¼) Osterei
Seite 1   [1 2 3 4 5 6]   6 Seiten
Autor
Kein bestimmter Bereich * Das kaputte (¼) Osterei
viertel
Senior Letzter Besuch: im letzten Quartal
Dabei seit: 04.03.2003
Mitteilungen: 27785
Wohnort: Hessen
  Themenstart: 2020-04-01

Dann will ich auch eine Aufgabe in der Richtung beisteuern:
Wähle aus den Zahlen $1,\ldots,48$ 16 Tripel aus, so daß jeweils die Summe von zwei der Zahlen die dritte ergibt. Jede der 48 Zahlen darf aber nur verwendet werden!
Es gibt mehrere Lösungen (ich weiß allerdings nicht, wie viele) 😉 Ebenfalls erbeten bis Ostersonntag per PM (eine Lösung genügt natürlich) 😎 Gruß vom ¼



   Profil
Dies ist eine Knobelaufgabe!
Der Themensteller hat bestimmt, dass Du Deine Lösung nicht direkt im Forum posten darfst.
Sende stattdessen Deine Lösung als private Nachricht an den Themensteller. Benutze dazu den Link 'Privat', den Du unter seinem Beitrag findest.
Der Themensteller wird zu gegebener Zeit über eingesandte (richtige) Lösungen informieren
und nach Ablauf einer (von ihm) festgelegten Zeit alle Lösungen veröffentlichen.
viertel
Senior Letzter Besuch: im letzten Quartal
Dabei seit: 04.03.2003
Mitteilungen: 27785
Wohnort: Hessen
  Beitrag No.1, vom Themenstarter, eingetragen 2020-04-13

Drei Lösungen habe ich erhalten: • Kitaktus • gonz • StrgAltEntf Plus diverse Auswertungen, die per Programm sämtliche Tripel gesucht haben. Die Zahl der Lösungen geht ins Uferlose… \showon Die ersten 5 Lösungen sind von einem früheren Anlauf mit dieser Aufgabe. Da wurde noch „von Hand“ gesucht (was hier wohl zunächst auch gemacht wurde) 😉 \sourceon Lösungen viertel JohnDoe Buri Rebecca mathe- Kitaktus gonz StrgAltEntf krokodil 1+17=18 1+17=18 1+42=43 1 +36=37 1+46=47 16+32=48 1+47=48 1+ 8=9 2+20=22 2+30=32 2+22=24 2 +22=24 3+42=45 14+33=47 2+44=46 2+19=21 3+23=26 3+37=40 3+36=39 3 +33=38 5+38=43 15+31=46 3+42=45 3+41=44 4+34=38 4+43=47 4+19=23 4 +12=14 7+34=41 11+34=45 4+39=43 4+39=43 5+19=24 5+34=39 5+30=35 5 +34=39 9+30=39 9+35=44 5+36=41 5+32=37 6+30=36 6+15=21 6+21=27 6 +14=20 11+26=37 13+30=43 6+29=35 6+20=26 7+21=28 7+31=38 7+18=25 7 +33=40 13+22=35 6+36=42 7+26=33 7+27=34 8+32=40 8+19=27 8+40=48 8 +10=18 15+18=33 12+29=41 8+24=32 10+28=38 9+39=48 9+33=42 9+29=38 9 +32=41 17+14=31 3+37=40 9+25=34 11+29=40 10+37=47 10+14=24 10+31=41 11+31=42 19+10=29 1+38=39 10+21=31 12+36=48 11+35=46 11+35=46 11+15=26 13+30=43 21+ 6=27 10+18=28 11+19=30 13+22=35 12+33=45 12+29=41 12+34=46 15+29=44 23+ 2=25 8+19=27 12+16=28 14+31=45 13+31=44 13+23=36 13+32=45 17+28=45 44+ 4=48 4+22=26 13+14=27 15+18=33 14+29=43 16+28=44 14+33=47 19+27=46 24+16=40 5+20=25 15+23=38 16+30=46 15+27=42 20+25=45 16+28=44 21+26=47 8+28=36 7+17=24 17+20=37 17+25=42 16+25=41 22+26=48 17+20=37 23+25=48 20+12=32 2+21=23 18+22=40 22+25=47 \sourceoff \showoff Und dann war da noch dieser Link von StrgAltEntf: \hideon OEIS A108235 \hideoff


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.2, eingetragen 2020-04-14

Hallo zusammen! \quoteon(2020-04-13 23:13 - viertel in Beitrag No. 1) Plus diverse Auswertungen, die per Programm sämtliche Tripel gesucht haben. Die Zahl der Lösungen geht ins Uferlose… Und dann war da noch dieser Link von StrgAltEntf: \hideon OEIS A108235 \hideoff \quoteoff Tatsächlich bin ich momentan dabei, sämtliche Lösungen zu ermitteln, also der Folge A108235 das 16. Glied beizusteuern. (Gibt ja sonst nichts zu tun 😎) Momentan habe ich 62 Mrd Lösungen gefunden. Meinen Hochrechnungen zufolge gibt es um die 144 Mrd Lösungen. Dass das Problem überhaupt greifbar für eine Berechnung wird, habe ich dieser Erkenntnis zu verdanken. Hat vielleicht jemand Lust, sich an der Berechnung zu beteiligen? Die Berechnung ist parallelisierbar uns ich kann hier gerne den C-Code bereitstellen. Würde mich freuen! Danke an viertel für das Rätsel! 😃


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4375
Wohnort: Harz
  Beitrag No.3, eingetragen 2020-04-14

Vielen Dank auch von mir noch für das Rätsel an Viertel! \quoteon(2020-04-14 00:08 - StrgAltEntf in Beitrag No. 2) Hat vielleicht jemand Lust, sich an der Berechnung zu beteiligen? Die Berechnung ist parallelisierbar uns ich kann hier gerne den C-Code bereitstellen. \quoteoff ich würde ein paar Kerne beisteuern :) Das Thema ist interessant.


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.4, eingetragen 2020-04-14

\quoteon(2020-04-14 10:47 - gonz in Beitrag No. 3) ich würde ein paar Kerne beisteuern :) Das Thema ist interessant. \quoteoff Das ist schön 😃 Hier dann mal mein Code. Bitte nicht erschrecken, das allermeiste ist Ein-/Ausgabe. \showon 246 Zeilen Code \sourceon C \numberson #include #include #include #define Nmax 20 // maximum list length is 3*Nmax int N; // the current list length is 3*N long long int solutioncounter = 0; int solution[Nmax][3]; // collects triplets of a partition // only for the output int boundary[Nmax+1] = {1, 1, 1, 1, 1, 1, 1, 1, 100, 1000, 1000, 1000, 100000, 100000, 1000000, 1000000, 1000000, 100000, 100000, 100000, 100000}; //--------------------------------------------------------------------------- /* delete list[0], list[j] and list[k] from list[0]...list[3n-1] and check the reduced list Return value: 0, if (sum of the first two thirds entries of the new list) <= (sum of the last third entries of the new list) 1, else -> abort */ int reduce(int list[3*Nmax], int newlist[3*Nmax], int j, int k, int n){ int i, m = 0, sum1 = 0, sum2 = 0; for(i=1; i sum2) return 1; // -> abort else return 0; } //--------------------------------------------------------------------------- // Print a solution for your entertainment void printsolution(void){ int j; if(solutioncounter % boundary[N]) return; printf("No. %Ld ", solutioncounter); for(j=N-1; j>=0; j--) printf("(%d %d %d) ", solution[j][0], solution[j][1], solution[j][2]); printf("\n"); } //--------------------------------------------------------------------------- // Built-in-test // tests that no error has occurred // Return value: 0, if anything ok // 1, if error int builtintest(void){ int j, k, sum, test[3*Nmax+1]; for(j=1; j<=3*N; j++) test[j] = 0; for(j=0; j Nmax || N < 1){ printf("Invalid N = %d\n", N); return 1; } for(hlp=i=0; i<3*N; i++) hlp += i+1; if(hlp % 2){ printf("There is no valid partition of 1...3*N for N = %d\n", N); return 1; } if(ac == 5){ a = atoi(av[2]); b = atoi(av[3]); c = atoi(av[4]); printf("a = %d b = %d c = %d\n", a, b, c); if(a < 1 || a > 3*N){ printf("Invalid value a = %d\n", a); error = 1; } if(b < 1 || b > 3*N){ printf("Invalid value b = %d\n", b); error = 1; } if(c < 1 || c > 3*N){ printf("Invalid value c = %d\n", c); error = 1; } if((a == b) || (a + b != c)){ printf("a and b must be different and must add up to c"); error = 1; } if(error) return 1; if(b < a){ hlp = b; b = a; a = hlp; } printf("Find %d disjoint triplets from 1...%d that contain the triple (%d %d %d)\n", N, 3*N, a, b, c); // create initial list in which the triple (a b c) is missing for(j=0, i=1; i 8 (das ist f(4) für OEIS A108235) a.out 13 1 2 3 -> 762.324 a.out 13 10 20 30 -> 3.987.507 a.out 13 -> 103.372.655 (das ist f(13) für OEIS A108235) a.out 16 1 2 3 -> 889.120.886 (siehe auch folgende Liste) \sourceoff Es geht nun darum a.out 16 1 b b+1 für b = 2, 3, ..., 47 zu berechnen. Folgendes wurde berechnet: \showon Komplette Liste der berechneten Werte \sourceon 1 2 3 889.120.886 1 3 4 921.635.465 1 4 5 962.359.593 1 5 6 1.010.562.667 1 6 7 1.066.239.459 1 7 8 1.128.319.611 1 8 9 1.200.430.705 1 9 10 1.281.347.974 1 10 11 1.370.418.483 1 11 12 1.469.595.473 1 12 13 1.568.971.244 1 13 14 1.683.148.960 1 14 15 1.811.796.731 1 15 16 1.943.693.569 1 16 17 2.046.389.287 1 17 18 2.175.228.046 1 18 19 2.318.611.993 1 19 20 2.471.084.712 1 20 21 2.624.515.292 1 21 22 2.789.662.822 1 22 23 2.945.942.651 1 23 24 3.074.298.960 1 24 25 2.913.951.079 1 25 26 2.904.088.956 1 26 27 3.029.283.957 1 27 28 3.160.486.143 1 28 29 3.295.589.992 1 29 30 3.448.134.464 1 30 31 3.599.592.584 1 31 32 3.757.089.678 1 32 33 3.906.652.914 1 33 34 4.047.751.528 1 34 35 4.191.875.829 1 35 36 4.353.084.955 1 36 37 4.502.544.293 1 37 38 4.642.346.446 1 38 39 4.785.252.859 1 39 40 4.920.083.992 1 40 41 5.039.172.458 1 41 42 5.166.149.522 1 42 43 5.270.456.559 1 43 44 5.358.518.135 1 44 45 5.429.211.918 1 45 46 5.466.980.797 1 46 47 5.453.508.240 1 47 48 5.268.925.424 Summe 142.664.107.305 \sourceoff \showoff Vielen Dank an gonz und hyperG für die Hilfe beim Ausfüllen der Liste😃 Viele Grüße StrgAltEntf


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4375
Wohnort: Harz
  Beitrag No.5, eingetragen 2020-04-14

Das Programm lässt sich problemfrei compilieren und liefert die angegebenen testwerte. Ich habe mich spontan für folgendes erstmal entschieden: 1,24,25 Wenn das durchläuft gucke ich mal nen bissl mehr Durchsatz zu schaffen :) Grüße gonz PS.: Gefühlt könnte es so etwas über 10 Stunden auf einem Kern nehmen? dann nehme ich gern auch gleich noch die drei in der Liste nachfolgenden Werte :)


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.6, eingetragen 2020-04-14

\quoteon(2020-04-14 18:06 - gonz in Beitrag No. 5) Das Programm lässt sich problemfrei compilieren und liefert die angegebenen testwerte. Ich habe mich spontan für folgendes erstmal entschieden: 1,24,25 Wenn das durchläuft gucke ich mal nen bissl mehr Durchsatz zu schaffen :) \quoteoff Super! Ist in der Liste vermerkt.


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.7, eingetragen 2020-04-15

Hat noch jemand Lust mitzumachen? Siehe Beitrag #4. Grüße StrgAltEntf


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.8, eingetragen 2020-04-16

OK, habe gerade den Fall a.out 13 10 20 30 -> 3.987.507 von 21,5 s auf 16,9 s optimiert Wenn ich morgen Zeit habe, kann ich 1 20 21 1 21 22 laufen lassen. Melde mich gegen 16:00


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.9, eingetragen 2020-04-16

\quoteon(2020-04-16 00:03 - hyperG in Beitrag No. 8) Wenn ich morgen Zeit habe, kann ich 1 20 21 1 21 22 laufen lassen. Melde mich gegen 16:00 \quoteoff Super, danke! (Ist in Liste in #4 vermerkt)


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.10, eingetragen 2020-04-16

16 1 20 21 16 1 21 22 laufen ab 16:20 Uhr. Die 2 mache ich auch gleich noch mit, da ich gerade genug Kerne frei habe 16 1 22 23 16 1 23 24 Wie waren denn Eure Zeiten so: - bei den 16er (könnte man doch in der Liste die Zeit mit am Ende der Zeile anfügen) - beim DreierPartitionen.exe 13 10 20 30 { 16,9 s }


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.11, eingetragen 2020-04-16

Hinweis: wer VC 2017 & 64 Bit benutzt, sollte statt %d besser %ld verwenden z.B. bei printf("(%ld %ld %ld) sonst stürzt alles ab. Und bei der 64 Bit Variable statt %Ld besser printf("No. %lld ", solutioncounter);


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.12, eingetragen 2020-04-16

Hallo hyperG, danke fürs Rechnen und für deine Rückmeldung zum Code. \quoteon(2020-04-16 16:36 - hyperG in Beitrag No. 11) 1) Hinweis: wer VC 2017 & 64 Bit benutzt, sollte statt %d besser %ld verwenden z.B. bei printf("(%ld %ld %ld) sonst stürzt alles ab. 2) Und bei der 64 Bit Variable statt %Ld besser printf("No. %lld ", solutioncounter); \quoteoff 1) Ist das so? Wieso wäre das besser? Wird bei dir etwas falsches angezeigt? 2) Bei mir funktioniert %lld nicht. Bei %lld gibt er bei mir die Zahlen modulo 2^32 aus. Meine Zeit für 13 10 20 30 sind ca. 35 Sek (handgestoppt). Da bist du also wirklich schnell! Was leistet dein Prozessor? Für 16 1 34 35 brauchte ich 16 Std.


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.13, eingetragen 2020-04-16

Bei VC 2017 64Bit hatte er zunächst nichts angezeigt und stürzte nach spätestens 10 s ab. Für die Zeitmessung baue ich immer \sourceon cpp #include //CLOCKS_PER_SEC double cputimeS () { return ((double) clock ())/((double) CLOCKS_PER_SEC); } \sourceoff mit ein. \sourceon cpp double beginS=cputimeS(); ... printf("Number of valid partitions = %lld in %7.3f s\n", solutioncounter,cputimeS()-beginS);//lld statt Ld ! std::cin.get();//warte auf ENTER, damit man Ergebnis noch lesen kann \sourceoff Variablentyp int verwende ich ungern, da man nie weiß, wie der Compiler das genau interpretiert. Mein 64 Bit Compiler macht daraus __int32 und die long long int solutioncounter ist __int64 Was noch Verbesserung bringt ist das Weglassen des Ausgelagerten Codes von reduce() -> der kann in der For-Schleife bleiben und endet mit if (sum1 > sum2) continue; (weniger Sprünge, weniger Stack..., ) Schon mein 11 Jahre alter i7 unter Win7 mit VC 2012 schaft die 21 s. Die 16,9 s sind mit VC 2017 per i9 unter Win10 mit AVX hoch optimiert. Leider bringen AVX2 Befehle oder memcpy, memset keine Verbesserung, da die Schleifen zu kurz sind (erst ab for( ..32) hat man Vorteile). Ich habe auch schon Parallelisierung probiert, aber da ich das Array nicht sauber trennen kann, wird die Summation {sum1 & sum2} trotz 2er Kerne langsamer (Compiler baut waits ein, da er bei 1 Array-Variable die Gefahr von parallelen Zugriffen vermutet, was aber hier nicht der Fall ist)! Statt Rekursion müsste man da was Linearisieren... ...die erste for(j=1; j<3*n; j++) könnte man in (3*n-1) Threads auftrennen {genug Kerne hab ich ja}.


   Profil
viertel
Senior Letzter Besuch: im letzten Quartal
Dabei seit: 04.03.2003
Mitteilungen: 27785
Wohnort: Hessen
  Beitrag No.14, vom Themenstarter, eingetragen 2020-04-16

Wow, da habe ich ja eine Lawine losgetreten 😲 Aber schön, daß euch die Aufgabe so einen Spaß macht


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.15, eingetragen 2020-04-16

Hallo, den Zeitmesser werde ich noch einbauen. Danke für den Tipp! \quoteon(2020-04-16 17:46 - hyperG in Beitrag No. 13) Bei VC 2017 64Bit hatte er zunächst nichts angezeigt und stürzte nach \quoteoff Das höre ich jetzt wirklich das erste Mal, dass ein Programm abstürzt, wenn %d statt %ld verwendet wird. Eine Google-Suche brachte mir auch keine Erkenntnis. Und du hast nichts am Code geändert? Ist das eine spezielle "Krankheit" von VC? Wenn ich mit ganzen Zahlen rechne und weiß, dass die garantiert nicht groß werden, benutze ich üblicherweise int. Und in diesem Programm kommen ja keine Zahlen vor, die größer als 10000000 sind. (Außer natürlich der Zähler.) Wie gesagt, %lld funktioniert bei mir nicht. (Ich nutze Borland C++ Builder 6.) Hat mich auch gewundert. Die Funktion reduce() würde ich gerne im Code belassen, da sich dadurch m. E. der Code besser lesen lässt. Dass dadurch das Programm langsamer wird, glaube ich eigentlich nicht, da ich denke, dass der Compiler es hoffentlich optimiert. Aber ich werde es ausprobieren. Grüße StrgAltEntf


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.16, eingetragen 2020-04-16

Du könntest mal das Wort inline vor dem Funktionsnamen probieren. Wenn keine großen Variablen-Speicher deklariert werden, optimiert ein guter Compiler die Stack-Umständlichkeiten weg. \sourceon meine erste Lösung nach 5 Stunden >DreierPartitionenFast.exe 16 1 20 21 =================== | OEIS A108235 | =================== Compute f(N) for N = 16 Output every 1000000-th solution a = 1 b = 20 c = 21 Find 16 disjoint triplets from 1...48 that contain the triple (1 20 21) No. 1000000 (1 20 21) (2 3 5) (4 23 27) (6 34 40) (7 25 32) (8 37 45) (9 33 42) (10 31 41) (11 35 46) (12 36 48) (13 17 30) (14 29 43) (15 24 39) (16 22 38) (18 26 44) (19 28 47) No. 2000000 (1 20 21) (2 3 5) (4 26 30) (6 31 37) (7 38 45) (8 32 40) (9 39 48) (10 34 44) (11 17 28) (12 29 41) (13 33 46) (14 22 36) (15 27 42) (16 19 35) (18 25 43) (23 24 47) No. 3000000 (1 20 21) (2 3 5) (4 28 32) (6 36 42) (7 38 45) (8 31 39) (9 14 23) (10 27 37) (11 30 41) (12 34 46) (13 22 35) (15 33 48) (16 24 40) (17 26 43) (18 29 47) (19 25 44) No. 4000000 (1 20 21) (2 3 5) (4 30 34) (6 36 42) (7 32 39) (8 35 43) (9 38 47) (10 31 41) (11 12 23) (13 24 37) (14 19 33) (15 25 40) (16 28 44) (17 29 46) (18 27 45) (22 26 48) No. 5000000 (1 20 21) (2 3 5) (4 32 36) (6 22 28) (7 41 48) (8 30 38) (9 35 44) (10 19 29) (11 34 45) (12 27 39) (13 24 37) (14 33 47) (15 31 46) (16 26 42) (17 23 40) (18 25 43) ... No. 2622000000 (1 20 21) (2 46 48) (3 44 47) (4 32 36) (5 17 22) (6 39 45) (7 26 33) (8 34 42) (9 28 37) (10 30 40) (11 24 35) (12 19 31) (13 16 29) (14 27 41) (15 23 38) (18 25 43) No. 2623000000 (1 20 21) (2 46 48) (3 44 47) (4 35 39) (5 26 31) (6 28 34) (7 36 43) (8 33 41) (9 18 27) (10 30 40) (11 12 23) (13 19 32) (14 24 38) (15 22 37) (16 29 45) (17 25 42) No. 2624000000 (1 20 21) (2 46 48) (3 44 47) (4 38 42) (5 32 37) (6 28 34) (7 16 23) (8 33 41) (9 18 27) (10 25 35) (11 29 40) (12 31 43) (13 17 30) (14 22 36) (15 24 39) (19 26 45) Number of valid partitions = 2624515292 in 18296.889 s = 5 h \sourceoff


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.17, eingetragen 2020-04-16

Noch mehr optimiert: mit \sourceon cpp #define __IS16BitVAR #if defined (__IS16BitVAR) #define OptimalTyp __int16 #else #define OptimalTyp __int32 #endif ... OptimalTyp solution[Nmax][3]; ... #if defined (__IS16BitVAR) printf("(%d %d %d) ", solution[j][0], solution[j][1], solution[j][2]); #else printf("(%ld %ld %ld) ", solution[j][0], solution[j][1], solution[j][2]); #endif \sourceoff habe ich einen Umschalter auf Variablentyp 16Bit statt 32 eingebaut. Bei DreierPartitionenFast16Bit.exe 13 10 20 30 nun partitions = 3987507 in 14.717 s statt 16,9 s !! Und die restlichen 3 Ergebnisse: \sourceon Ergebnisse für n=16 >DreierPartitionenFast.exe 16 1 21 22 | OEIS A108235 | Compute f(N) for N = 16 a = 1 b = 21 c = 22 Find 16 disjoint triplets from 1...48 that contain the triple (1 21 22) No. 1000000 (1 21 22) (2 3 5) (4 23 27) (6 30 36) (7 38 45) (8 40 48) (9 33 42) (10 24 34) (11 35 46) (12 31 43) (13 26 39) (14 18 32) (15 29 44) (16 25 41) (17 20 37) (19 28 47) ... No. 2789000000 (1 21 22) (2 46 48) (3 44 47) (4 38 42) (5 25 30) (6 31 37) (7 10 17) (8 28 36) (9 26 35) (11 29 40) (12 33 45) (13 19 32) (14 27 41) (15 24 39) (16 18 34) (20 23 43) Number of valid partitions = 2789662822 in 19537.926 s Compute f(N) for N = 16 a = 1 b = 22 c = 23 Find 16 disjoint triplets from 1...48 that contain the triple (1 22 23) No. 1000000 (1 22 23) (2 3 5) (4 20 24) (6 37 43) (7 34 41) (8 28 36) (9 21 30) (10 38 48) (11 33 44) (12 27 39) (13 29 42) (14 32 46) (15 25 40) (16 31 47) (17 18 35) (19 26 45) ... No. 2945000000 (1 22 23) (2 46 48) (3 44 47) (4 37 41) (5 28 33) (6 20 26) (7 36 43) (8 31 39) (9 18 27) (10 19 29) (11 34 45) (12 30 42) (13 25 38) (14 21 35) (15 17 32) (16 24 40) Number of valid partitions = 2945942651 in 20667.131 s Compute f(N) for N = 16 a = 1 b = 23 c = 24 Find 16 disjoint triplets from 1...48 that contain the triple (1 23 24) No. 1000000 (1 23 24) (2 3 5) (4 18 22) (6 25 31) (7 32 39) (8 28 36) (9 38 47) (10 34 44) (11 37 48) (12 33 45) (13 30 43) (14 27 41) (15 20 35) (16 26 42) (17 29 46) (19 21 40) ... No. 3074000000 (1 23 24) (2 46 48) (3 44 47) (4 39 43) (5 33 38) (6 22 28) (7 34 41) (8 29 37) (9 18 27) (10 30 40) (11 15 26) (12 19 31) (13 32 45) (14 21 35) (16 20 36) (17 25 42) Number of valid partitions = 3074298960 in 21574.542 s \sourceoff


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.18, eingetragen 2020-04-16

Ich kann morgen mit 1 17 18 1 18 19 1 19 20 weitermachen. Mal sehen, ob das deutlich unter 5 h werden...


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.19, eingetragen 2020-04-16

Liste aktualisiert ... morgen mehr 😃


   Profil
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 2352
Wohnort: Thüringen
  Beitrag No.20, eingetragen 2020-04-17

Hallo Ihr ! Ich habe ein Verständnisproblem mit der Lösung. Frage, wie lauten die 8 Lösungen für die 4 Tripel der Zahlen 1-12 Ich frage deshalb, weil hyperG in #16 2mal (4 32 36) an verschiedenen Stellen angegeben hat. Wenn wir die Tripel tauschen dürfen, dann gäbe es ja schon 24 Kombinationen bei den Zahlen 1-12 zu 4 Tripel. https://matheplanet.de/matheplanet/nuke/html/images/forum/subject/confused.gif


   Profil
MartinN
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.08.2016
Mitteilungen: 1364
Wohnort: Bayern
  Beitrag No.21, eingetragen 2020-04-17

Wo wurden bei hyperG Tripel getauscht? Das sind doch alles verschiedene Sets (nur weil ein Tripel in mehreren Sets vorkommen kann, sind die doch dennoch unterschiedlich... Etwa die Tripel mit der 2 bei den dargestellten)


   Profil
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 2352
Wohnort: Thüringen
  Beitrag No.22, eingetragen 2020-04-17

Moin ! Meine das anders, es gibt dieselben Tripel (a,b,a+b) in verschiedenen Lösungen, an verschiedenen Positionen. Wenn das gestattet ist, wieso sind es bei 12 Zahlen 1 bis 12 nur 8 Lösungen, wenn wir doch bei 4 Tripelstellungen schon 24 Kombinationen hätten. Ich fragte deshalb nach den 8 Lösungen von f(4), damit mir das klarer wird. Haben wir eine gültige Lösung a,b,c,d indem alle 12 Zahlen verankert sind, ist jede Kombinbation von a,b,c,d 24 in der Anzahl Per Hand fand ich: (1,11,12)=a , (2,7,9)=b, (4,6,10)=c, (3,5,8)=d Nun sind a,b,c,d ; a,b,d,c usw mgl.


   Profil
MartinN
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.08.2016
Mitteilungen: 1364
Wohnort: Bayern
  Beitrag No.23, eingetragen 2020-04-17

Wie du sagst... Es sind verschiedene Lösungen. Die Mengen {1,2,7,8} und {2,7,28,12} sind auch nicht identisch mit weil in beiden die 7 an verschiedenen Positionen vorkommt... Und statt Zahlen kannst du hier Tripel nehmen.


   Profil
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 2352
Wohnort: Thüringen
  Beitrag No.24, eingetragen 2020-04-17

Nachtrag: Per Hand fand ich: (1,11,12)=a , (2,7,9)=b, (4,6,10)=c, (3,5,8)=d Nun sind a,b,c,d ; a,b,d,c usw mgl. Also wie lauten denn die Lösungen für f(4) ?


   Profil
Ixx
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 05.04.2020
Mitteilungen: 339
  Beitrag No.25, eingetragen 2020-04-17

\quoteon(2020-04-17 01:42 - pzktupel in


   Profil
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 2352
Wohnort: Thüringen
  Beitrag No.26, eingetragen 2020-04-17

Danke Ixx ! Also ist eine Permutation von a,b,c,d nicht erlaubt ?! Aber sofern paar Tripel anders sind, dürfen andere identische Tripel offensichtlich verwendet werden. Sowas wie: (1,2,3) (4,5,9) (10,18,28) (20,11,31) ... (1,2,3) (4,5,9) (10,18,28) (20,12,32) ... Eben insofern mindestens einer abweicht....


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.27, eingetragen 2020-04-17

§1: max=3*N bei N=4 ist 12 Maximum! §2: pro Zeile müssen alle Zahlen von 1...max vorkommen \sourceon nameDerSprache DreierPartitionenFast16Bit.exe 4 | OEIS A108235 | =================== Compute f(N) for N = 4 Output every solution Find 4 disjoint triplets from 1...12 No. 1 (1 5 6) (2 8 10) (3 9 12) (4 7 11) No. 2 (1 5 6) (2 9 11) (3 7 10) (4 8 12) No. 3 (1 6 7) (2 10 12) (3 8 11) (4 5 9) No. 4 (1 8 9) (2 10 12) (3 4 7) (5 6 11) No. 5 (1 9 10) (2 4 6) (3 8 11) (5 7 12) No. 6 (1 10 11) (2 5 7) (3 6 9) (4 8 12) No. 7 (1 11 12) (2 6 8) (3 7 10) (4 5 9) No. 8 (1 11 12) (2 7 9) (3 5 8) (4 6 10) Number of valid partitions = 8 in 0.001 s \sourceoff


   Profil
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 2352
Wohnort: Thüringen
  Beitrag No.28, eingetragen 2020-04-17

Morgen hyperG! >max=3*N bei N=4 ist 12 Maximum! Weiß ich doch, nur sind im Post #16 mehrere gleiche Tripel in verschiedenen Lösungen enthalten. Offensichtlich ist dies bei f(4) noch nicht machbar. Aber eine Permutation ist dennoch nicht erlaubt, wo alle Tripel einer! Lösung an eine andere Stelle verschoben werden. Ein weitere Lösung ist nur, wenn mindestens 1/2 Tripel anders in der Zusammensetzung ist und alle anderen wären gleich. (theoretisch betrachtet)


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4375
Wohnort: Harz
  Beitrag No.29, eingetragen 2020-04-17

So hier sind noch zwei Werte: No. 3295000000 (1 28 29) (2 46 48) (3 44 47) (4 39 43) (5 26 31) (6 36 42) (7 20 27) (8 10 18) (9 24 33) (11 30 41) (12 25 37) (13 32 45) (14 21 35) (15 19 34) (16 22 38) (17 23 40) Number of valid partitions = 3295589992 No. 3448000000 (1 29 30) (2 46 48) (3 44 47) (4 41 45) (5 33 38) (6 18 24) (7 36 43) (8 26 34) (9 22 31) (10 13 23) (11 21 32) (12 27 39) (14 28 42) (15 25 40) (16 19 35) (17 20 37) Number of valid partitions = 3448134464 Einen schönen Freitag / Weg ins Wochenende! Gerhard/Gonz


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.30, eingetragen 2020-04-17

Hallo Gonz, hast Du die Zeiten Deiner Berechnung? @pzktupel: zu "wenn mindestens 1/2 Tripel anders in der Zusammensetzung" würde ich besser sagen: ein Datensatz (Zeile) ist dann gültig/unterscheidbar, wenn sie gegenüber allen anderen mindestens 2 unterscheidbare Tripel hat (wenn ein anderer Zahlenwert gekommen ist, muss er ja aus einem anderen Tripel "herausgenommen" worden sein). und die 3 Ergebnisse mit der neuen schnellen exe: \sourceon nameDerSprache Compute f(N) for N = 16 a = 1 b = 17 c = 18 Find 16 disjoint triplets from 1...48 that contain the triple (1 17 18) No. 1000000 (1 17 18) (2 3 5) (4 24 28) (6 38 44) (7 32 39) (8 29 37) (9 33 42) (10 36 46) (11 23 34) (12 19 31) (13 35 48) (14 26 40) (15 30 45) (16 25 41) (20 27 47) (21 22 43) .. No. 2175000000 (1 17 18) (2 46 48) (3 44 47) (4 39 43) (5 28 33) (6 30 36) (7 24 31) (8 15 23) (9 25 34) (10 35 45) (11 27 38) (12 20 32) (13 29 42) (14 26 40) (16 21 37) (19 22 41) Number of valid partitions = 2175228046 in 12874 s etwa 3,6h Compute f(N) for N = 16 a = 1 b = 18 c = 19 Find 16 disjoint triplets from 1...48 that contain the triple (1 18 19) No. 1000000 (1 18 19) (2 3 5) (4 24 28) (6 30 36) (7 34 41) (8 37 45) (9 39 48) (10 33 43) (11 27 38) (12 32 44) (13 29 42) (14 21 35) (15 16 31) (17 23 40) (20 26 46) (22 25 47) ... No. 2318000000 (1 18 19) (2 46 48) (3 44 47) (4 37 41) (5 34 39) (6 30 36) (7 28 35) (8 21 29) (9 24 33) (10 16 26) (11 32 43) (12 15 27) (13 25 38) (14 31 45) (17 23 40) (20 22 42) Number of valid partitions = 2318611993 in 14383 s fast 4 h Compute f(N) for N = 16 a = 1 b = 19 c = 20 Find 16 disjoint triplets from 1...48 that contain the triple (1 19 20) No. 1000000 (1 19 20) (2 3 5) (4 23 27) (6 37 43) (7 35 42) (8 36 44) (9 30 39) (10 22 32) (11 29 40) (12 26 38) (13 34 47) (14 17 31) (15 33 48) (16 25 41) (18 28 46) (21 24 45) ... No. 2471000000 (1 19 20) (2 46 48) (3 44 47) (4 41 45) (5 30 35) (6 36 42) (7 24 31) (8 26 34) (9 28 37) (10 23 33) (11 32 43) (12 15 27) (13 16 29) (14 25 39) (17 21 38) (18 22 40) Number of valid partitions = 2471084712 in 15814 s = 4,39 h \sourceoff [Die Antwort wurde nach Beitrag No.28 begonnen.]


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.31, eingetragen 2020-04-17

Interessant ist ja, dass beim 16er Block nur 1 24 25 2.913.951.079 und der letzte Datensatz fallend zum Vorgänger sind. Habe mal die 17er aus Interesse gestartet: DreierPartitionenFast16Bit.exe 17 1 2 3 DreierPartitionenFast16Bit.exe 17 1 3 4 DreierPartitionenFast16Bit.exe 17 1 4 5


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4375
Wohnort: Harz
  Beitrag No.32, eingetragen 2020-04-17

Die letzten beiden Läufe (je auf einem Kern, ich parallelisiere einfach indem ich auf mehreren Terminals je einen Lauf starte) ungefähr 12 Stunden, wobei das recht ungenau ist, je nachdem, wann ich mal wieder "vorbeigucke". Den Wert 1-24-25 werde ich nochmal durchlaufen lassen, nicht dass ich mich da doch irgendwo "vergriffen" habe.


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.33, eingetragen 2020-04-17

Ich habe noch genug Kerne. Bei mir sollte DreierPartitionenFast16Bit.exe 16 1 24 25 nur 5 h dauern. Ich lasse das mal laufen. Die 17er rennen ja mit gewaltiger Geschwindigkeit hoch: nach 2 h schon 2 Mrd...


   Profil
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 8027
Wohnort: Milchstraße
  Beitrag No.34, eingetragen 2020-04-17

Es ist vollbracht! 142.664.107.305 Danke an gonz und hyperG für die fleißige Mithilfe und danke an viertel für das Rätsel 👍


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.35, eingetragen 2020-04-17

Hallo gonz, Dein Wert stimmte: \sourceon nameDerSprache DreierPartitionenFast16Bit.exe 16 1 24 25 No. 2912000000 (1 24 25) (2 46 48) (3 44 47) (4 34 38) (5 36 41) (6 26 32) (7 14 21) (8 22 30) (9 31 40) (10 35 45) (11 28 39) (12 15 27) (13 29 42) (16 17 33) (18 19 37) (20 23 43) No. 2913000000 (1 24 25) (2 46 48) (3 44 47) (4 37 41) (5 33 38) (6 34 40) (7 36 43) (8 20 28) (9 21 30) (10 16 26) (11 31 42) (12 23 35) (13 19 32) (14 15 29) (17 22 39) (18 27 45) Number of valid partitions = 2913951079 in 21023.711 s = 5,8 h \sourceoff


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4375
Wohnort: Harz
  Beitrag No.36, eingetragen 2020-04-17

Ja, irgendwie ist da eine "Delle" in den Werten... Danke für's nachprüfen :)


   Profil
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1846
  Beitrag No.37, eingetragen 2020-04-18

Die 17er sind doch sehr viel größer: \sourceon nameDerSprache DreierPartitionenFast16Bit.exe 17 1 2 3 No. 10873500000 (1 2 3) (4 47 51) (5 45 50) (6 43 49) (7 30 37) (8 34 42) (9 29 38) (10 25 35) (11 28 39) (12 24 36) (13 20 33) (14 32 46) (15 16 31) (17 23 40) (18 26 44) (19 22 41) (21 27 48) Number of valid partitions = 10873579079 in 47141.497 s =13 h 17 1 3 4 No. 11265300000 (1 3 4) (2 49 51) (5 45 50) (6 42 48) (7 30 37) (8 23 31) (9 34 43) (10 29 39) (11 22 33) (12 32 44) (13 27 40) (14 24 38) (15 20 35) (16 25 41) (17 19 36) (18 28 46) (21 26 47) Number of valid partitions = 11265391089 in 48454.587 s \sourceoff


   Profil
OmmO
Senior Letzter Besuch: im letzten Quartal
Dabei seit: 01.12.2006
Mitteilungen: 2312
Wohnort: Kiel
  Beitrag No.38, eingetragen 2020-04-18

Nette Idee, den Contest von Al Zimmermann hier zu lösen.


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4375
Wohnort: Harz
  Beitrag No.39, eingetragen 2020-04-18

Ja, tatsächlich sieht's auf den Monitoren der Computer, die sich mit Az beschäftigen, verdächtig ähnlich aus * grins


   Profil
Dies ist eine Knobelaufgabe!
Der Themensteller hat bestimmt, dass Du Deine Lösung nicht direkt im Forum posten darfst.
Sende stattdessen Deine Lösung als private Nachricht an den Themensteller. Benutze dazu den Link 'Privat', den Du unter seinem Beitrag findest.
Der Themensteller wird zu gegebener Zeit über eingesandte (richtige) Lösungen informieren
und nach Ablauf einer (von ihm) festgelegten Zeit alle Lösungen veröffentlichen.
-->> Fortsetzung auf der nächsten Seite -->>
Seite 1Gehe zur Seite: 1 | 2 | 3 | 4 | 5 | 6  

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]