假设你有一副牌在 JavaScript 数组中,A[1,2,3,4,, n ]其中、 和. 庄家向玩家询问一个数字,例如 m,然后从牌组中取出,面朝下,一个接一个。并将甲板的其余部分放在上面。A[1] = 1A[2] = 2A[n] = nA[1:m]
切后卡片 A[n] 的位置是什么?
假设你有一副牌在 JavaScript 数组中,A[1,2,3,4,, n ]其中、 和. 庄家向玩家询问一个数字,例如 m,然后从牌组中取出,面朝下,一个接一个。并将甲板的其余部分放在上面。A[1] = 1A[2] = 2A[n] = nA[1:m]
切后卡片 A[n] 的位置是什么?
好吧,如果m=1and (m<n) 那么卡片将移动一个位置A[n-1],所以如果 m<=nA[n]是 at 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;
}