百度网站v2升级到v3怎么做wordpress post page
百度网站v2升级到v3怎么做,wordpress post page,wordpress 编辑 插件,南昌制作网站的公司吗文章目录一、简介1、简介2、缺点3、优化技巧二、经典案例1、百钱买百鸡#xff08;经典多变量穷举#xff09;2、查找指定范围内的质数#xff08;单变量穷举 验证优化#xff09;3、简单数字密码破解#xff08;固定长度穷举#xff09;4、数组中两数之和等于目标值// 划定解空间减少无效遍历优化解空间范围// 公鸡x最多买 100/520 只for(intx0;x20;x){// 母鸡y最多买 100/3≈33 只for(inty0;y33;y){// 小鸡z总数100所以z100-x-y且必须是3的倍数因为3只1文钱intz100-x-y;// 验证条件1总钱数100验证条件2小鸡数量是3的倍数if(z%30(5*x3*yz/3100)){System.out.printf(公鸡%d 只母鸡%d 只小鸡%d 只%n,x,y,z);}}}}}// 结果百钱买百鸡的有效解 公鸡0只母鸡25只小鸡75只 公鸡4只母鸡18只小鸡78只 公鸡8只母鸡11只小鸡81只 公鸡12只母鸡4只小鸡84只2、查找指定范围内的质数单变量穷举 验证优化找出 100 以内的所有质数质数大于 1且只能被 1 和自身整除的正整数。这是单变量穷举核心优化点是遍历到Math.sqrt(num)而非num-1大幅减少了遍历次数比如 num100只需遍历到 10而非 99。引入break语句提前跳出无效循环是穷举中常用的 “剪枝” 技巧减少资源消耗。/** * 穷举示例2查找100以内的所有质数 */publicclassEnumerationExample2{publicstaticvoidmain(String[]args){System.out.println(100以内的所有质数);// 划定解空间2~100质数大于1for(intnum2;num100;num){booleanisPrimetrue;// 标记是否为质数// 遍历策略验证优化只需遍历到√num大于√num的因数必然和小于√num的因数成对出现for(inti2;iMath.sqrt(num);i){if(num%i0){// 验证条件能被其他数整除不是质数isPrimefalse;break;// 提前跳出循环减少无效遍历剪枝思想}}// 收集有效解if(isPrime){System.out.print(num );}}}}// 结果100以内的所有质数23571113171923293137414347535961677173798389973、简单数字密码破解固定长度穷举破解一个 3 位数字密码密码范围 000~999已知目标密码为 668通过穷举找到该密码并输出。这是固定范围的单值穷举解空间大小固定1000 个候选解效率极高。采用%03d格式化输出保证密码的 3 位格式比如 0 会输出为 000贴合实际密码场景。找到目标后立即break避免不必要的后续遍历优化执行效率。/** * 穷举示例33位数字密码破解 */publicclassEnumerationExample3{publicstaticvoidmain(String[]args){finalintTARGET_PASSWORD668;// 目标密码System.out.println(开始穷举破解3位数字密码...);// 划定解空间0~9993位数字密码的所有可能for(intpassword0;password999;password){// 验证条件当前候选密码等于目标密码if(passwordTARGET_PASSWORD){System.out.printf(密码破解成功目标密码是%03d%n,password);// %03d 保证输出3位补前导0break;// 找到后立即退出无需继续遍历}}}}4、数组中两数之和等于目标值两两组合穷举给定一个整数数组穷举所有两两组合找到和等于目标值的所有索引对不重复。这是组合穷举通过嵌套循环遍历数组的所有两两组合采用i j的策略避免重复索引对比如 (0,1) 和 (1,0) 视为同一对只保留前者。适用于小规模数组若数组长度超过 1000嵌套循环的时间复杂度O (n²)会导致效率急剧下降。importjava.util.ArrayList;importjava.util.List;/** * 穷举示例4数组中两数之和等于目标值 */publicclassEnumerationExample4{publicstaticvoidmain(String[]args){int[]nums{2,7,11,15,3,6};inttarget9;ListStringresultnewArrayList();// 存储结果索引对// 划定解空间数组中所有两两组合i j 避免重复索引对for(inti0;inums.length;i){for(intji1;jnums.length;j){// 验证条件两数之和等于目标值if(nums[i]nums[j]target){result.add(String.format((%d, %d),i,j));}}}// 输出结果if(result.isEmpty()){System.out.println(未找到和等于目标值的两数组合);}else{System.out.printf(和等于%d的索引对有%s%n,target,String.join(,result));}}}// 结果和等于9的索引对有(0,1)(4,5)5、优惠券最优组合分配分配问题・金额匹配电商下单场景用户订单金额100 元账户中有多张不同面额的无门槛优惠券最多选 3 张使用要求优惠券总抵扣金额≤订单金额且抵扣金额最大核心是有限张数的优惠券分配实现最优抵扣。importjava.util.ArrayList;importjava.util.List;/** * 电商优惠券最优组合分配分配问题 */publicclassBusinessModel1_CouponAssign{publicstaticvoidmain(String[]args){intorderAmount100;// 订单金额int[]coupons{10,20,30,15,25};// 优惠券面额列表intmaxSelect3;// 最多选3张intmaxDeduct0;// 最大抵扣金额ListListIntegerbestCombinationnewArrayList();// 最优组合可能多个// 1. 穷举1张优惠券的情况for(inti0;icoupons.length;i){intdeductcoupons[i];if(deductorderAmountdeductmaxDeduct){maxDeductdeduct;bestCombination.clear();bestCombination.add(List.of(coupons[i]));}elseif(deductmaxDeduct){bestCombination.add(List.of(coupons[i]));}}// 2. 穷举2张优惠券的情况ij 避免重复for(inti0;icoupons.length;i){for(intji1;jcoupons.length;j){intdeductcoupons[i]coupons[j];if(deductorderAmount){updateBestCombination(deduct,maxDeduct,List.of(coupons[i],coupons[j]),bestCombination);maxDeductMath.max(maxDeduct,deduct);}}}// 3. 穷举3张优惠券的情况ijk 避免重复for(inti0;icoupons.length;i){for(intji1;jcoupons.length;j){for(intkj1;kcoupons.length;k){intdeductcoupons[i]coupons[j]coupons[k];if(deductorderAmount){updateBestCombination(deduct,maxDeduct,List.of(coupons[i],coupons[j],coupons[k]),bestCombination);maxDeductMath.max(maxDeduct,deduct);}}}}// 输出结果System.out.printf(订单金额%d元最多选%d张优惠券%n,orderAmount,maxSelect);System.out.printf(最大抵扣金额%d元%n,maxDeduct);System.out.println(最优优惠券组合bestCombination);}// 辅助方法更新最优组合privatestaticvoidupdateBestCombination(intcurrentDeduct,intmaxDeduct,ListIntegercombination,ListListIntegerbestCombination){if(currentDeductmaxDeduct){bestCombination.clear();bestCombination.add(newArrayList(combination));}elseif(currentDeductmaxDeduct){bestCombination.add(newArrayList(combination));}}}// 结果订单金额100元最多选3张优惠券 最大抵扣金额75元 最优优惠券组合[[20,30,25]]6、商品库存组合计数计数问题・空间匹配线下门店货架场景某货架的最大摆放空间为 8 个单位现有 4 类商品每类商品占不同的摆放空间每类商品仅能摆放 1 件求能摆满 / 摆放的有效商品组合数核心是统计符合空间约束的商品组合数量。importjava.util.ArrayList;importjava.util.List;/** * 门店商品库存组合计数计数问题 */publicclassBusinessModel2_GoodsCount{publicstaticvoidmain(String[]args){int[]goodsSpace{2,3,1,4};// 商品1~4的占用空间intmaxSpace8;// 货架最大摆放空间intvalidCount0;// 有效组合数ListListIntegervalidCombinationsnewArrayList();// 所有有效组合// 穷举所有非空组合用位运算4位二进制0不选1选0001~1111intngoodsSpace.length;for(intmask1;mask(1n);mask){ListIntegercombinationnewArrayList();inttotalSpace0;// 遍历每一位判断是否选中该商品for(inti0;in;i){if((mask(1i))!0){combination.add(goodsSpace[i]);totalSpacegoodsSpace[i];}}// 验证约束条件总空间≤货架最大空间if(totalSpacemaxSpace){validCount;validCombinations.add(combination);}}// 输出结果System.out.printf(货架最大空间%d个单位商品占用空间%s%n,maxSpace,List.of(2,3,1,4));System.out.printf(有效商品组合数%d个%n,validCount);System.out.println(所有有效组合占用空间validCombinations);}}