




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JAVA 關于背包問題求解import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import javax.swing.JOptionPane;import javax.swing.*;public class Beibao private JFrame jiemian;private JLabel label1,label2,label3,label4;private JButton button1,button2;p
2、rivate TextField text1,text2,text3;private JScrollPane js;private int capacity;private static int flag=0;static JTextArea area=new JTextArea();public void jiemian()jiemian =new JFrame();jiemian.setTitle(" 背包問題展示");jiemian.setBounds(250, 250, 400,400);jiemian.setResizable(false);jiemian.set
3、Layout(null);label1=new JLabel(" 設定背包容量");text1=new TextField();label1.setBounds(10, 10, 100, 30);text1.setBounds(150, 10, 100, 30);label2=new JLabel("產生隨機數個數");label3=new JLabel("隨機數如下所示");text2=new TextField();text3=new TextField();label2.setBounds(10, 60, 200, 30);la
4、bel3.setBounds(10, 100, 200, 30);text2.setBounds(150, 60, 100, 30);text3.setBounds(10, 140, 380, 30);button1=new JButton(" 運行 ");button2=new JButton(" 退出 "); button1.setBounds(300, 10, 70, 30); button2.setBounds(300, 60, 70, 30);label4=new JLabel(" 結果如下 ");label4.setBou
5、nds(10,170,100,30);area=new JTextArea();js=new JScrollPane(area);area.setEditable(false);js.setBounds(10, 200, 380, 150);label1.setFont(new Font(" label2.setFont(new Font(" label3.setFont(new Font(" label4.setFont(new Font(" button1.setFont(new Font(" button2.setFont(new Fon
6、t(" text1.setFont(new Font(" text2.setFont(new Font(" text3.setFont(new Font(" area.setFont(new Font("宋體",Font.PLAIN,14);宋體",Font.PLAIN,14);宋體",Font.PLAIN,14);宋體",Font.PLAIN,14);宋體 ", Font.PLAIN, 14);宋體 ", Font.PLAIN, 14);宋體 ", Font.PLAIN,
7、16);宋體 ", Font.PLAIN, 16);宋體 ", Font.PLAIN, 16);宋體 ", Font.PLAIN, 16);jiemian.add(label1);jiemian.add(label2);jiemian.add(label3);jiemian.add(label4);jiemian.add(button1);jiemian.add(button2);jiemian.add(text1);jiemian.add(text2);jiemian.add(text3);jiemian.add(js);jiemian.setVisible(t
8、rue);button1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)capacity=Integer.valueOf(text1.getText();if(!text1.getText().equals("")int num=Integer.valueOf(text2.getText();int a=new intnum;for (int i = 0; i <num; i+)ai = new Integer(int) (Math.random() *
9、20);String s=""/ 將隨機數顯示for(int i=0;i<num;i+)if(i=0)s=new String(String.valueOf(a0)+" ");else s=new String(s+String.valueOf(ai)+" ");text3.setText(s);/int weight=new inta.length;/*for(int i=0;i<a.length;i+)weighti=ai;for(int i=0;i<a.length;i+)System.out.print(we
10、ighti);*/select(capacity, a, 0, new inta.length);/System.out.println(capacity);if(flag=0)JOptionPane.showMessageDialog(jiemian," 無解 ");elseJOptionPane.showMessageDialog(jiemian, " 請輸入背包容量"););button2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)
11、System.exit(1););public static void main(String args) Beibao b=new Beibao();b.jiemian();intprivate static void select(int capacity, int weight, int index, knapsack) / 背包剩余容量為 0, 則直接打印背包if(capacity = 0) print(knapsack);return;/ 從起始位置開始尋找第一個可以選擇的物品while(index < weight.length && capacity <
12、; weightindex)index+;/ 當沒有物品可以選擇,則退出if(index >= weight. length) return;/ 將問題化簡為在剩下的物品中,找到符合重量的物品的兩個子問題/1. 背包中含有index 位置的物品select(capacity, weight, index+1, knapsack.clone();/2. 背包中不含有index 位置的物品select(capacity - weightindex, weight, index+1, put(knapsack, weightindex);/ 將物品放入背包中private static int
13、 put(int knapsack, int n) int pos = -1;/ 找到背包中第一個數字為 0 的位置while(knapsack+pos > 0);knapsackpos = n;return knapsack;/ 打印背包中的物品private static void print(int knapsack) area.setText(area.getText()+" 組合 : ");flag=1;/*for(int i=0;i<knapsack.length;i+)System.out.print(knapsacki);*/for (int i=0;i<knapsack.length;i+) if (knapsacki=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國正戊烯行業市場前景預測及投資價值評估分析報告
- 深圳垃圾箱項目可行性研究報告范文
- 招工牛奶小工合同協議書
- 培訓學校品牌升級計劃方案
- 校園康復創業項目計劃書
- 送餐人員合同協議書范本
- 天文學課件下載
- 管理承包合同協議書
- 音樂教育商業策劃書3
- 跨境電商運營個人展望與目標-概述說明以及解釋
- 圖像處理新技術Photoshop試題
- 2025中國稀土集團有限公司社會招聘65人筆試參考題庫附帶答案詳解
- 樂山市市級事業單位選調工作人員考試真題2024
- 山東省濟南市2025屆高三三模生物試卷(含答案)
- 2025年法律基礎知識考試試題及答案
- 火力發電廠安全培訓課件
- 第八章-實數(單元復習課件)七年級數學下冊同步高效課堂(人教版2024)
- 浙江百順服裝有限公司年產100萬套服裝及135萬套床上用品生產線項目環境影響報告
- AI 技術在高中歷史教學中的應用實例2
- 交通大數據的應用試題及答案
- 2024年中石油招聘考試真題
評論
0/150
提交評論