Это мой первый пост о переполнении стека, поэтому прошу прощения за мои ошибки, если я что-то делаю не так.
Хорошо, поэтому я пытаюсь найти алгоритм / функцию / что-то, что может подсчитать, сколько раз мне нужно сделать один и тот же тип перемешивания из 52 игральных карт, чтобы вернуться туда, где я начал.
Конкретная тасовка, которую я использую, выглядит следующим образом:
- У вас будет две стопки.
-У вас есть колода спиной вверх. (Давайте назовем эту колоду 1)
- Теперь вы можете поочередно положить карту в колоду 1 Пример. Предположим, у вас есть 4 карты в колоду, лицом вверх, идущие от 4, ближайших кземля и 1 ближайший к небу (Их порядок 4,3,2,1. Вы берете карту 1 и кладете ее под карту 4, карта 1 теперь ближе к земле, а карта 4 - вторая ближе, порядок теперь 1,4,3,2. и положить одну в стопку 2.
- Куча 2 будет «складываться вниз», что означает, что вы всегда будете помещать новую карту внизу этой стопки. (Обратно всегда вверх)
-Первая карта всегда кладется на заднюю часть стопки 1.
-Повторите этот процесс, пока все карты не окажутся в стопке 2.
-Теперь возьмите стопку 2 и сделайте то же самое, что вы только что сделали.
Мой вопрос: сколько раз мне нужно повторять этот процесс, пока я не вернусь к тому, с чего начал?
Дополнительные примечания:
- Если это распространенный способперемешивание карт и уже есть решение, пожалуйста, дайте мне знать.
- Яплохо знаком с математикой и кодированием, поэтому, если написать уравнение / алгоритм / код для этого действительно легко, не смейтесь надо мной, пожалуйста;
- Извините, если я спрашиваю об этом не в том месте, я не знаю, как все это работает.
- английский не является моим основным языком, и я не являюсь носителем языка, поэтому прошу прощения за любые плохие грамматические и / или другие грамматические ошибки.
У меня, однако, есть код, который делает все это( Ссылка здесь ), но я не уверен, что это самый эффективный способ сделать это, и он еще не дал результата, поэтому я даже не знаю, работает ли он. Если вы не хотите давать советы или предложения о том, как это изменить, пожалуйста, сделайте, я был бы очень признателен. Это сделано на пустом месте, потому что я не могу писать на других языках ... извините ...
Заранее спасибо.