• Mathematica
The program I wrote accepts a certain number between 3 and 18.
Then it returns the ways this number can be obtained by throwing three dice simultaneously and adding the face values.
I want to manipulate this number,
but can't achieve it using the ordinary code of manipulation. :grumpy:

I tried to find any error, but really wasn't able to figure out where have I gone wrong.

Need help!

Code:
j = 0;
For [
x = 1,
x <= 6,
x++,
For [
y = 1,
y <= 6,
y++,
For [
z = 1,
z <= 6,
z++,
{
If [
x + y + z == 5,  (*accepts the required sum of the face values*)
{
If [
j + 1 <= 9,
Print [j + 1, ".", "   ", x , " ", y, " " , z ],
Print [j + 1, ".", "  ", x , " ", y, " " , z ]
],
j++
}
]
}
]
]
]

Last edited:

Related MATLAB, Maple, Mathematica, LaTeX News on Phys.org
phyzguy
You could define a function, and then evaluate it for different values, like this:

Code:
f[w_] :=
Module[{j = 0},
For[x = 1, x <= 6, x++,
For[y = 1, y <= 6, y++,
For[z = 1, z <= 6,
z++, {If[
x + y + z ==
w,(*accepts the required sum of the face values*){If[
j + 1 <= 9, Print[j + 1, ".", "   ", x, " ", y, " ", z],
Print[j + 1, ".", "  ", x, " ", y, " ", z]], j++}]}]]]]

f[5]

1.   1 1 3

2.   1 2 2

3.   1 3 1

4.   2 1 2

5.   2 2 1

6.   3 1 1

f[3]

1.   1 1 1

f[4]

1.   1 1 2

2.   1 2 1

3.   2 1 1