2

我想知道是否有一个公式/技巧来计算标准 6 面骰子的右边或左边的数字,如果你知道哪个数字在上面,哪个数字面向你。

需要它来解决问题,但我不想在 if 语句中列出所有 24 种可能性...... :)

4

4 回答 4

6

没有24种可能性。

来自维基百科

对面的数字之和是七。

因此,您已经知道两个数字,剩下 4 种可能性。

我不确定你所说的“在顶部”和“面对你”是什么意思,但我认为你的意思是这里有两张邻居的脸,所以你知道的只有两种可能性可能性仅因左/右或右/左这两个数字不同)。

因此,例如,使用展开的骰子,您的顶部有“1”,“2”面向您:

 X
X1X
 2
 X

您现在知道相反的面将是“6”(底部)和“5”(背对您):

 5
X1X
 2
 6

所以有这两种可能性:

 5   5
314 413
 2   2
 6   6

当您知道您的骰子是“左撇子”还是“右撇子”时,只剩下一种可能性(同样,维基百科):

这个约束留下了一个更抽象的设计选择:分别代表 1、2 和 3 的面可以围绕该顶点按顺时针或逆时针顺序放置。如果 1、2 和 3 面围绕它们的公共顶点逆时针运行,则骰子称为“右撇子”;如果它们顺时针运行,则称为“左撇子”。标准的现代西方骰子是右撇子,而中国骰子通常是左撇子

因此,对于上面的示例,左侧是“左手”骰子,右侧是“右手”骰子。

于 2010-12-26T16:04:16.757 回答
4

骰子的对面总和为 7(至少,这是惯例)。

通过消除过程,您可以知道“隐形”对是什么:

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

因此,对于上面的每一对,如果您可以从中看到一个数字,请将其删除。剩下的一对就是你要找的那个。

由于无法确定骰子的“手性”,因此无法判断哪一对将在右侧,哪个在左侧。

于 2010-12-26T16:03:34.333 回答
1

我不知道为什么会这样,但是:

对于每一对(顶部/面向),当然只有两种可能性,因为顶部值和面向值都各自消除,并且与左或右相反:例如,如果 1 在顶部,并且 a 2 面向你,那么左右必须是 3 或 4...

因此,对于每个组合,如果值的总和为奇数且小于 7,或偶数且大于 7,则两个可能值中较低的在左侧,较高的在右侧。

.. 反之亦然

就像我在美国一样,我想这条规则适用于“右手”骰子,反之则适用于左手骰子。

于 2010-12-26T16:41:44.630 回答
0

以编程方式,您可以很容易地做到这一点。这可能有点矫枉过正(因为您可以使用 if 语句),您还可以创建一个类,例如

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
      }
   }
}

然后,您可以编写一个方法,通过检查骰子及其左右两侧的值来为您的答案提供可能的值。

于 2010-12-26T16:13:25.590 回答