- 博客(26)
- 收藏
- 关注
原创 【没有免费的午餐定理】
没有免费的午餐定理没有免费午餐定理 ( No Free Lunch Theorem , NFL ) 是由 Wolpert 和 Macerday 在最优化理论中提出的 . 没有免费午餐定理证明 : 对于基于迭代的最优化算法, 不存在某种算法对所有问题 ( 有限的搜索空间内 ) 都有效 . 如果一个算法对某些问题有效, 那么它一定在另外一些问题上比纯随机搜索算法更差 . 也就是说, 不能脱离具体问题来谈论算法的优劣 , 任何算法都有局限性 . 必须要 “ 具体问题具体分析”. 没有免费午餐定理对于机器学习算法
2024-12-25 19:39:13
164
原创 【论软件需求获取方法及其应用】
2023 年 3 月,我所在的公司承接了某油企智慧加油站平台的建设工作。该项目旨在帮助加油站提升运营效率、降低运营成本和提高销售额。我在该项目中担任系统架构设计师,负责整个项目的架构设计工作。本文以该项目为例,详细论述软件需求获取技术在该项目中的具体应用。在该项目中,我们主要运用了用户访谈、现场观摩和原型化方法等技术来获取需求。首先,我们通过用户访谈获取初步的用户需求;然后通过现场观摩获取复杂业务流程的需求;最后通过原型化方法进一步跟客户验证与确认需求。
2024-09-10 14:41:07
1305
原创 Golang channel 死锁的几种情况以及例子
Golang channel 死锁的几种情况以及例子————————————————原文链接:https://blog.youkuaiyun.com/Chen_Jeep/article/details/109534566你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你
2024-08-26 13:54:57
910
原创 GO-REDIS的一些高级用法
说到Golang的Redis库,用到最多的恐怕是redigo 和 go-redis。其中 redigo 不支持对集群的访问。本文想聊聊go-redis 2个高级用法。
2024-08-23 14:36:09
609
原创 基于go-redis实现适配redis cluster的mget和mset
如https://github.com/wuxibin89/redis-go-cluster。根据slot对key进行分task,然后多协程并发对单个slot进行mget/mset。根据slot对key进行分task,然后对单个slot进行mget/mset,使用pipeline聚合。测试场景:一个协程for循换批量mget3000个key,其中1500个key存在,1500个key不存在。基于实际情况考虑,组内用go-redis较多,因此决定基于go-redis实现mget和mset。
2024-08-15 18:24:08
613
原创 切片的初始化
2、带键的元素使用该键作为其索引。这个键必须是可被类型 int 所表示的一个非负常量;而且如果其 被赋予了类型的话则必须是整数类型。注意 [] 中的 6,它表示数组的长度。3、不带键的元素使用之前元素的索引加一。如果第一个元素没有键,则其索引为零。1、数组中的每个元素有一个关联的标记其位置的整数索引。
2024-05-28 17:22:37
227
原创 Golang channel 死锁
死锁是指两个或两个以上的协程的执行过程中,由于竞争资源或由于彼此通信而造成的一种阻塞的现象,若无外力作用,他们将无法推进下去,以下是总结出来的几种死锁情况。死锁6:向已关闭的channel中写入数据不会导致死锁,但是回出发panic异常。3.死锁3 :通道1中调用了通道2,通道2中调用通道1。5.死锁5:超过channel缓存继续写入数据导致死锁。死锁3 :通道1中调用了通道2,通道2中调用通道1。死锁5:超过channel缓存继续写入数据导致死锁。4.死锁4:直接读取空channel的死锁。
2024-05-27 18:04:46
314
1
原创 go读取两个文件,求交集并且写入到文件
go读取两个文件,求交集并且写入到文件背景具体代码背景最近产品需要导一批数据,需要用到两个文件就交集,在交集中显示“是”,不在交集中显示“否”,因为最近在学习go语言,所以就go写了一个小工具处理数据了。如果只是简单的求交集,可以用sort,uniq等工具处理。代码比较简单,就不解释了。如下:具体代码package mainimport ( "bufio" "fmt&
2018-12-13 22:03:03
603
原创 gdb调试(查看函数栈、调试coredump文件)
查看函数栈用在gdb中用bt,观察变量值用watch(变量值发生变化时会暂停程序的执行)一、调试coredump文件什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.一般以core.进程号的文件呈现,可以知己设置, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.core dump又叫核心转储, 当程序运行
2016-03-29 16:48:53
3280
原创 利用c实现简易的ping
测延时也可以发送ICMP报文,通过SOCKET创建ICMP的socket。代码也一并贴出。#include #include #include #include #include #include #include #include #include #include #include #include #define PACKET_SIZE 4096#def
2016-03-28 17:43:21
600
原创 cygwin 安装apt-cyg命令
googlecode关闭了。没法用wget安装apt-cyg找了半天只有github里有个方法可行:apt-cyg is a simple script. To install:lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyginstall apt-cyg /binExample us
2015-12-05 12:49:19
463
原创 linux下的多线程学习
下面先来一个实例来感受下linux下C语言多线程编程的乐趣!我们通过创建两个线程来实现对一个数的递加。先不去理会代码的含义,我们先运行linux,在其中编写我们的第一个C语言多线程程序。#include #include #include #include #include #define MAX 10pthread_t thread[2];pthread_mutex_t mu
2015-11-13 23:14:53
406
原创 头文件中的#ifndef #define #endif 作用
头文件中的#ifndef #define #endif 作用,防止头文件被重复包含
2015-10-11 10:28:34
6797
转载 scanf()函数的原理
scanf()函数的原理想象输入设备(键盘)连接着一个叫“缓冲”的东西,把缓冲认为是一个字符数组。当你的程序执行到scanf时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入。现在假设你的缓冲区里有:abcd\n1234\n (其中\n是回车符)执行:scanf("%s",name);的时候,由于scanf是读数据直到看见空白符(空白符:指空格符、制表符、回车
2015-08-08 14:36:11
2316
2
原创 STL学习总结【菜鸟版】
STL是标准模板库(Standard Template Library)的简称,它是一些常用数据结构和算法模板的集合。主要由Alex Stepanov开发,于1998年被添加到C++标准。 有了STL,你不必再从头写太多的数据结构和算法,可以通过调用STL中的现成的数据结构和算法,并且性能较高。STL中的几个概念: 1、容器:可容纳各种数据类型的数据结构。 2、迭代器:可依次存取容器中元素的东
2015-07-27 15:36:08
617
原创 文章标题
sprintf:字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。头文件stdio.h。 原型: int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表: buffer:char型指针,指向将要写入的字符串的缓冲区。 format:格式化字符串。 [argument]…:可选参数,可以是任何类型的
2015-05-04 12:45:42
331
转载 linux的可执行文件是什么后缀
一般没有后缀,linux一般可以自动识别文件类型,有很多类型都不用加后缀。只要设了执行权限,有elf文件头,就可以看成可执行文件,要是纯文本文件也可以看成是可执行的脚本。一部分下载的商业软件安装程序之类的可执行文件有.bin的后缀。有些时候可执行文件的后缀名为.out。Linux下的后缀名并没用windows下那么有用,Linux不根据扩展名判断文件类型,而是根据文件的内容来判断。所以扩展名的作用
2014-10-05 12:12:30
6202
原创 USEMAP的用法
usemap是标签的一个属性,用作指明所使用的图像地图名。 后面的#Map的Map就是用标签定义的一个图像地图,它的name属性是Map,像下面这样定义: ... 使用时: 图像地图把一幅图像分成若干个区域,点击不同的区域会进入不同的页面。为了创建客户端图像映像,需要增加新属性USEMAP如下:〈IMG SRC="map_name.gif"
2014-05-06 09:21:51
1921
转载 如何判断是否已经引入某个css或是js
利用JS判断function isInclude(name){ var js= /js$/i.test(name); var es=document.getElementsByTagName(js?'script':'link'); for(var i=0;i if(es[i][js?'src':'href'].indexOf(nam
2014-05-05 11:23:16
1378
1
转载 如何判断网页是静态还是伪静态
最近一直在研究Dedecms,准备建站之前,就一直在想用不用伪静态,到现在还没有决定下来,想来想去,最好的办法还是看一看同类型的网站采用的是静态 还是伪静态。那么我们打开一个网站,在基础知识不够的情况下,如何简单快速的判断出这个网页是静态还是伪静态呢?下面给大家来简单介绍一下: 伪静态和静态单从URL来看,很难分辨出来,一般网页后缀都是以.html结尾。我们可以借助一段简单的ja
2014-05-04 22:19:19
1198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人