周文康的大一Python学习心得体会

关于大一一年的python自我学习情况

大一上册初步接触Python,是通过老师的第一次授课对Python有了初步了解,第一节课的课堂上进行了对Python的环境配置与安装,在老师的引导下去官网:Python官方下载,然后进行环境的安装,当时我们是使用的Python3.8.3版本的Python解释器,当时什么都不懂,只有按照老师的步骤按部就班进行操作,当时都是小心翼翼的,怕出错了,又要重新安装。
等解释器安装好后,我们就去别人云盘里下载Pycharm-2020.1.1版本进行使用,就因为通过下载和安装,我才了解到下载的单词是Download、安装的单词是install,当时下载安装好后看见全都是英文,因为英语基础差的原因,看见就懵了,就觉得以后学习岂不是寸步难行,然后就把很久没用的有道词典拿出来使用,看见不懂的就查,大一上册就对Python有了初步认识,然后大一上册就懵懵懂懂的过去了。
大一下册开始,就进行Python面向程序设计的学习,那学期是陈玲老师授课,她很耐心和讲的很仔细,在她的授课下,我对Python有了进一步的了解,学习了简单的有Python面向程序设计的知识,初步认识了Django,经过一学期的学习,颇有收获,让我对Python更有兴趣想要去了解它。
  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 答:def GeneticAlgorithm(population, fitness_fn, ngen=100, pmut=0.1): for i in range(ngen): # 对种群中的每个个体评估适应度 population = [ (individual, fitness_fn(individual)) for individual in population] # 按照适应度从高到低排序 population = [ individual[0] for individual in sorted(population, key=lambda individual: individual[1], reverse=True)] # 选取最优秀的个体,称为父母 parents = population[:len(population)//2] # 交叉繁殖 offspring = [] for i in range(len(parents)//2): parent1 = parents[i] parent2 = parents[len(parents)-1-i] child1, child2 = crossover(parent1, parent2) offspring.append(child1) offspring.append(child2) # 变异 for i in range(len(offspring)): if random.random() < pmut: offspring[i] = mutation(offspring[i]) # 选取新的种群 population = parents + offspring return population ### 回答2: 遗传算法是一种模拟遗传过程的优化算法。下面是一个用Python编写的简单遗传算法的示例代码: ```python import numpy as np # 定义适应度函数 def fitness_func(solution): return np.sum(solution) # 初始化种群 def init_population(pop_size, chromosome_length): return np.random.randint(2, size=(pop_size, chromosome_length)) # 选择操作 def selection(population, fitness_values): fitness_sum = np.sum(fitness_values) selection_probs = fitness_values / fitness_sum selected_indices = np.random.choice(len(population), size=len(population), p=selection_probs) return population[selected_indices] # 交叉操作 def crossover(parent1, parent2): crossover_point = np.random.randint(0, len(parent1) + 1) child1 = np.concatenate((parent1[:crossover_point], parent2[crossover_point:])) child2 = np.concatenate((parent2[:crossover_point], parent1[crossover_point:])) return child1, child2 # 变异操作 def mutation(individual, mutation_rate): for i in range(len(individual)): if np.random.rand() < mutation_rate: individual[i] = 1 - individual[i] # 变异位点翻转 return individual # 遗传算法实现 def genetic_algorithm(population_size, chromosome_length, mutation_rate, generations): population = init_population(population_size, chromosome_length) fitness_values = np.zeros(population_size) for generation in range(generations): for i in range(population_size): fitness_values[i] = fitness_func(population[i]) population = selection(population, fitness_values) new_population = [] for i in range(0, population_size, 2): parent1, parent2 = population[i], population[i+1] child1, child2 = crossover(parent1, parent2) child1 = mutation(child1, mutation_rate) child2 = mutation(child2, mutation_rate) new_population.append(child1) new_population.append(child2) population = np.array(new_population) best_individual = population[np.argmax(fitness_values)] best_fitness = np.max(fitness_values) return best_individual, best_fitness # 示例运行 population_size = 100 chromosome_length = 10 mutation_rate = 0.01 generations = 100 best_individual, best_fitness = genetic_algorithm(population_size, chromosome_length, mutation_rate, generations) print("最优个体:", best_individual) print("最优适应度:", best_fitness) ``` 以上代码实现了一个简单的遗传算法,通过遗传算法优化一个01串的问题。代码中包括适应度函数的定义、种群初始化、选择、交叉、变异等操作的实现。最后通过遗传算法迭代,得到最优的个体和适应度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值