Каков алгоритм определения места карты в колоде с помощью магического трюка "Low-Down Triple Dealing"
Предположим, у вас есть колода карт в массиве JavaScript. A[1,2,3,4,, n ]
где A[1] = 1
, A[2] = 2
, а также A[n] = n
. Дилер спрашивает у игрока число, скажем m, затем беретA[1:m]
с палубы, лицом вниз, один за другим. и размещает остальную часть колоды сверху.
Каково положение карты A[n] после разреза?
1 ответ
Ну если m=1
и (mA[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;
}