前几日在知乎上看到这个问题 求助:用java写出算法:54张扑克,分成上下两等份有规律的洗牌,多少次可以返回初始值?, 感觉所有回答都不够简洁优雅,于是在网上搜索资料,找到这篇论文,该论文证明了如果第一堆在上,那么洗牌次数为2(mod 2n - 1), 也就是说洗牌次数等于使得 2k≡1(mod2n−1) 成立的k。根据群论,因为2与2n - 1互素,所以
前几日在知乎上看到这个问题 求助:用java写出算法:54张扑克,分成上下两等份有规律的洗牌,多少次可以返回初始值?, 感觉所有回答都不够简洁优雅,于是在网上搜索资料,找到这篇论文,该论文证明了如果第一堆在上,那么洗牌次数为2(mod 2n - 1), 也就是说洗牌次数等于使得 2k≡1(mod2n−1) 成立的k。根据群论,因为2与2n - 1互素,所以