0%

引子

给定几个Shader效果
自己实现下

实现一盏虚拟的探照灯

写这个Shader的缘由

项目里需要使用灯光效果,但是需要几百个灯,如果使用Unity灯光做的话,不合适,消耗比较大

采用 “面片+billboard “ 来达到类似的效果,

阅读全文 »

Window 上建立Golang开发环境记录

Go 的main 函数必须再main 包内

下面代码执行

1
2
3
4
5
6
package gotest

func main() {
print("111")
}

执行效果如下

1
2
> go run main.go
go run: cannot run non-main package

需要修改为

1
2
3
4
5
6
package main

func main() {
print("111")
}

执行

1
2
> go run main.go
111

阅读全文 »

Window 上建立Golang开发环境记录

govendor

1. govendor简介

golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。

常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go 1.6版本默认开启该环境变量),用于将go build时的应用路径搜索调整成为 当前项目目录/vendor 目录方式。通过这种形式,我们可以实现类似于 godep 方式的项目依赖管理。

2. 安装与使用

2.1. 安装

1
go get -u -v github.com/kardianos/govendor
阅读全文 »

Window 上建立Golang开发环境记录

环境信息

  • Windows操作系统
  • go 1.14
  • VSCode 1.46

下载并安装软件

设置 go 环境变量

系统环境变量中添加

1
2
GOROOT=C:\Go
GOBIN=C:\Go\bin

系统环境变量 Path 变量中添加

1
%GOBIN%

用户环境变量中添加

1
GOPATH=%USERPROFILE%\go

阅读全文 »

Window 上建立python开发环境记录

环境信息

  • Windows操作系统
  • python 3.6
  • VSCode 1.46

下载并安装软件

设置 python 环境变量

系统环境变量中添加

1
PythonHome=C:\Python36

系统环境变量 Path 变量中添加

1
2
%PythonHome%
%PythonHome%\Scripts

阅读全文 »

引子

CentOS yum 软件包仓库

备份默认源

1
[root@user ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.b

使用阿里云镜像

CentOS 5

1
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6

1
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
阅读全文 »

动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。
动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。

算法基本思想 理念

动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。

动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。

具体的动态规划算法多种多样,但它们具有相同的填表格式

分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)

阅读全文 »

算法目录

  • 分治算法
  • 动态规划算法
  • 贪婪法
  • 回溯法
  • 分支界限法
  • 概率算法
  • 近似算法
  • 遗传算法
  • 鸟群觅食算法(粒子群算法)
  • A* 算法
阅读全文 »