W9-C2 作业

题号:491
题目要求:

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 xy,计算它们之间的汉明距离。

注意:
0 ≤ x, y < 231.

示例:


输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。


代码:
class Solution:
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        count=0
        for i in range(0,32):
            tx=x%2
            ty=y%2
            if(tx!=ty):
                count=count+1
            x=x//2
            y=y//2
        return count

### 关于柔性作业车间调度问题使用粒子群算法的Python实现 #### 背景介绍 柔性作业车间调度问题(Flexible Job Shop Scheduling Problem, FJSP)是一个NP难问题,涉及到资源分配和时间规划等多个方面。粒子群优化(Particle Swarm Optimization, PSO)作为一种群体智能算法,在处理复杂优化问题时表现出色。 #### 粒子群算法简介 PSO模拟鸟类觅食行为中的个体和社会行为模式来解决问题。每个解决方案都是搜索空间中的一只“鸟”,称之为“粒子”。这些粒子按照一定的速度飞行,并根据自身经验和同伴的经验调整方向以找到最优解[^1]。 #### Python实现概述 对于FJSP应用PSO的关键在于合理设计适应度函数、粒子位置更新规则以及参数设置等要素。下面给出一段简化版的代码示例: ```python import random import numpy as np class Particle: def __init__(self, dimension): self.position = [random.randint(0, 9) for _ in range(dimension)] # 初始化粒子的位置 self.velocity = [0]*dimension # 初始速度设为零向量 self.best_position = [] # 记录个人最好位置 self.fitness_value = float(&#39;inf&#39;) # 当前适应度值 def evaluate_fitness(particles): """评估所有粒子的适应度""" pass def update_velocity_and_position(swarm): """更新整个蜂群的速度与位置""" w = 0.5 # 惯性权重 c1 = 1 # 自我认知系数 c2 = 2 # 社会认知系数 global_best_pos = max((p for p in swarm), key=lambda x:x.fitness_value).position.copy() for particle in swarm: r1,r2 = map(random.random,[None,None]) new_velocity = [] for i in range(len(particle.position)): vel_cognitive = c1 * r1 * (particle.best_position[i]-particle.position[i]) vel_social = c2 * r2 *(global_best_pos[i]-particle.position[i]) v_new = w*particle.velocity[i]+vel_cognitive+vel_social new_velocity.append(v_new) particle.velocity[:] = new_velocity[:] # 更新粒子位置并考虑边界条件 particle.position = [(int(x)%10) for x in np.array(new_velocity)+np.array(particle.position)] if __name__ == &#39;__main__&#39;: dimensions = 10 # 假设有十个工序需要安排 iterations = 100 # 设定最大迭代次数 num_particles = 30 # 种群大小设定为三十个粒子 swarm = [Particle(dimensions) for _ in range(num_particles)] while iterations>0: evaluate_fitness(swarm) update_velocity_and_position(swarm) iterations -= 1 ``` 这段代码展示了基本框架,但具体细节如`evaluate_fitness()`函数需依据实际情况构建适合特定场景下的目标函数;此外还需加入更多机制防止早熟收敛等问题发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值