天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 24|回复: 0

java问题:搜索大于 19421的最小组合:19481

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
输入箱子体积:[3233, 6549, 7402, 8436] 大于【19421】的最小子集和为:[6549, 3233, 3233, 3233, 3233]

[code]package com.dam.combinationProblem.question4;

import java.util.Arrays;
import java.util.LinkedList;

public class MySolution {
    private int minValue = Integer.MAX_VALUE;
    private LinkedList<Integer> bestPath = new LinkedList<>();

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        int[] smallLengthArr = new int[]{3233, 6549, 7402, 8436};
        int max = 500000;
        MySolution solution = new MySolution();
        solution.combinationSum(smallLengthArr, max, solution);
        System.out.println("最优方案:" + solution.bestPath.toString());
        System.out.println("最小值:" + solution.minValue);
        long end = System.currentTimeMillis();
        System.out.println("计算时间:" + (end - start) + "ms");
    }

    public void combinationSum(int[] smallLengthArr, int max, MySolution solution) {
        int length = smallLengthArr.length;

        //初始化needNum
        int[] needNum = new int[length];
        for (int i = 0; i < needNum.length; i++) {
            needNum[i] = max / smallLengthArr[i] + 1;
        }

        System.out.println("如果只使用一种箱子,需要的数量" + Arrays.toString(needNum));

        //拓展数组
        int arrLen = 0;
        for (int i = 0; i < needNum.length; i++) {
            arrLen += needNum[i];
        }

        int len = smallLengthArr.length;
        if (len == 0 || arrLen == 0) {
            System.out.println("输出数据有问题");
        }

        //降序排序,后面剪枝更多
        shellSort(smallLengthArr);
//        Arrays.sort(smallLengthArr);

        //最终数组
        int[] lastSmallLengthArr = new int[arrLen];
        int count = 0;
        for (int i = 0; i < smallLengthArr.length; i++) {
            for (int j = 0; j < needNum[i]; j++) {
                lastSmallLengthArr[count++] = smallLengthArr[i];
            }
        }
//        System.out.println("最终数组:" + Arrays.toString(lastSmallLengthArr));

        LinkedList<Integer> path = new LinkedList<>();

        dfs(lastSmallLengthArr, 0, max, solution, 0, arrLen, path);
    }

    private void dfs(int[] lastSmallLengthArr, int value, int max, MySolution solution, int begin, int length, LinkedList<Integer> path) {
        //当数组遍历完成,说明该节点已经拓展完成
        if (begin == length) {
            return;
        }

        //从begin开始,相当于前面的元素已经使用
        for (int i = begin; i < length; i++) {
            // 大剪枝:所使用的箱子组合的体积已经大于最优体积,直接break即可
            if (value + lastSmallLengthArr[i] > solution.minValue) {
                break;
            }

            // 小剪枝:同一层相同数值的结点,从第 2 个开始,候选数更少,结果一定发生重复,因此跳过,用 continue
            if (i > begin && lastSmallLengthArr[i] == lastSmallLengthArr[i - 1]) {
                continue;
            }

            path.addLast(lastSmallLengthArr[i]);
            //说明找到了解,且解更优,则更新最优解
            if (value + lastSmallLengthArr[i] >= max && value + lastSmallLengthArr[i] < solution.minValue) {
                solution.bestPath = (LinkedList<Integer>) path.clone();
                solution.minValue = value + lastSmallLengthArr[i];
            }
            dfs(lastSmallLengthArr, value + lastSmallLengthArr[i], max, solution, i + 1, length, path);
            path.removeLast();
        }
    }

    //希尔排序--降序排序
    private static void shellSort(int[] arr) {
        for (int step = arr.length / 2; step > 0; step /= 2) {
            for (int i = step; i < arr.length; i++) {
                int value = arr[i];
                int j;
                for (j = i - step; j >= 0 && arr[j] < value; j -= step) {
                    arr[j + step] = arr[j];
                }
                arr[j + step] = value;
            }
        }
    }
}

[/code]

 

 

 

 

java问题:搜索大于 19421的最小组合:19481

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=88912][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
java问题:搜索大于 19421的最小组合:19481

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
旭硝子ETFE膜材是一种高性能的建筑材料,由日本旭硝子公司生产。以下是对旭硝子ETFE膜材的详细分析:
[b]一、公司背景与实力[/b]
公司概况:旭硝子株式会社(AGC)是全球知名的材料制造商,成立于1907年,拥有超过百年的历史。作为全球第二大玻璃制品公司,旭硝子的产品不仅限于玻璃制品,还涵盖了ETFE膜材等多种高性能材料。
技术实力:旭硝子在材料科学领域具有深厚的技术积累,其ETFE膜材以其优异的性能和广泛的应用领域在市场上享有很高的声誉。
[b]二、产品特点[/b]
1、高性能:
耐候性:ETFE膜材具有极佳的耐候性,能够抵抗紫外线、高温、低温等极端天气条件的侵蚀,确保长期使用的稳定性。
透光性:ETFE膜材的透光率极高,可高达95%,能够最大限度地引入自然光,减少照明能耗。
自洁性:膜材表面具有自洁功能,雨水冲刷即可保持清洁,减少维护成本。
机械强度:ETFE膜材具有较高的抗拉强度和撕裂强度,能够承受较大的外力作用。
2、多功能性:
耐化学腐蚀:ETFE膜材具有良好的耐化学腐蚀性能,能够在多种化学环境中保持稳定。
防火性:部分ETFE膜材产品达到B1级防火标准,提高了建筑的安全性。
隔音与保温:通过合理的结构设计,ETFE膜材还能提供良好的隔音和保温效果。
3、环保性:
ETFE膜材可回收利用,符合绿色建筑和可持续发展的理念。
[b]三、应用领域[/b]
旭硝子ETFE膜材广泛应用于多个领域,包括但不限于:
建筑领域:作为体育场馆、展览馆、机场航站楼等大型公共建筑的屋顶和墙面覆盖材料,提供美观且耐用的解决方案。
工业领域:在污水处理、空气净化等环保设施中作为覆盖材料使用。
农业领域:用于温室覆盖材料,提高温室的保温性能和透光性。
[b]四、技术创新与发展[/b]
旭硝子不断投入研发资源,致力于ETFE膜材的技术创新和产品升级。通过引进先进的生产设备和工艺技术,不断提升产品的性能和品质。同时,旭硝子还积极与国内外知名科研机构和建筑设计师合作,共同推动ETFE膜材在各个领域的应用和发展。
[b]五、市场认可度与前景[/b]
旭硝子ETFE膜材凭借其优异的性能和广泛的应用领域在市场上赢得了广泛的认可。随着全球对绿色建筑和可持续发展的重视不断加深,旭硝子ETFE膜材的市场前景将更加广阔。未来,旭硝子将继续加大在技术创新和产品研发上的投入力度,为客户提供更加优质、高效、环保的建筑材料解决方案。
综上所述,旭硝子ETFE膜材是一种高性能、多功能的建筑材料,在建筑、工业、农业等多个领域具有广泛的应用前景。

 

 

 

 

java问题:搜索大于 19421的最小组合:19481
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-8 14:52 , Processed in 0.134867 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表