使用魔术确定牌在一副牌中的位置的算法是什么"Low-Down Triple Dealing"



假设你有一副 JavaScript 数组中的卡片,A[1,2,3,4,, n ]其中A[1] = 1A[2] = 2A[n] = n。 庄家向玩家询问一个数字,比如m,然后把A[1:m]从甲板上拿下来,脸朝下,一个接一个。并将甲板的其余部分放在顶部。

卡A[n]在切割后的位置是多少?

好吧,如果m=1和(m<n(,那么卡将移动到A[n-1]一个位置,因此如果m><=nA[n]A[n-m]。 从 1 个 JavaScript 数组开始的新数组将A.slice(m).concat(A.slice(1,m-1).reverse()

使用 JavaScript:

function cut(A, n, m) {
//Given array starting at 1, taking m off the top putting in reverse order
// return the position where the A[n] now is
if (m <= A.length) {
alert('Cut point is too large for this deck size.');
}
if (m<n) {
return n-m-1;
}
return A.length - n+ 1;
}

最新更新