Каков алгоритм определения места карты в колоде с помощью магического трюка "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-1] и поэтому, если m<=n A[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;
}
Другие вопросы по тегам