java趣味编程100实例

上传人:第*** 文档编号:34240432 上传时间:2018-02-22 格式:DOCX 页数:16 大小:41.91KB
返回 下载 相关 举报
java趣味编程100实例_第1页
第1页 / 共16页
java趣味编程100实例_第2页
第2页 / 共16页
java趣味编程100实例_第3页
第3页 / 共16页
java趣味编程100实例_第4页
第4页 / 共16页
java趣味编程100实例_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《java趣味编程100实例》由会员分享,可在线阅读,更多相关《java趣味编程100实例(16页珍藏版)》请在金锄头文库上搜索。

1、1_1问题描述:根据福利彩票的规则,6 个蓝色球,范围 1-32,不允许重复,1 个红色球,范围 1-16,自动生存 6 个蓝色球,1 个红色球。import java.util.Arrays; import java.util.Random; import java.util.Scanner;public class Ch11_2 /* * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * param begin 最小数字(包含该数) * param end 最大数字(不包含该数) * param size 指定产生随机数的个数 * * 实现思路:首先定义一个方法,

2、使它能够产生6 个不重复的蓝色随机数,存放到数组中,* 再产生1个红色随机数,最后他们组合在一起就是题目所求*/ public static int generateRandomNumber(int begin, int end, int size) / 加入逻辑判断,确保begin= end | (end - begin) =lenB)templen=lenA-lenB;addB=maxlen(addB,templen);/调整长度,使其跟大数长度一致elsetemplen=lenB-lenA;addA=maxlen(addA,templen);char addcharA=addA.toCh

3、arArray();char addcharB=addB.toCharArray();int len=addcharA.length;int valueC=new intlen; for(int i=0;i=0;i-)if(valueCi=10)strvalue=String.valueOf(valueCi+tmp-10)+strvalue;tmp=valueCi/10;elsestrvalue=String.valueOf(valueCi+tmp)+strvalue;tmp=0;return strvalue;/调整长度,使其长度一样private static String maxlen(

4、String str,int templen)String strmax=null;StringBuffer buff=new StringBuffer();for(int i=0;imax)max=num; /*通过比较筛选出其中的最高分*/if(numsum2) /前半段重,假币在后半段re=FalseCoin(coin,low+(high-low)/2+1,high);/递归,在后半段中查询return re;else if(sum1sum2) /前半段重,假币在后半段re=FalseCoin(coin,low+(high-low)/2+1,high);/递归,在后半段中查询return

5、 re;else if(sum1= wim(i, j) = m(i-1, j) j = wipublic class Ch11_10 /背包容量private int c;/物品重量数组private int w;/物品价值数组private int v;private int m;/m(i, j)是背包容量为j, 可选物品为0,1,.,i时0-1背包问题的最优值。/记录结果private int x;/最大价值private int maxV;/构造方法,数据初始化public Ch11_10(int w, int v, int c)this.w = w;this.v = v;this.c

6、= c;m = new intw.lengthc+1;x = new intw.length;/* 0-1背包问题 动态规划求解*递归式* m(i, j) = 0 j=0* m(i, j) = 0 i=0 & j = wi* m(i, j) = m(i-1, j) j = wi*/public void knapsack()/初始化for (int i = 0; i 0; i-)/根据二维数组最后一列,相邻两行是否相等,如果相等,没有加入,否则,加入if (mitmp = mi-1tmp)xi = 0;elsexi = 1;tmp = tmp - wi;xi = (m0c != 0) ? 1

7、: 0; /第一行,单独处理,如果非零,即加入return x;/打印数组mpublic void printM()for (int i = 0; i c)return false;elsereturn true;/* 打印出符合条件的所有解* 并且将最大值存到maxValue中,将最大值的数组存放到jie 中* param x2* return*/private void printJie(int x2) System.out.println(Arrays.toString(x);int sum=0;for(int i=0;isum?maxValue:sum;if(maxValue=sum)System.arraycopy(x2, 0, jie, 0, x2.length);public static void main(String args) int w = 6, 5, 2, 1, 1;/物品重量int v = 48, 40, 12, 8, 7;/物品价格int c=8; /背包容量Ch11_11 ch=new Ch11_11(w,v,c);System.out.println(全部解如下: );ch.DP(0);System.out.println(最优解是: +Arrays.toString(ch.jie)+n最大值是:+ch. maxValue);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号