看板Programming
标 题Re: [问题] 老师出的java作叶
发信站不良牛牧场 (Sun Dec 10 11:31:41 2006)
转信站ptt!ctu-reader!Spring!news.nctu!news.ntu!news.au!zoonews.ee.ntu!SimFar
恩 .. 我不太想看你的逻辑跟程式码 ..
前面有大大说明了 C++/Java 都有重新打乱的机制 ...
那麽我来告诉你我心中的想法,自己写程式码创造重新打乱的方法
1. 先给出 1~52 的数值阵列 A ..
<<接下来就是打乱>>
2. 从这 1~ 52 个阵列里面随便挑一个数值 .. ex : 3
并且把这个数字删除 .. 所以现在顺序是 1, 2, 4, 5 .. 52
3. 把 3 放到另外一个阵列 B 的第一个元素
4. 重复 2 ~ 3 的步骤 ..
直到阵列 A 清空并且阵列 B 变为 52 个元素
<<这时候阵列 B 里面就是打乱不重复的 52 个数值>>
方法还有很多, 我还可以想好几个 (这个版本应该会稍微慢一点)
另外,反正你原先写的程式码也不是很庞大 .. 砍掉重练吧 !
※ 引述《[email protected] (没关系继续努力)》之铭言:
: import javax.swing.*;
: import java.awt.*;
: public class s {
: public static void main(String[] args){
: int i,x,j,e=0,bk=1,f;
: JFrame frame = new JFrame("s(FlowLayout)");
: Container c=frame.getContentPane();
: FlowLayout f1=new FlowLayout(FlowLayout.LEFT);
: c.setLayout(new GridLayout(7,7,15,15));
: for(int p=1;p<=52;p++){
: x=(int)(Math.random()*52)+1;
: int table[]={x};
: for(i=0;i<=52;i++){
: if(table[i]==x){
: bk=2;
: break;}
: else{
: if(table[i]==0){
: table[i]=x;
: bk=2;
: break;}
: }
: }
: }
: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
: frame.setSize(300,400); //设定视窗大小
: frame.pack();
: frame.setVisible(true); //显示视窗
: }
: }
: 我改成了这样 但是还是会重复 我不知道我逻辑到底哪里错了
: 帮我就正一下 拜托= =
--
◣You Die◢
◥╭──╮◤
●●
╰ ∞ ╯
◢ ╰ ╯ ◣
◤ ◥
--
╭──── Origin:
<不良牛牧场> bbs.badcow.com.tw (210.200.247.200)─────╮
│ ↘ Welcome to SimFarm BBS -- From : [140.120.80.19] │
╰◣◣◢ ◢◢《不良牛免费拨接→电话:40586000→帐号:zoo→密码:zoo》 ◣◣◢ ─╯