编程-java 设2n张牌分别标记为1,2,…,n,n+l,…,2n,初始时这2n张牌按其标号从小到大

问题描述

java 设2n张牌分别标记为1,2,…,n,n+l,…,2n,初始时这2n张牌按其标号从小到大

设2n张牌分别标记为1,2,…,n,n+l,…,2n,初始时这2n张牌按其标号从小到大排列。
经一次洗牌后,原来的排列顺序变成n+l,l,n+2,2,··,,2n,n。
即前n张牌被放到偶数位置2,4,·,·,2n,而后n张牌被放到奇数位置1,3,…,2n-l。可以证明对于任何一个自然数n,经过若干次洗牌后可恢复初始状态。
问:编程计算最少经过多少次洗牌可恢复到初始状态。

解决方案

是不是2n次?
代码可不可以这样实现:
将2n个数放在数组中mDataArray,然后将数组的角标存在另一个数组中mDataItem。然后获取角标为偶数的mDataArray中的数,将其存放在新的数组mDataNew的前n个位置,然后将剩余的奇数的数据随后也存储进去,存户在后n个位置,然后mDataArray=mDataNew。这样一直循环,直到mDataArray的顺序为1,2,3,……2n

解决方案二:

是不是2n次?
代码可不可以这样实现:
将2n个数放在数组中mDataArray,然后将数组的角标存在另一个数组中mDataItem。然后获取角标为偶数的mDataArray中的数,将其存放在新的数组mDataNew的前n个位置,然后将剩余的奇数的数据随后也存储进去,存户在后n个位置,然后mDataArray=mDataNew。这样一直循环,直到mDataArray的顺序为1,2,3,……2n

解决方案三:

我不是特别理解经过若干次能恢复到初始状态?
我知道有可能恢复原始,但是一定么?洗牌没有规律,怎么能保证一定能实现呢?洗牌的规则没有规定的话我觉得实现不了。
我考虑的是n>=3时。

解决方案四:

mark mark mark

解决方案五:

答案在我的回复里………请查看

时间: 2024-08-01 16:09:12

编程-java 设2n张牌分别标记为1,2,…,n,n+l,…,2n,初始时这2n张牌按其标号从小到大的相关文章

jquery-如何用js制作生成一张地图(标记)

问题描述 如何用js制作生成一张地图(标记) 图片1 图片2 如何使用JS在生成好的图片(图片1)上标记建筑物(图片2) (标记的方法如设定:坐标.图标.建筑物名称,这些数据写进数据库读取出来) 最终效果如下(图片3) 图片用于一个内部系统,不能联网,所以不能使用百度地图之类的API 要实现输入某个建筑物名称或者坐标,搜索到建筑物并将该建筑物放大并显示到图片中央. 解决方案 很简单,只要你会任何一种地图的API,就可以轻松搞定~ 解决方案二: step1: 根据您的网站,申请使用百度地图的秘钥

数据库-大家看看这张图,里面不完整并且有坑,大家认为会有几张表生成呢,还有有的实体是不是可以再分

问题描述 大家看看这张图,里面不完整并且有坑,大家认为会有几张表生成呢,还有有的实体是不是可以再分 解决方案 7个对象7张表啊.就是教研室和课程互为引用,难道是1对1?这要看具体业务才能决定. 解决方案二: 如果你认为你能在项目开始之前把表一次性设计对,在开发的过程中你不打算也不能根据需要增加修改字段和拆分合并表,那么你的项目注定完蛋了. 解决方案三: 既然需求随时会变更,有又什么好担心的呢?如果你的老师和你说,代码写死绑定住数据表,绝对不能在编码的过程中动数据表,那么这才是真正的坑所在. 你见

更新表-sql 如何在建立一个存储过程时更新两张表的数据?

问题描述 sql 如何在建立一个存储过程时更新两张表的数据? create proc proc2 ( @OrderID int, @BookID varchar(20),--更新 orderInfo quantity:更新 orderSheet payment @BookStock int ) as update orderSheet set payment = b.newpay FROM orderInfo,orderSheet,(select (payment + price * @Book

我正在编写扫描仪的twain驱动,利用ps调试,单张扫描可以,连续扫描时除第一张都是空白

问题描述 我正在编写扫描仪的twain驱动,利用ps调试,单张扫描可以,连续扫描时除第一张都是空白 我现在在调扫描仪的twain驱动程序,调试发现Photoshop的twain用的是缓存传输方式,经过一番调试,终于扫除了图像,但是发现不能连续扫,只能单张扫,连续扫的话,除了第一张图像正常,后面的都是空白页,这是为什么,求大神指教,全部c币奉上,急求

Java编程——Java开发必看的编程思想

Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理解题(比如is-a关系和has-a关系的区别),也有深入的涉及RTTI和JVM底层反编译知识.   1. Java中的多态性理解(注意与C++区分) Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意

编程-java 鼠标选中文本的获得

问题描述 java 鼠标选中文本的获得 java编程 当鼠标选中某文件(txt等)中的一段内容进行复制时,如何通过编程来获取鼠标选中的内容 最好详细点 解决方案 http://zhidao.baidu.com/link?url=ktqkgS7kcZtiOAAgOMuAiOVeNe9opeYtq3OHkfCOpeNcr5AaxyJMZo0W7TIR_83CHqPonGYvrVkNpW1x0ZaCca 解决方案二: 某文件(txt等),你是如何显示出来供选择的呢? TextArea 属性中有 get

编程-java菜鸟程序员提问:求大神给我说说线程在什么场景下用,以及多线程工作原理。谢谢

问题描述 java菜鸟程序员提问:求大神给我说说线程在什么场景下用,以及多线程工作原理.谢谢 现在java线程编程应用广泛吗?哪些时候适合或必须要用多多线程编程呢?多线程的工作原理是怎样的呢?求大神们指导指导,谢了! 解决方案 (1)线程的工作场景主要有两条: 一个是并发操作,避免阻塞和更有效利用资源.典型的例子有:在长时间工作的程序中使用工作线程避免界面失去响应.在网络下载程序中,使用多个线程提高对网络的使用效率,更快下载文件. 一个是并行,线程是处理器调度的最小单位.如果你的计算机配置了多个

c语言编程-java题目和C语言题目,面试题目,急用

问题描述 java题目和C语言题目,面试题目,急用 竞赛编程题目"> 解决方案 c语言面试题目C语言面试题目关于C语言的题目 解决方案二: 这么多,,,还是找同学助攻吧 解决方案三: 这么多,,,还是找同学助攻吧 解决方案四: 都看不清,兄弟,你这都不会,到时工作也没法进行啊 解决方案五: 参考一下这个去找找 http://www.doc88.com/p-3601057756733.html 解决方案六: 2015Java软件开发工程师面试题宝典 几百道常用题及答案 http://www.

编程-java问题,初学者!!!!!!!!1

问题描述 java问题,初学者!!!!!!!!1 请你编程画一个放大的'X'. 如3*3的'X'应如下所示: X X X X X 5*5的'X'如下所示: X X X X X X X X X 输入格式 输入数据第一行是一个整数T,表示有T组测试数据. 接下来有T行,每行有一个正奇数n(3<=n<=79),表示放大的规格. 输出 对于每一个n打印一个规格为 n*n 放大的'X',每组输出后面空一行. 样例输入 2 3 5 样例输出 X X X X X X X X X X X X X X impo