自己写的 3个机器,m个任务的程序。

本文探讨了在3个机器和多个任务间进行最优分配的问题,通过一个具体的Java实现案例,介绍了如何将任务分配给不同机器以最小化总执行时间。此算法采用逐个添加任务的方式,并确保任意时刻任一机器的待执行任务总时间不超过当前迭代次数。


3个机器,m个任务,一个机器同时执行一个任务,每个任务有执行需要时间,3个机器执行速度相同。求最优配置,时间最少。


public static void main(String[] args) {
		int [] task = {2,14,4,16,8,10};
		List  m1 = new ArrayList();
		List m2  = new ArrayList();
		List m3 = new ArrayList();
		m1.add(task[0]);
		m2.add(task[1]);
		m3.add(task[2]);
		int xl = 3;
		
		
		
		for(int i=1;i<=20;i++){
			
			//m1
			int sum1 = 0;
			 for(int j = 0;j<m1.size();j++){
				 if(xl==task.length){
						
					 break;
				 }
				 sum1+=(int)m1.get(j);
				 if(sum1==i){
					 m1.add(task[xl]);
					 System.out.println("m1 add task " + xl);
					 xl++;
					 if(xl==task.length){
						
						 break;
					 }
					 continue;
				 }
			 }
			 
			 //m2
			 int sum2 = 0;
			 for(int j = 0;j<m2.size();j++){
				 if(xl==task.length){
						
					 break;
				 }
				 sum2+=(int)m2.get(j);
				 if(sum2==i){
					 m2.add(task[xl]);
					 System.out.println("m2 add task " + xl);
					 xl++;
					 if(xl==task.length){
						
						 break;
					 }
					 continue;
				 }
			 }
			 
			 //m3
			 int sum3 = 0;
			 for(int j = 0;j<m3.size();j++){
				 if(xl==task.length){
						
					 break;
				 }
				 sum3+=(int)m3.get(j);
				 if(sum3==i){
					 m3.add(task[xl]);
					 System.out.println("m3 add task " + xl);
					 xl++;
					 if(xl==task.length){
						 break;
					 }
					 continue;
				 }
			 }
		}
		for(int i=0;i<m1.size();i++){
			System.out.print("m1 " + m1.get(i));
			System.out.println();
		}
		for(int i=0;i<m2.size();i++){
			System.out.print("m2 "+m2.get(i));
			System.out.println();
		}
		for(int i=0;i<m3.size();i++){
			System.out.print("m3 "+m3.get(i));
			System.out.println();
		}
	}



<think>嗯,用户之前让我介绍如何用Python出他上一个问题的程序,但我现在需要先弄清楚他上一个问题具体是什么。不过由于我无法查看之前的对话记录,我得根据现有信息进行推测。可能用户之前的问题涉及到数学计算,比如积分、方程求解,或者是数据处理、机器学习之类的任务? 首先,用户提到系统级指令中涉及数学表达式,比如变量、不等式、方程,以及LaTeX的正确使用。这可能意味着上一个问题与数学相关,例如数值积分、解方程、矩阵运算等。因此,用户可能希望得到一个Python程序来解决类似的数学问题。 接下来,我需要确保回答符合用户的要求:结构清晰、步骤详细、正确使用LaTeX格式的数学公式。同时,要假设上一个问题可能与微积分或线性代数有关,比如计算定积分、求解微分方程,或者进行矩阵分解等。 可能的例子是,用户的上一个问题可能是计算定积分,比如积分∫_{-π}^{π} cos(nx)sin(mx)dx,这在傅里叶级数中常见。这种情况下,程序需要用数值积分的方法来计算这个积分,并验证其是否为零。或者用户的问题可能涉及线性代数中的矩阵运算,如特征值分解,或者解线性方程组。 我需要构造一个通用的示例,假设用户的问题是关于计算积分,然后展示如何用Python的SciPy库中的积分函数来实现。或者,如果是解方程,可以用SymPy库来符号求解。 另外,用户可能对代码的注释和步骤解释有需求,所以需要详细说明每一步的作用,确保代码结构清晰,易于理解。 需要注意的是,如果用户的上一个问题是关于机器学习模型,比如线性回归或分类问题,那么程序的结构会有所不同,可能会使用scikit-learn库。但结合系统指令中的数学表达式,更可能属于数学计算领域。 综合以上分析,我决定以数值积分作为例子,因为用户提供的示例中包含积分表达式,并且这是常见的数学问题,适合用Python处理。接下来,我需要出相应的Python代码,使用SciPy的quad函数进行积分,并验证结果是否接近零。同时,要确保在回答中正确使用LaTeX格式的数学公式,并分步骤解释代码。</think>由于我无法查看对话历史,您提到的「上一个问题」具体内容未知。我将基于常见数学问题场景,提供一个Python编程示例,并附上分步说明: $\boxed{\text{示例:计算定积分}\int_{-\pi}^{\pi} \cos(nx)\sin(mx)dx}$ ```python import numpy as np from scipy.integrate import quad def orthogonal_check(n, m): """ 验证三角函数正交性: 当n≠m时,积分结果趋近于0 当n=m时,积分结果为π """ integrand = lambda x: np.cos(n*x) * np.sin(m*x) result, error = quad(integrand, -np.pi, np.pi) return result # 测试用例 print(orthogonal_check(2, 3)) # 不
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值