Python | 用遗传算法 求解最优值

Hello,大家好,这里是六个核桃Lu!

 Python | 用遗传算法 求解最优值

(代码在文末)


1 需求分析与设计原理

  1. 1需求分析

Python | 用遗传算法 求解最优值_第1张图片

  1. 2算法分析及设计

求解最优值问题采用遗传算法,遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖、杂交和突变现象。再利用遗传算法求解问题时,问题的每一个可能解都被编码成一个“染色体”,即个体,若干个个体构成了群体(所有可能解)。在遗传算法开始时,总是随机的产生一些个体(即初始解),根据预定的目标函数对每一个个体进行评估,给出一个适应度值,基于此适应度值,选择一些个体用来产生下一代,选择操作体现了“适者生存”的原理,“好”的个体被用来产生下一代,“坏”的个体则被淘汰,然后选择出来的个体,经过交叉和变异算子进行再组合生成新的一代,这一代的个体由于继承了上一代的一些优良性状,因而在性能上要优于上一代,这样逐步朝着最优解的方向进化。因此,遗传算法可以看成是一个由可行解组成的群体初步进化的过程。

遗传操作是模拟生物基因的操作,他的任务就是根据个体适应度对其施加一定的操作,从而实现优胜劣汰的进化过程.从优化搜索的角度来看,遗传操作可以使问题的解逐代优化,逼近最优解,遗传操作包括以下三个基本遗传算子:选择、交叉、变异.选择和交叉基本上完成了遗传算法的大部分搜索功能,变异增加了遗传算法找到最优解的能力。遗传算法的具体步骤如下:

1、选择

选择是指从群体中选择优良个体并淘汰劣质个体的操作.它建立在适应度评估的基础上.适应度越大的个体,被选中上的可能性就越大,他的“子孙”在下一代中的个数就越多,选择出来的个体就被放入配对库中.目前常用的选择方法有轮赌盘方法、最佳个体保留法、期望值法、排序选择法、竞争法、线性标准化法。

2、交叉

交叉就是指把两个父代个体的部分结构加以替换重组而生成新的个体的操作,交叉的目的是为了在下一代产生新的个体,通过交叉操作,遗传算法的搜索能力得到了飞跃性的提高.交叉是遗传算法获取优良个体的重要手段.交叉操作是按照一定的交叉概率在匹配库中随机的选取两个个体进行的,交叉位置也是随机的,交叉概率一般取得很大,为0.6~0.9。

3、变异

变异就是以很小的变异概率Pm随机地改变种群中个体的某些基因的值,变异操作的基本过程是:产生一个[0,1]之间的随机数rand,如果rand0.5,遗传算法就退化为了随机搜索。

2 程序设计

2.1 解决最优值问题的流程

1、构造初始种群

定义initialPopulation函数,personNum为种群数量,length为种群每个个体编码的位数(personNum=50,length=16),在定义totalPopulation=[]为种群列表,用while循环,当种群列表长度不等于种群数量时就一直循环,循环随机产生16为二进制数,在将16位二进制数用字符串表示,将产生的二进制数加入种群列表,最后返回种群列表。

# 生成初始化种群
# personNum为种群数量,length为种群每个个体编码的位数
def initialPopulation(personNum=50,length=16):
    totalPopulation=[] #种群列表
    while len(totalPopulation)!=personNum:
        person=[]
        #循环随机产生16为二进制数
        for i in range(16):
                person.append(random.randint(0,1))
        theStr = ''
        # 将16位二进制数用字符串表示
        for item in person:
            theStr += str(item)
        #print(theStr)
        if domain_of_definition(theStr):
            # 将产生的二进制数加入种群列表
            if theStr not in totalPopulation:
                totalPopulation.append(theStr)
    print('初始种群=',totalPopulation)
    return totalPopulation

注:这道题的定义域不是正无穷到负无穷,所以需要限定一下,我定义了一个domain_of_definition()函数用来判断生成的数值是否在定义域内,为了方便编程用x表示x1,y表示x2,二进制数16位,前8位代表x,后8位代表y。

# 判断生成的数是否满足函数定义域
def domain_of_definition (onePerson):
        x = onePerson[0:8]
        y = onePerson[8:16]
        # 将x,y转换为十进制
        x = int(x, 2)
        y = int(y, 2)
        x = x * 1.5 / 258
        y = y * 1.5 / 256
        if (x * x - 4 * y * y) >= 0 and (-1)*math.sin(x)+math.sqrt(x*x-4*y*y)!=0 and y!=0:
            return True
        else: return False

2、计算函数个体值

定义evaluate()函数,计算函数值。

# 计算x,y对应的函数值
# 一个个体的编码
def evaluate(onePerson):
    x,y=decode(onePerson)
    result=((-1)*math.sin(x)+math.sqrt(x*x-4*y*y))/y
    return result

其中的调用decode()函数,是用来将传过来的二进制数转换为十进制数的。

# 将一个16位的编码转换为x,y的十进制解
def decode(onePerson):
    # onePerson是一个16位的二进制,
    # x=x1 y=x2
    # 前8位代表x,后8位代表y
    x = onePerson[0:8]
    y = onePerson[8:16]
    # 将x,y转换为十进制
    x = int(x, 2)
    y = int(y, 2)
    x = x * 1.5 / 256
    y = y * 1.5 / 256
    return x,y

3、获取两个父母,然后进行交叉,生成子代个体。

# 获取一个父母进行交叉
# 输出:返回的是一个双亲在population的index
def getParents(evalList):
    temp = random.uniform(0, 1)
    portionList=[]
    theSum=0
    totalEval=sum(evalList)
    for eval in evalList:
        theSum+=eval/totalEval
        portionList.append(theSum)
    location=0
    while(temp>portionList[location]):
        location+=1
    return location

构造getCross()函数,随机在0到15之间选择整数,随机出来的整数为切割的索引位置,在组合得到child染色体。

# 两个person生成子代
# 输出:生成的子代person编码
def getCross(father,mother):
    theVisit=[]
    crossLocation=random.randint(0,15)
    theVisit.append(crossLocation)
    #print(crossLocation)
    print('交叉 ',end='')
    child=''
    child += father[0:crossLocation]
    child += mother[crossLocation:16]
    return child

4、变异

定义变异概率mutationProbability=0.9,temp等于随机取0到1之间的数,若temp小于0.9,则发生变异。变异后染色体所求出的函数值若优于(小于)原染色体,则返回变异染色体;若不优于(小于),则返回原染色体。

# 进行变异
def getVari(person):
    #print(person)
    temp = random.uniform(0, 1)
    if temp

5、终止

如果未到终止条件,则回到步骤1创造初始种群,当最优个体的适应度达到给定的阈值,或者最优个体的适应度和群体适应度不再上升时,或者迭代次数达到预设的代数时,算法终止,选出最佳个体的编码。我定义了iteration=30,即假设迭代30次即终止。

注:每次迭代时先将上一代最小的个体放到下一代种群中,这样能保证最优的值保留下来。

3 流程图Python | 用遗传算法 求解最优值_第2张图片

 最后附上完整版代码

import random
import math

personNum=300 #种群数量
mutationProbability=0.9 #变异概率
iteration=30 #假设迭代30次即终止
length=16 #染色体长度

# 生成初始化种群
# 参数:personNum为种群数量,length为种群每个个体编码的位数
def initialPopulation(personNum=50,length=16):
    totalPopulation=[] #种群列表
    while len(totalPopulation)!=personNum:
        person=[]
        #循环随机产生16为二进制数
        for i in range(16):
                person.append(random.randint(0,1))
        theStr = ''
        # 将16位二进制数用字符串表示
        for item in person:
            theStr += str(item)
        #print(theStr)
        if domain_of_definition(theStr):
            # 将产生的二进制数加入种群列表
            if theStr not in totalPopulation:
                totalPopulation.append(theStr)
    print('初始种群=',totalPopulation)
    return totalPopulation

# 判断生成的数是否满足函数定义域
def domain_of_definition (onePerson):
        x = onePerson[0:8]
        y = onePerson[8:16]
        # 将x,y转换为十进制
        x = int(x, 2)
        y = int(y, 2)
        x = x * 1.5 / 258
        y = y * 1.5 / 256
        if (x * x - 4 * y * y) >= 0 and (-1)*math.sin(x)+math.sqrt(x*x-4*y*y)!=0 and y!=0:
            return True
        else: return False

# 将一个16位的编码转换为x,y的十进制解
def decode(onePerson):
    # onePerson是一个16位的二进制,
    # x=x1 y=x2
    # 前8位代表x,后8位代表y
    x = onePerson[0:8]
    y = onePerson[8:16]
    # 将x,y转换为十进制
    x = int(x, 2)
    y = int(y, 2)
    x = x * 1.5 / 256
    y = y * 1.5 / 256
    return x,y

# 计算x,y对应的函数值
# 参数:一个个体的编码
def evaluate(onePerson):
    x,y=decode(onePerson)
    result=((-1)*math.sin(x)+math.sqrt(x*x-4*y*y))/y
    return result

# 获取一个父母进行交叉
# 输出:返回的是一个双亲在population的index
def getParents(evalList):
    temp = random.uniform(0, 1)
    portionList=[]
    theSum=0
    totalEval=sum(evalList)
    for eval in evalList:
        theSum+=eval/totalEval
        portionList.append(theSum)
    location=0
    while(temp>portionList[location]):
        location+=1
    return location

# 两个person生成子代
# 输出:生成的子代person编码
def getCross(father,mother):
    theVisit=[]
    crossLocation=random.randint(0,15)
    theVisit.append(crossLocation)
    #print(crossLocation)
    print('交叉 ',end='')
    child=''
    child += father[0:crossLocation]
    child += mother[crossLocation:16]
    return child

# 进行变异
def getVari(person):
    #print(person)
    temp = random.uniform(0, 1)
    if temp
                    
                    
  • 比较分析:Windsurf、Cody、Cline、Roo Cline、Copilot 和 通义灵码 张3蜂 开源编程语言与开发技术选型与架构设计copilotc#AI编程
    随着人工智能技术的快速发展,开发者工具变得越来越智能化,特别是在代码生成、辅助编程等领域,市面上涌现了多种AI驱动的工具。本文将从开源性、集成能力、功能覆盖范围、支持的编程语言、生态兼容性、成本、学习曲线、响应速度、离线支持以及与.NETCore的适配性等十个维度对以下几种产品进行比较:Windsurf、Cody、Cline、RooCline、Copilot和通义灵码。1.开源性Windsurf:
  • 便民服务一体化的智慧园区开源了 AI服务老曹 音视频人工智能自动化运维能源开源
    智慧园区场景视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。充分利用现有的摄像头设备,无需大规模更换,降低成本同时提升系统的实施效率。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。项目搭建地址基础项目搭建地址:yihecode
  • 实现物流行业数字化、智能化管理的新型模式的智慧物流开源了 AI服务老曹 开源能源人工智能云计算安全
    智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。构建基于Ai技术的安全监管平台,可逐步实现智能化巡检,针对安全事故隐患进行有效监控预警,降低安全违规行为发生率,节省人工监管成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及
  • 全流程数字化管理的智慧物流开源了 AI服务老曹 开源科技生活人工智能自动化
    智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。构建基于Ai技术的安全监管平台,可逐步实现智能化巡检,针对安全事故隐患进行有效监控预警,降低安全违规行为发生率,节省人工监管成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及
  • 降低成本、提高效率的智慧能源开源了。 ai产品老杨 vue.js前端javascript人工智能安全
    一、简介AI视频监控平台,是一款功能强大且简单易用的实时算法视频监控系统。愿景在最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,减少企业级应用约95%的开发成本,在强大视频算法加持下的AR使得远程培训和远程操作指导不仅仅能够实现前后场的简单互动,而且能够实现人机结合,最终实现整个巡检流程的标准化。用户仅需在界面上简单操作,即可实现全视频的接入及布控。通
  • 使用Aim追踪LangChain执行 bavDHAUO langchainpython
    在现代人工智能应用中,调试和可视化自动化工作流变得越来越重要,Aim正是为此而生。通过Aim,你可以轻松地追踪LangChain中语言模型(LLM)和工具的输入输出,以及代理的动作,从而在执行过程中快速定位和解决问题。此外,Aim还支持并排比较多个执行流程,使之成为调试中的得力助手。Aim是一个完全开源的项目,你可以在GitHub上找到更多关于Aim的信息。在本文中,我们将展示如何启用和配置Aim
  • python做飞机大战让敌机打子弹_python(pygame)滑稽大战(类似飞机大战) 教程 青云若水
    初始准备工作本项目使用的python3版本(如果你用python2,我不知会怎么样)Ide推荐大家选择pycharm(不同ide应该没影响)需要安装第三方库pygame,pygame安装方法(windows电脑,mac系统本人实测与pygame不兼容,强行运行本项目卡成ppt)电脑打开cmd命令窗口,输入pip3installpygame补充说明:由于众所周知的原因,安装过程中下载可能十分缓慢,甚
  • 利用Python和深度学习方法实现手写数字识别的高精度解决方案——从数据预处理到模型优化的全流程解析 快撑死的鱼 Python算法精解python深度学习开发语言
    利用Python和深度学习方法实现手写数字识别的高精度解决方案——从数据预处理到模型优化的全流程解析在人工智能的众多应用领域中,手写数字识别是一项经典且具有重要实际应用价值的任务。随着深度学习技术的飞速发展,通过构建和训练神经网络模型,手写数字识别的精度已经可以达到99%以上。本文将以Python为主要编程语言,结合深度学习的核心技术,详细解析手写数字识别的实现过程,并探讨如何进一步优化模型以提高
  • python之连连看游戏 CrMylive. python游戏pygame
    实现一个简单的连连看游戏需要用到pygame库和一些基本的数据结构和算法。导入pygame库在程序开始之前,首先需要导入pygame库。在Python中,可以使用以下代码导入pygame库:importpygame初始化Pygame在导入pygame库之后,需要使用以下代码初始化pygame:pygame.init()设置游戏窗口设置游戏窗口的大小、标题等属性。可以使用以下代码设置游戏窗口大小为6
  • 力扣刷题|链表面试题 02.02. 返回倒数第 k 个节点 柯ran 力扣leetcode算法数据结构链表
    题目:实现一种算法,找出单向链表中倒数第k个节点。返回该节点的值。快慢指针思想,画图更容易理解/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/intkthToLast(structListNode*head,intk){assert(head!=NULL);if(head==N
  • Python, Java, C ++开发全球热能动态监测APP Geeker-2025 pythonjavac++
    开发一个“全球热能动态监测APP”是一个非常有意义的想法,尤其是在能源管理和环境保护领域。以下是开发该APP的详细思路和技术实现方案,分别针对Python、Java和C++。---###**功能需求分析**1.**全球热能数据展示**:-各国或地区的热能生产、消费和进出口数据。-实时监测热能动态(如发电厂的热能输出、温度变化等)。2.**地图可视化**:-在地图上标注热能发电厂的位置。-使用颜色或
  • 大二下开始学数据结构与算法--07,单项循环链表的实现 爱我的你不说话 链表数据结构
    自习所完成的任务单向循环链表代码的实现和测验任务学课程到p28复现相关代码感悟其实这个教程上的观念,跟我刚开始理解想的并不一样,我以为会是:头节点使实例化的节点的循环链表,但是,教程给的更像是存在头节点,但头节点没有实际意义的添加了尾节点单项循环链表(跟之前单向不循环链表相比,更像是只多了一尾节点)。#include#include#includeusingnamespacestd;//存在头节点
  • 动物识别系统代码python_动物识别系统__代码 weixin_39812065 动物识别系统代码python
    1动物识别专家系统动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示知识,共15条规则、可以识别七种动物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。动物识别15条规则的中文表示是:规则1:如果:动物有毛发则:该动物是哺乳动物规则2:如果:动物有奶则:该单位是哺乳动物规则3:如果:该动物有羽毛则:该动物是鸟规则4:如果:动物会飞,
  • 动物识别系统代码python_动物识别系统代码 weixin_39862794 动物识别系统代码python
    简易动物识别专家系统源代码(调试无错!)#includevoidbirds(){inta;printf("**************************************\n");printf("1.长腿,长脖子,黑色,不会飞。\n");printf("2.不会飞,会游泳,黑色.\n");printf("3.善飞\n");printf("4.无上述特征\n");printf("****
  • java中vector和list_java中vector和list的区别 Creamy络
    java中vector和list的区别发布时间:2020-06-1917:07:11来源:亿速云阅读:106作者:元一vector的概念Vector类是在java中可以实现自动增长的对象数组,vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector的使用连续存储结构:vector是可以实现动态增长的对象数组,支持对数组高效率的访问和在数
  • Python深浅拷贝 Karl_zhujt Pythonpython
    文章目录1概述2数据类型2.1可变类型2.2不可变类型3深浅拷贝3.1浅拷贝3.2深拷贝4深浅拷贝对数据类型的影响4.1对于不可变类型的影响4.2对于可变类型的影响4.3总结5实现机制5.1copy5.2id6示例6.1普通赋值6.2浅拷贝可变类型6.3浅拷贝不可变类型6.4深拷贝可变类型6.5深拷贝不可变类型7注意事项1概述在Python中,可变类型和不可变类型的拷贝行为有所不同。理解它们的区别
  • 基于 EMA12 指标结合 iTick 外汇报价 API 、股票报价API、指数报价API的量化策略编写与回测
    iTick提供了强大的外汇报价API、股票报价API和指数报价API服务,为量化策略的开发提供了丰富的数据支持。本文将详细介绍如何使用Python结合EMA12指标和iTick的报价API来构建一个简单的量化交易策略,并对该策略进行回测。1.引言在量化交易领域,技术指标是构建交易策略的重要基础。iTick提供了强大的外汇报价API、股票报价API和指数报价API服务,为量化策略的开发提供了丰富的数
  • 腾讯云大模型知识引擎与DeepSeek:打造懒人专属的谷歌浏览器翻译插件 大富大贵7 程序员知识储备1程序员知识储备2程序员知识储备3腾讯云云计算
    摘要:随着人工智能技术的飞速发展,越来越多的前沿技术和工具已走入日常生活。翻译工具作为跨语言沟通的桥梁,一直处于技术创新的风口浪尖。本文探讨了腾讯云大模型知识引擎与DeepSeek结合谷歌浏览器插件的可能性,旨在为用户提供一种便捷、高效的翻译体验。通过应用深度学习、自然语言处理和知识图谱技术,该插件不仅能实时翻译网页内容,还能根据上下文进行智能推荐,实现精准的语境转换。本文将详细阐述其设计思路、技
  • python动物识别系统(仅有识别功能) OnlySecondS
    ''@Time:2022/03/298:39@Author:11863@File:AIS_main.py@software:PyCharm'''rules={}#以字典形式存储#读取文件defreadRules():rulesFile=open("rules.txt","r",encoding='utf-8')forlineinrulesFile:#按行读取line=line.replace('I
  • HttpClient 4.3与4.3版本以下版本比较 spjich javahttpclient
    网上利用java发送http请求的代码很多,一搜一大把,有的利用的是java.net.*下的HttpURLConnection,有的用httpclient,而且发送的代码也分门别类。今天我们主要来说的是利用httpclient发送请求。 httpclient又可分为 httpclient3.x httpclient4.x到httpclient4.3以下 httpclient4.3
  • Essential Studio Enterprise Edition 2015 v1新功能体验 Axiba .net
    概述:Essential Studio已全线升级至2015 v1版本了!新版本为JavaScript和ASP.NET MVC添加了新的文件资源管理器控件,还有其他一些控件功能升级,精彩不容错过,让我们一起来看看吧! syncfusion公司是世界领先的Windows开发组件提供商,该公司正式对外发布Essential Studio Enterprise Edition 2015 v1版本。新版本
  • [宇宙与天文]微波背景辐射值与地球温度 comsci 背景
            宇宙这个庞大,无边无际的空间是否存在某种确定的,变化的温度呢?      如果宇宙微波背景辐射值是表示宇宙空间温度的参数之一,那么测量这些数值,并观测周围的恒星能量输出值,我们是否获得地球的长期气候变化的情况呢?   &nbs
  • lvs-server 男人50 server
    #!/bin/bash # # LVS script for VS/DR # #./etc/rc.d/init.d/functions # VIP=10.10.6.252 RIP1=10.10.6.101 RIP2=10.10.6.13 PORT=80 case $1 in start)   /sbin/ifconfig eth2:0 $VIP broadca
  • java的WebCollector爬虫框架 oloz 爬虫
    WebCollector主页: https://github.com/CrawlScript/WebCollector 下载:webcollector-版本号-bin.zip将解压后文件夹中的所有jar包添加到工程既可。 接下来看demo package org.spider.myspider; import cn.edu.hfut.dmic.webcollector.cra
  • jQuery append 与 after 的区别 小猪猪08
    1、after函数 定义和用法: after() 方法在被选元素后插入指定的内容。 语法: $(selector).after(content) 实例: <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></scr
  • mysql知识充电 香水浓 mysql
    索引 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。 根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。 大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关; MYISAM和InnoDB存储引擎
  • 我的架构经验系列文章索引 agevs 架构
    下面是一些个人架构上的总结,本来想只在公司内部进行共享的,因此内容写的口语化一点,也没什么图示,所有内容没有查任何资料是脑子里面的东西吐出来的因此可能会不准确不全,希望抛砖引玉,大家互相讨论。 要注意,我这些文章是一个总体的架构经验不针对具体的语言和平台,因此也不一定是适用所有的语言和平台的。 (内容是前几天写的,现附上索引)   前端架构 http://www.
  • Android so lib库远程http下载和动态注册 aijuans andorid
    一、背景      在开发Android应用程序的实现,有时候需要引入第三方so lib库,但第三方so库比较大,例如开源第三方播放组件ffmpeg库, 如果直接打包的apk包里面, 整个应用程序会大很多.经过查阅资料和实验,发现通过远程下载so文件,然后再动态注册so文件时可行的。主要需要解决下载so文件存放位置以及文件读写权限问题。   二、主要
  • linux中svn配置出错 conf/svnserve.conf:12: Option expected 解决方法 baalwolf option
    在客户端访问subversion版本库时出现这个错误: svnserve.conf:12: Option expected 为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,如### This file controls the configuration of the svnserve daemon, if you##
  • MongoDB的连接池和连接管理 BigCat2013 mongodb
    在关系型数据库中,我们总是需要关闭使用的数据库连接,不然大量的创建连接会导致资源的浪费甚至于数据库宕机。这篇文章主要想解释一下mongoDB的连接池以及连接管理机制,如果正对此有疑惑的朋友可以看一下。 通常我们习惯于new 一个connection并且通常在finally语句中调用connection的close()方法将其关闭。正巧,mongoDB中当我们new一个Mongo的时候,会发现它也
  • AngularJS使用Socket.IO bijian1013 JavaScriptAngularJSSocket.IO
            目前,web应用普遍被要求是实时web应用,即服务端的数据更新之后,应用能立即更新。以前使用的技术(例如polling)存在一些局限性,而且有时我们需要在客户端打开一个socket,然后进行通信。         Socket.IO(http://socket.io/)是一个非常优秀的库,它可以帮你实
  • [Maven学习笔记四]Maven依赖特性 bit1129 maven
    三个模块 为了说明问题,以用户登陆小web应用为例。通常一个web应用分为三个模块,模型和数据持久化层user-core, 业务逻辑层user-service以及web展现层user-web, user-service依赖于user-core user-web依赖于user-core和user-service   依赖作用范围  Maven的dependency定义
  • 【Akka一】Akka入门 bit1129 akka
    什么是Akka Message-Driven Runtime is the Foundation to Reactive Applications In Akka, your business logic is driven through message-based communication patterns that are independent of physical locatio
  • zabbix_api之perl语言写法 ronin47 zabbix_api之perl
    zabbix_api网上比较多的写法是python或curl。上次我用java--http://bossr.iteye.com/blog/2195679,这次用perl。for example: #!/usr/bin/perl use 5.010 ; use strict ; use warnings ; use JSON :: RPC :: Client ; use
  • 比优衣库跟牛掰的视频流出了,兄弟连Linux运维工程师课堂实录,更加刺激,更加实在! brotherlamp linux运维工程师linux运维工程师教程linux运维工程师视频linux运维工程师资料linux运维工程师自学
    比优衣库跟牛掰的视频流出了,兄弟连Linux运维工程师课堂实录,更加刺激,更加实在!   ----------------------------------------------------- 兄弟连Linux运维工程师课堂实录-计算机基础-1-课程体系介绍1 链接:http://pan.baidu.com/s/1i3GQtGL 密码:bl65   兄弟连Lin
  • bitmap求哈密顿距离-给定N(1<=N<=100000)个五维的点A(x1,x2,x3,x4,x5),求两个点X(x1,x2,x3,x4,x5)和Y( bylijinnan java
    import java.util.Random; /** * 题目: * 给定N(1<=N<=100000)个五维的点A(x1,x2,x3,x4,x5),求两个点X(x1,x2,x3,x4,x5)和Y(y1,y2,y3,y4,y5), * 使得他们的哈密顿距离(d=|x1-y1| + |x2-y2| + |x3-y3| + |x4-y4| + |x5-y5|)最大
  • map的三种遍历方法 chicony map
    package com.test; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class TestMap { public static v
  • Linux安装mysql的一些坑 chenchao051 linux
    1、mysql不建议在root用户下运行   2、出现服务启动不了,111错误,注意要用chown来赋予权限, 我在root用户下装的mysql,我就把usr/share/mysql/mysql.server复制到/etc/init.d/mysqld, (同时把my-huge.cnf复制/etc/my.cnf)  chown -R cc /etc/init.d/mysql
  • Sublime Text 3 配置 daizj 配置Sublime Text
    Sublime Text 3 配置解释(默认){// 设置主题文件“color_scheme”: “Packages/Color Scheme – Default/Monokai.tmTheme”,// 设置字体和大小“font_face”: “Consolas”,“font_size”: 12,// 字体选项:no_bold不显示粗体字,no_italic不显示斜体字,no_antialias和
  • MySQL server has gone away 问题的解决方法 dcj3sjt126com SQL Server
    MySQL server has gone away 问题解决方法,需要的朋友可以参考下。 应用程序(比如PHP)长时间的执行批量的MYSQL语句。执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。都容易引起MySQL server has gone away。 今天遇到类似的情景,MySQL只是冷冷的说:MySQL server h
  • javascript/dom:固定居中效果 dcj3sjt126com JavaScript
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&
  • 使用 Spring 2.5 注释驱动的 IoC 功能 e200702084 springbean配置管理IOCOffice
    使用 Spring 2.5 注释驱动的 IoC 功能 developerWorks 文档选项 将打印机的版面设置成横向打印模式 打印本页 将此页作为电子邮件发送 将此页作为电子邮件发送 级别: 初级 陈 雄华 ([email protected]), 技术总监, 宝宝淘网络科技有限公司 2008 年 2 月 28 日  &nb
  • MongoDB常用操作命令 geeksun mongodb
    1.   基本操作 db.AddUser(username,password)               添加用户 db.auth(usrename,password)      设置数据库连接验证 db.cloneDataBase(fromhost)    
  • php写守护进程(Daemon) hongtoushizi PHP
    转载自: http://blog.csdn.net/tengzhaorong/article/details/9764655   守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。php也可以实现守护进程的功能。   1、基本概念   &nbs
  • spring整合mybatis,关于注入Dao对象出错问题 jonsvien DAOspringbeanmybatisprototype
    今天在公司测试功能时发现一问题: 先进行代码说明: 1,controller配置了Scope="prototype"(表明每一次请求都是原子型)    @resource/@autowired service对象都可以(两种注解都可以)。 2,service 配置了Scope="prototype"(表明每一次请求都是原子型)
  • 对象关系行为模式之标识映射 home198979 PHP架构企业应用对象关系标识映射
    HELLO!架构   一、概念 identity Map:通过在映射中保存每个已经加载的对象,确保每个对象只加载一次,当要访问对象的时候,通过映射来查找它们。其实在数据源架构模式之数据映射器代码中有提及到标识映射,Mapper类的getFromMap方法就是实现标识映射的实现。     二、为什么要使用标识映射? 在数据源架构模式之数据映射器中 //c
  • Linux下hosts文件详解 pda158 linux
     1、主机名:   无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。   公网:IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。   局域网:每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机
  • nginx配置文件粗解 spjich javanginx
    #运行用户#user  nobody;#启动进程,通常设置成和cpu的数量相等worker_processes  2;#全局错误日志及PID文件#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  inf
  • 数学函数 w54653520 java
    public  class  S {        // 传入两个整数,进行比较,返回两个数中的最大值的方法。      public  int  get( int  num1, int  nu