我想知道是否有一个公式/技巧来计算标准6面骰子上的右边或左边的数字,如果你知道哪个数字在顶部,哪个面向你。
需要它来解决问题,但我不想在if语句中列出所有24种可能性......:)
答案 0 :(得分:6)
没有24种可能性。
来自Wikipedia:
相反数字的总和 面孔是七。
因此,您已经知道两个数字,剩下4种可能性。
我不确定你的意思是“顶部”和“面对你”,但我认为你的意思是两个相邻的面孔,所以只有两种可能性,因为你知道那里有相反的面孔数字(并且这两种可能性仅因左/右或左/右两个数字而不同。
所以,例如,使用展开的骰子,你的顶部有“1”,“2”面对你:
X
X1X
2
X
你现在知道对面将是“6”(底部)和“5”(背对你):
5
X1X
2
6
所以有这两种可能性:
5 5
314 413
2 2
6 6
当你知道你的骰子是“左撇子”还是“右撇子”时,只有一种可能性(再次,Wikipedia):
这个约束又留下了一个 抽象设计选择:面孔 分别代表1,2和3 可顺时针或放置 关于此的逆时针顺序 顶点。如果1,2和3面临运行 逆时针绕着它们的共同点 顶点,称为模具 “右手”;如果他们顺时针运行 它被称为“左撇子”。标准 现代西方骰子是右撇子, 而中国骰子往往是 左手系
因此,对于上面的例子,左边是“左撇子”骰子,右边是“右撇子”骰子。
答案 1 :(得分:4)
骰子的相反方面总是加起来7(至少,这是惯例)。
通过消除过程,您可以知道“隐形”对将是什么:
因此,对于上面的每一对,如果您可以从中看到一个数字,请将其删除。剩下的一对就是你要找的那一对。
由于无法确定骰子的“手性”,因此无法确定哪一对将位于右侧,哪一侧位于左侧。
答案 2 :(得分:1)
我不知道为什么会这样,但是:
对于每一对(顶部/面向),当然只有两种可能性,因为顶部值和面对值各自消除自身,并且与左侧或右侧相反:例如,如果1位于顶部,2面向你,然后左右必须是3或4 ......
因此,对于每个组合,如果值的总和是奇数,小于7,或甚至大于7,则两个可能值中的较低者位于左侧,较高值位于右侧。
..反之亦然
当我在美国时,我猜这个规则是针对“右撇子”的骰子,将其转换为左撇子骰子。
答案 3 :(得分: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
}
}
}
然后,您可以通过检查骰子及其左侧和右侧的值来编写一个方法,为您提供答案的可能值。