Zypper
30.12.2015, 22:16

Formel gesucht

Liebe Leute,

da ich damals in der Schule in Mathe nicht aufgepasst habe, sondern sogar mit einer 6 im Zeugnis sitzenbleiben musste, bin ich heute auf eure Mithilfe angewiesen. Es geht um eine Formel, mit der ich berechnen kann, wie viele von diesen hier in weiß dargestellten Elementen ich bauen muss, wenn diese Bedingungen gelten sollen:

[image]


- Es gibt drei Farben, die NUR auf den Positionen 1, 2 und/oder 3 vorkommen können (dunkelgrün, orange, tan)
- Es gibt drei Farben, die NUR auf den Positionen A, B und/oder C vorkommen können (rosa, lime und lila)
- Jede Farbe kann auf einem dreieckigen Element einmal, zweimal oder dreimal vorkommen. (Also beispielsweise 1 Farbe auf A, B UND C sowie 1 Farbe auf 1, 2 UND 3, 1 Farbe auf A und B, 2 Farben auf 1 und 2 usw)
- Die Farben dunkelgrün, orange und tan tauchen nur als Paar auf und belegen gemeinsam die Postionen 1, 2 oder 3
- Jedes Element soll sich in mindestens in 1 Farbe oder 1 Position von allen anderen Elementen unterscheiden.

Mit der Anwendung dieser Formel möchte ich elegant wissen können:

Wieviele Elemente muss ich bauen, wenn ich – wie oben – 6 verschiedene Farben auf je drei verschiedenen Positionen einsetze?

Wieviele Elemente brauche ich, wenn ich nun sagen wir 4 Farben auf A, B oder C einsetzen will, auf 1, 2 und 3 aber bei den dreien bleiben will?

Und nun munter weiter: beispielsweise 4 auf ABC, 5 auf 1,2,3.

Für eure Hilfe bin ich sehr dankbar!

Grüßle
A


Mit Gruß und Dank
Zypper

[image]


Über das Projekt 366 bei FlixBrix
Zypper im LEGO-Intranet
Zypper im SWR-Treffpunkt "Sammelleidenschaft" ab Minute 8.
Zypper bei flickr
Zyppers Werke in einer Diashow 1989-2020


cimddwc
30.12.2015, 23:30

Als Antwort auf den Beitrag von Zypper

Re: Formel gesucht

Hallo,

Meine Mathe-LK-Zeit liegt schon 'ne Weile zurück, aber:
Seien a die Anzahl der verfügbaren Farben für die 1x1-Fliesen, also Pos. 1,2 und 3, und b die Anzahl für A,B,C (in der ursprünglichen Frage also a=b=3). Dann hast du ganz einfach a^3*b^3 mögliche Kombinationen, bei je 3 Farben also 27*27=729.
Bei einmal 3 und einmal 4 Farben sind's entsprechend 64*27=1728.

Wobei ich davon ausgehe, dass Farbkombinationen, die sich nur durch Rotation oder Spiegelung des Dreiecks voneinander unterscheiden, auch tatsächlich als unterschiedliche Farbkombinationen gelten sollen. Wenn nicht, wären's weniger. Bei a=b=3 dann 3!*3!=36, wenn ich mich nicht irre, bei mehr Farben wird's komplizierter... vermutlich a!*(3 aus a)*b!*(3 aus b), aber ganz zu Ende gedacht ist das nicht...

Grüße,
Andreas



freakwave
31.12.2015, 01:51

Als Antwort auf den Beitrag von cimddwc

Editiert von
freakwave
31.12.2015, 02:02

+1Re: Formel gesucht

cimddwc hat geschrieben:


Wobei ich davon ausgehe, dass Farbkombinationen, die sich nur durch Rotation oder Spiegelung des Dreiecks voneinander unterscheiden, auch tatsächlich als unterschiedliche Farbkombinationen gelten sollen. Wenn nicht, wären's weniger. Bei a=b=3 dann 3!*3!=36, wenn ich mich nicht irre, bei mehr Farben wird's komplizierter... vermutlich a!*(3 aus a)*b!*(3 aus b), aber ganz zu Ende gedacht ist das nicht...


Wenn die rotationssymmetrischen weggelassen werden dann sollte es ja so sein (nur für die Ecken)

grundsätzlich:
3 Plätze zu 3 Möglichkeiten = 3 * 3 * 3 = 27

Rotationssymmetrisch:
minus den drei einfärbigen = 27 - 3 = 24

durch drei teilen, weil Dreieck: 24 / 3 = 8

8 einmalige Muster

Jetzt noch die drei einfarbigen dazu: 8 + 3 = 11

((( Fe ^ Pe ) - Fe ) / Pe ) + Fe

Das gilt aber nur wenn die Ecken sich ändern.

Wenn die Seiten sich ändern kann deren Rotation nicht vernachlässigt werden. daher gilt für die Seitenmuster noch immer 3 x 3 x 3 = 27

Insgesamt jetzt 27 * 11 = 297 würde ich zu später Stunde tippen...

Also dann:
(((( Fe ^ E ) - Fe ) / E ) + Fe ) * (Fs ^ S)

Fe = Anzahl der möglichen Farben an den Ecken
E = Anzahl der Ecken
Fs = Anzahl der möglichen Farben an den Seiten
S = Anzahl der Seiten

Gerald


My Flickr
Blog zum Trainposter V2
LDraw Teile Update 2019-01


JuL gefällt das


Kirk
31.12.2015, 15:49

Als Antwort auf den Beitrag von Zypper

+1Re: Formel gesucht

Zypper hat geschrieben:

da ich damals in der Schule in Mathe nicht aufgepasst habe, sondern sogar mit einer 6 im Zeugnis sitzenbleiben musste, bin ich heute auf eure Mithilfe angewiesen.


Hallo Andreas,

wenn man sich Deine professionelle Aufgabenbeschreibung durchliest, mag man Deine einleitenden Worte kaum glauben!
Zwar bin ich berufsbedingt mathematisch vorbelastet, aber Kombinatorik war nie so mein Ding. Außerdem habe ich die Vermutung, daß Du ja nicht nur die reine Anzahl an Teilen wissen möchtest, sondern möglicherweise auch eine Übersicht über die Kombinationen haben möchtest. Als extrem fauler Mensch lasse ich bei solchen Dingen gerne meinen Computer für mich arbeiten. Wenn Du das auch nutzen möchtest, mußt Du nur folgende Schritte ausführen (klingt komplizierter, als es ist):

1.) strawberryperl.com herunterladen und installieren (wenn Du Dir nicht sicher bist, welche Version Du brauchst, nimm die 32Bit-Version, denn die funktioniert garantiert). Falls Du einen Mac (Apple-PC) hast, muß ich leider passen. Falls Du Linux verwendest, ist PERL vermutlich bereits "ab Werk" vorinstalliert und Du muß lediglich die erste Zeile an Deine Distribution anpassen.
2.) Auf Deiner Festplatte legst Du ein leeres Verzeichnis an (z.B. C:\Farbdreiecke )
3.) Öffne den Editor (notepad.exe)
4.) Kopie den Text aus dem Kasten "run.bat" aus dem Forum in den Editor und speichere die Datei in Deinem neuen Verzeichnis als run.bat
5.) Auf die selbe Weise kopierst Du den Kasten "script.pl" in den Editor und speicherst die Datei im selben Verzeichnis als script.bat

Jetzt kannst Du im Windows-Explorer einen Doppelklick auf die Datei run.bat machen und erhältst die Anwort auf Deine Frage. Zusätzlich wird automatisch in dem Verzeichnis eine neue Datei "index.html" erstellt, die eine Übersicht über alle einmaligen Kombinationen enthält. Mit einem Doppelklick auf index.html wird die Datei von Deinem Lieblingsbrowser (z.B. Internet Explorer oder Firefox) dargestellt.

Du kannst die Anzahl der Farben beliebig erweitern, indem Du einfach weitere Einträge in die Listen @EinMalEins und @EinMalZwei hinzufügst.
Wichtig dabei: Alle Farben, die Du dort einträgst, müssen zuerst in die Liste %Farben eingetragen werden. Wenn Du dort weitere Farben hinzufügen möchtest, findest Du hier eine Farbtabelle, wo Du in der Spalte "Hex" die Farbwerte ablesen kannst, die Du für mein Programm brauchst. (Achtung: Meine Beispiel-Farbwerte habe ich aus einer anderen Quelle - sie können minimal von der Liste abweichen)

Für Deine ursprüngliche Frage hat mein Programm übrigens folgendes Ergebnis ermittelt:
Kombinationen gesamt: 729
- davon einmalig: 249
- davon Dubletten: 480

Noch ein wichtiger Hinweis: Eine "Dublette" ist ein Bauteil, das sich durch Rotation um 120° oder 240° ergibt. Nicht geprüft werden ähnliche Teile, die sich durch Spiegelung ergeben

Viel Spaß beim Experimentieren wünscht

Thomas

run.bat
@ECHO OFF
CLS
PERL script.pl
PAUSE


script.pl
#!perl.exe
use strict;

print "\nZyppers Farbdreicke\n\n";

my %Farben = (
"dunkelgruen" => "2E5543",
"orange" => "FF7E14",
"tan" => "DEC69C",
"rosa" => "DA70D6",
"lime" => "A6CA55",
"lila" => "5F2683",
"Ende" => "der Liste"
);

# ACHTUNG! Die Namen in diesen beiden Listen muessen EXAKT mit den Namen aus der Liste oben uebereinstimmen!
my @EinMalEins = ("dunkelgruen","orange","tan");
my @EinMalZwei = ("rosa","lime","lila");
my %Used = ();

open ( FILE, ">index.html" );
print FILE "<html>\n<head>\n<title>Zyppers Farbdreiecke</title>\n";
print FILE "<style>\n* {padding:0;}\nth { width:8mm; height:8mm; text-align:center; border-bottom: solid 3px #FFF; }\ntd { width:16mm; height:8mm; border-left: solid 1px #000; border-right: solid 1px #000; border-bottom: solid 3px #FFF; }\n</style>\n";
print FILE "</head>\n<body style=\"background:#FFF;\">\n";
print FILE "<h1>Zyppers Farbdreiecke</h1>\n";
print FILE "<table style=\"border-collapse:collapse;empty-cells:show;\">\n";
my $Gesamt = 0;
my $Einmalig = 0;
my $Doppelt = 0;
foreach my $PosA ( @EinMalZwei ) {
foreach my $PosB ( @EinMalZwei ) {
foreach my $PosC ( @EinMalZwei ) {
foreach my $Pos1 ( @EinMalEins ) {
foreach my $Pos2 ( @EinMalEins ) {
foreach my $Pos3 ( @EinMalEins ) {
$Gesamt++;

my $ID1 = "$Farben{$Pos1}$Farben{$PosA}$Farben{$Pos2}-$Farben{$Pos2}$Farben{$PosB}$Farben{$Pos3}-$Farben{$Pos3}$Farben{$PosC}$Farben{$Pos1}";
my $ID2 = "$Farben{$Pos2}$Farben{$PosB}$Farben{$Pos3}-$Farben{$Pos3}$Farben{$PosC}$Farben{$Pos1}-$Farben{$Pos1}$Farben{$PosA}$Farben{$Pos2}";
my $ID3 = "$Farben{$Pos3}$Farben{$PosC}$Farben{$Pos1}-$Farben{$Pos1}$Farben{$PosA}$Farben{$Pos2}-$Farben{$Pos2}$Farben{$PosB}$Farben{$Pos3}";

if ( $Used{$ID1}+$Used{$ID2}+$Used{$ID3} == 0 ) {
$Einmalig++;
print FILE "<tr>\n";
print FILE "<th style=\"background:\#$Farben{$Pos1};\" title=\"$Pos1\"></th>\n<td style=\"width:16mm;background:\#$Farben{$PosA};\" title=\"$PosA\"></td>\n<th style=\"background:\#$Farben{$Pos2};\" title=\"$Pos2\"></th>\n<th>-</th>\n";
print FILE "<th style=\"background:\#$Farben{$Pos2};\" title=\"$Pos2\"></th>\n<td style=\"width:16mm;background:\#$Farben{$PosB};\" title=\"$PosB\"></td>\n<th style=\"background:\#$Farben{$Pos3};\" title=\"$Pos3\"></th>\n<th>-</th>\n";
print FILE "<th style=\"background:\#$Farben{$Pos3};\" title=\"$Pos3\"></th>\n<td style=\"width:16mm;background:\#$Farben{$PosC};\" title=\"$PosC\"></td>\n<th style=\"background:\#$Farben{$Pos1};\" title=\"$Pos1\"></th>\n";
print FILE "</tr>\n\n";
} else {
$Doppelt++;
} # if-else
$Used{$ID1}++;
$Used{$ID2}++;
$Used{$ID3}++;

} # foreach $Pos3
} # foreach $Pos2
} # foreach $Pos1
} # foreach $PosC
} # foreach $PosB
} # foreach $PosA

print FILE "</table>\n";
print "Kombinationen gesamt: $Gesamt\n";
print FILE "Kombinationen gesamt: $Gesamt<br />\n";
print "- davon einmalig: $Einmalig\n";
print FILE "- davon einmalig: $Einmalig<br />\n";
print "- davon Dubletten: $Doppelt\n\n";
print FILE "- davon Dubletten: $Doppelt<br />\n";
print FILE "</body>\n</html>\n";
close ( FILE );


\\//_ Build long and ℘rosper!


JuL gefällt das


Kirk
31.12.2015, 16:03

Als Antwort auf den Beitrag von Kirk

Re: Formel gesucht

Achja, ich habe es auch mal für je 6 Farben durchrechnen lassen:

Kombinationen gesamt: 46.656
- davon einmalig: 15.576
- davon Dubletten: 31.080

Bin schon sehr gespannt, wie lange Du brauchst, um die 15.576 Dreiecke zu bauen

Wenn ein Plättchen eine Höhe von 3,2mm hat und jedes dieser Gebilde aus 2 Lagen besteht (also 6,4mm ingesamt), ergäbe sich eine Länge (oder Höhe?) von:
15.576 * 6,4 = 99686,4 mm bzw. 9968,64 cm bzw. 99,6864.

Wenn man leichte Unebenheiten der Teile berücksichtigt, hat ein Gebilde aus sämtlichen Kobinationen mit 6+6 Farben also ziemlich genau eine Länge von 100m.

Happy building!


\\//_ Build long and ℘rosper!


freakwave
31.12.2015, 19:05

Als Antwort auf den Beitrag von freakwave

Re: Formel gesucht

Nach der Durchsicht von Thomas' Brute-Force Methode und dem Delta kam ich drauf dass ich um 1:30 nicht mehr bedacht hatte dass es bei den einfarbigen "Ecken" doch wieder rotationssymmetrische Stücke gibt.
Daher muss die Formel ein wenig angepasst werden:

Somit muss kombiniert werden für die verschiedenfarbigen Ecken:

((( Fe ^ E ) - Fe ) / E ) * (Fs ^ S)

und für die gleichfarbigen Ecken, diesmal die Rotation der Seiten ausblenden:

Fe * ((((Fs ^ S) - Fs) / S) + Fs)

D.h. Die Anzahl der möglichen Kombinationen ist dann die Summe:

(((( Fe ^ E ) - Fe ) / E ) * (Fs ^ S)) + (Fe * ((((Fs ^ S) - Fs) / S) + Fs))

Fe = Anzahl der möglichen Farben an den Ecken
E = Anzahl der Ecken
Fs = Anzahl der möglichen Farben an den Seiten
S = Anzahl der Seiten

Für Fe = 3 und Fs= 3 ergibt sich:
(((( 3 ^ 3 ) - 3 ) / 3 ) * (3 ^ 3)) + (3 * ((((3 ^ 3) - 3) / 3) + 3))) =
(((27 - 3 ) / 3 ) * 27) + (3 * (((27 - 3) / 3) + 3))) =
((24 / 3 ) * 27) + (3 * ((24 / 3) + 3))) =
(8 * 27) + (3 * (8 + 3))) =
216 + 3 * 11 =
216 + 33 =
249


My Flickr
Blog zum Trainposter V2
LDraw Teile Update 2019-01


Gesamter Thread: