A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 摄影勾魂 中级黑马   /  2013-12-26 15:31  /  1346 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 摄影勾魂 于 2013-12-26 15:32 编辑

有三个小的编程题,希望大家给一些好的建议,说下思路就行,如果有参考代码更好。不光是要完成功能,还得比较性能。
1. 不用“/”实现两个数相除。右移倒是可以实现整数相除,可是浮点数呢,要过要求一定的精度呢?


2. 扑克牌洗牌程序。所谓洗牌我觉得就是打乱它原有的排序,52张牌是固定的。问题是交换多少次顺序才能保证洗牌比较彻底?次数太少只能部分牌位置变了,次数太多可能会使某些交换过顺序的牌又换回原来的顺序……

3. 如果想编程实现 键盘组合键的功能该怎么做,比如按下 Ctrl + g 选中当前行这类的。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
同问,我表示第一个也不会
第二个貌似在Set还是List中有个方法可以实现洗牌
第三个用GUI可以监听键盘事件吧,但是java的Gui个人表示太蛋疼。。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
某种意义上说,除法是比较另类的减法,楼主可以试试从这方面试试。
第二个问题的话,数学问题,个人感觉,我数学是历史老师教的,抱歉。洗牌的彻不彻底有个度量,这个度量和洗牌次数之间有一定的关联,呵呵,
第三个问题的话,就像楼上说的,可以参考一下jui,肯定有组合监听。个人实现的话,无非就是对ctrl做个特殊映射,期待下一个按键就是了。
楼主很有想法,我邮箱toohardforname@gmail.com

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
冯晓骏 发表于 2013-12-27 03:10
同问,我表示第一个也不会
第二个貌似在Set还是List中有个方法可以实现洗牌
第三个用GUI可以监听键盘事件吧 ...

谢谢兄弟,下去之后在这些方面我还得巩固巩固
回复 使用道具 举报
郭振华 发表于 2013-12-27 07:45
某种意义上说,除法是比较另类的减法,楼主可以试试从这方面试试。
第二个问题的话,数学问题,个人感觉, ...

谢谢,前两个问题主要在效率和精度。最后一个问题有点懵,可能得和操作系统结合起来,用到底层的一些东西,再转换成虚拟按键,ASCII码啥的。我下去再看看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马