fgm实例练习笔记-2.1点击展开下拉列表

并不是真正的下拉列表,而是一个按钮button,点击显示display:block; 一个列表。再点击列表中每一项可以实现相应功能,并且最后一项可以直接关闭列表display:none;,再次点击按钮也可以关闭列表。
鼠标扫过选项时选项变色background:blue; ,用hover选择器实现。
每个选项点击后还会有效果,所以在每个选项li 内做了一个<a href=""> 标签,留出接口。

<script>
window.onload = function(){
 var obtn = document.getElementsByTagName("button")[0];
 var oul = document.getElementsByTagName("ul")[0];
 var oli = document.getElementsByTagName("li");
 var oclo = document.getElementById("close");

 obtn.onclick = function(){
 if (oul.style.display == "none" ){ //条件内是判断是否相等的意思,要用==,而不是=
 oul.style.display = "block";}
 else
 {oul.style.display = "none";};
 } //用if判断条件。但就两种可能情况,更简洁的代码是用二目操作符?:
 /*oul.style.display =  oul.style.display =="none"  ? "block" :"none" ;}*/

  oclo.onclick = function(){
  oul.style.display= "none";}//给最后一个li选项单独一个id,onclick就关闭
};  
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PSO-FGM (Particle Swarm Optimization with Firefly Algorithm-based Gaussian Mutation) 是一种结合了粒子群优化(Particle Swarm Optimization, PSO)和萤火虫算法(Firefly Algorithm, FA)以及高斯变异操作的混合优化方法。这种算法通常用于解决复杂的优化问题,如函数拟合、参数估计或机器学习中的超参数调优。 由于这是一个比较技术性的主题,我会提供一个简单的概念概述,但完整的代码会包含以下几个部分: 1. 初始化粒子群体:粒子代表可能的解,每个粒子具有位置(表示当前解决方案)和速度(决定搜索方向)。 2. PSO 更新:根据个人最佳解(pBest)和全局最佳解(gBest),粒子的速度和位置会被更新。 3. FA 部分:模仿萤火虫间的光吸引行为,依据光源强度(目标函数值)调整飞行距离和亮度。 4. FGM 操作:基于高斯分布的变异策略,对粒子的位置进行随机微扰,增加搜索多样性。 5. 判断收敛条件:比如达到最大迭代次数,或者解的质量不再显著提高,则停止优化。 下面是简化的伪代码示例: ```python def PSO_FGM(optimizer_params, problem_func): # 初始化粒子和变量 particles = initialize_particles(optimizer_params) gBest = find_initial_gBest(particles) for t in range(optimizer_params['max_iterations']): # PSO 更新 update_velocities(particles, gBest) update_positions(particles) # FA 光吸引 attract_fires(particles, gBest) # FGM 高斯变异 apply_gaussian_mutation(particles) # 新的全局最优解 new_gBest = update_global_best(particles) if is_converged(new_gBest, gBest): break return gBest, particles # ...定义具体的方法(如初始化、更新等) ``` 实际代码会更复杂,因为涉及很多细节计算,包括概率计算、邻域搜索等。如果你想获得具体的代码实现,建议查阅相关的开源库或研究论文,或者在线搜索相应的教程。如果你有关于这个算法的具体问题,例如如何实现某个步骤,请告诉我,我会进一步解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值