下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JAVA 關(guān)于背包問題求解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.setLayout(null);
3、label1=new JLabel(設(shè)定背包容量);text1=new TextField();label1.setBounds(10, 10, 100, 30);text1.setBounds(150, 10, 100, 30);label2=new JLabel(產(chǎn)生隨機數(shù)個數(shù));label3=new JLabel(隨機數(shù)如下所示);text2=new TextField();text3=new TextField();label2.setBounds(10, 60, 200, 30);label3.setBounds(10, 100, 200, 30);text2.setBounds(1
4、50, 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(結(jié)果如下);label4.setBounds(10,170,100,30);area=new JTextArea();js=new JScrollPane(area);area.setEditable(false);js.se
5、tBounds(10, 200, 380, 150);label1.setFont(new Font(宋體, Font.PLAIN, 14);label2.setFont(new Font(宋體, Font.PLAIN, 14);label3.setFont(new Font(宋體, Font.PLAIN, 14);label4.setFont(new Font(宋體, Font.PLAIN, 14);button1.setFont(new Font(宋體, Font.PLAIN, 14);button2.setFont(new Font(宋體, Font.PLAIN, 14);text1.s
6、etFont(new Font(宋體, Font.PLAIN, 16);text2.setFont(new Font(宋體, Font.PLAIN, 16);text3.setFont(new Font(宋體, Font.PLAIN, 16);area.setFont(new Font(宋體, Font.PLAIN, 16);jiemian.add(label1);jiemian.add(label2);jiemian.add(label3);jiemian.add(label4);jiemian.add(button1);jiemian.add(button2);jiemian.add(te
7、xt1);jiemian.add(text2);jiemian.add(text3);jiemian.add(js);jiemian.setVisible(true);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; f
8、or (int i = 0; i num; i+)ai = new Integer(int) (Math.random() * 20);String s=;/將隨機數(shù)顯示for(int i=0;inum;i+)if(i=0)s=new String(String.valueOf(a0)+ );elses=new String(s+String.valueOf(ai)+ );text3.setText(s);/int weight=new inta.length;/*for(int i=0;ia.length;i+)weighti=ai;for(int i=0;ia.length;i+)Syst
9、em.out.print(weighti);*/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)System.exi
10、t(1););public static void main(String args) Beibao b=new Beibao();b.jiemian();private static void select(int capacity, int weight, int index, int knapsack) /背包剩余容量為0, 則直接打印背包 if(capacity = 0) print(knapsack); return; /從起始位置開始尋找第一個可以選擇的物品 while(index weight.length & capacity = weight. length) return;
11、 /將問題化簡為在剩下的物品中,找到符合重量的物品的兩個子問題 /1.背包中含有index 位置的物品 select(capacity, weight, index+1, knapsack.clone(); /2.背包中不含有index 位置的物品 select(capacity - weightindex, weight, index+1, put(knapsack, weightindex); /將物品放入背包中 private static int put(int knapsack, int n) int pos = -1; /找到背包中第一個數(shù)字為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;iknapsack.length;i+)System.out.p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版建筑垃圾清運及資源化利用合同3篇
- 二零二五年度招投標保證擔(dān)保合同協(xié)議書范本3篇
- 2025年度水電設(shè)施節(jié)能減排承包服務(wù)合同4篇
- 二零二五版MCN達人內(nèi)容創(chuàng)作合作合同3篇
- 二零二五年度房產(chǎn)交易資金監(jiān)管協(xié)議4篇
- 2025年度模具行業(yè)市場調(diào)研與分析合同4篇
- 二零二五版交通事故致人受傷后續(xù)治療費用補償合同3篇
- 二零二五版煤礦安全生產(chǎn)標準化轉(zhuǎn)讓合同規(guī)范3篇
- 二零二五年度城市公交車車體廣告租賃服務(wù)協(xié)議4篇
- 2025年智慧農(nóng)業(yè)設(shè)施建設(shè)項目合同3篇
- 勞務(wù)協(xié)議范本模板
- 2024年全國職業(yè)院校技能大賽高職組(生產(chǎn)事故應(yīng)急救援賽項)考試題庫(含答案)
- 2025大巴車租車合同范文
- 老年上消化道出血急診診療專家共識2024
- 人教版(2024)數(shù)學(xué)七年級上冊期末測試卷(含答案)
- 2024年國家保密培訓(xùn)
- 2024年公務(wù)員職務(wù)任命書3篇
- CFM56-3發(fā)動機構(gòu)造課件
- 會議讀書交流分享匯報課件-《殺死一只知更鳥》
- 重癥血液凈化血管通路的建立與應(yīng)用中國專家共識(2023版)
- 果殼中的宇宙
評論
0/150
提交評論