2010-12-26 3 views
2

Ich frage mich, ob es eine Formel/einen Trick gibt, um zu berechnen, welche Zahl rechts oder links auf einem normalen 6-seitigen Würfel ist, wenn Sie wissen, welche Zahl oben ist und welche Ihnen gegenübersteht.Nummer links/rechts auf einem Würfel?

Sie benötigen es, ein Problem zu lösen, aber ich fühle mich nicht alle 24 Möglichkeiten in einer if-Anweisung wie die Auflistung ... :)

+0

gut, nur 12, da die Matrix diagonal symmetrisch ist. –

Antwort

6

Es gibt keine 24 Möglichkeiten.

Von Wikipedia:

Die Summe der Zahlen auf gegenüberliegenden Gesichter ist sieben.

So wie Sie bereits zwei Zahlen kennen, gibt es 4 Möglichkeiten übrig.

Ich bin mir nicht sicher, was du mit "oben" und "dir gegenüber" meintest, aber ich denke, du meintest hier zwei Nachbargesichter, also gibt es nur noch 2 Möglichkeiten, wie du es auch kennst (und diese 2 Möglichkeiten unterscheiden sich nur durch die zwei Zahlen links/rechts oder rechts/links).

So zum Beispiel eines aufgeklappten Würfel mit, du hast „1“ auf der Oberseite, „2“ mit Blick auf Dich:

X 
X1X 
2 
X 

Sie wissen jetzt, dass die gegenüberliegenden Flächen werden „6“ (unten) und "5" (von Ihnen weg):

5 
X1X 
2 
6 

So gibt es diese beiden Möglichkeiten:

5 5 
314 413 
2 2 
6 6 

Es gibt nur eine Mög ity links, wenn Sie wissen, ob Ihr sterben „linkshändige“ oder „rechtshändig“ (wieder Wikipedia) ist:

Diese Einschränkung eine Wahl mehr abstraktes Design lässt: die Gesichter repräsentieren 1, 2 und 3 bzw. kann entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn Reihenfolge um diesen Scheitelpunkt platziert werden. Wenn die Flächen 1, 2 und 3 gegen den Uhrzeigersinn um ihren gemeinsamen Eckpunkt laufen, heißt der Würfel "rechtshändig"; wenn sie im Uhrzeigersinn laufen heißt es "Linkshänder".Standard modernen westlichen Würfel sind Rechtshänder, während chinesische Würfel sind oft linkshändigen

So zum Beispiel oben, die linke ein „Linkshänder“ die ist, die richtige a "Rechtshänder" stirbt.

+0

Genau, es kommt auf zwei Möglichkeiten für jede "Konfiguration" an. Aber woher weiß ich, was links und was rechts ist? – faximan

+0

Dies ist nur gegeben, wenn Sie wissen, ob Ihr Würfel "Linkshänder" oder "Rechtshänder" ist. Siehe Bearbeiten. – schnaader

4

Gegen Seiten eines Würfels immer bis 7 aufaddieren (zumindest, Das ist die Konvention).

Durch Ausschlussverfahren können Sie sagen, was das "unsichtbare" Paar sein wird:

  • 1/6
  • 2/5
  • 3/4

Also, für Jedes Paar oben, wenn Sie eine Nummer von ihm sehen können, entfernen Sie es. Das verbleibende Paar ist das, nach dem Sie suchen.

Da es keine Möglichkeit gibt, die "Händigkeit" des Würfels zu bestimmen, ist es unmöglich zu sagen, welches Paar rechts und welches links sein wird.

+1

Sie brauchen immer noch die Orientierung. – ShreevatsaR

+0

@ShreevatsaR - Dies ist mit den gegebenen Informationen nicht möglich, da es keine andere Beziehung zwischen den Seiten eines Würfels gibt. – Oded

+0

Nun, dass die Zahlen auf gegenüberliegenden Seiten zusammen 7 ergeben, ist auch nur eine Konvention; Sie können sicherlich Würfel finden (oder machen), die diese Bedingung verletzen. Du nimmst also * etwas * von den Würfeln an - mag wohl auch die Orientierung annehmen, die man in "modernen westlichen Standardwürfeln" findet. Ohne eine solche Annahme ist dies keine Antwort, weil Sie ein Paar haben, keine Zahl. – ShreevatsaR

0

Programmatisch können Sie dies ganz einfach tun. Es ist wohl ein wenig übertrieben (weil Sie eine if-Anweisung verwenden könnte), können Sie auch eine Klasse erstellen, wie

public class Dice { 
    private DiceFace[] sides = new DiceFace[]{DiceFace.ONE, DiceFace.TWO, DiceFace.THREE, DiceFace.FOUR, DiceFace.FIVE, DiceFace.SIX}; 


    class DiceFace { 
     // set the face number and connecting faces...the below figures are wrong, I don't have a set of dice to check agains 
     static final DiceFace ONE = new DiceFace(1, 2, 3, 4, 5); 

     private int face; 
     private int northFace; 
     private int southFace; 
     private int eastFace; 
     private int westFace; 

     public DiceFace(int face, int northFace, int southFace, int eastFace, int westFace) { 
      // set the values 
     } 
    } 
} 

Sie dann eine Methode schreiben, können Sie die möglichen Werte für die Antwort zu geben, indem die Würfel Überprüfung und die Werte links und rechts davon.

1

Ich habe keine Ahnung, warum das funktioniert, aber:

Für jedes Paar (oben/Seite) gibt es natürlich nur zwei Möglichkeiten, die beide als Top-Wert und den gegenüberliegenden Wert jeden selbst beseitigen und es ist gegenüber links und rechts: wenn zB 1 oben steht und eine 2 dir gegenüber steht, dann muss links und rechts entweder eine 3 oder eine 4 sein ...

Also für jede Kombination, wenn die Summe der Werte ist ungerade, und weniger als 7, oder gerade und größer als 7, der niedrigere der beiden möglichen Werte ist auf der linken Seite und der höhere ist auf der rechten Seite.

.. und umgekehrt

Wie ich in Amerika bin, ich denke, diese Regel für ein „rechtshändig“ ist sterben, Reverse es für einen Linkshänder sterben.