这是我的magic贴布,目的是为自己记录一下学习过程中遇到的坑,结构可能会有些混乱,也会不断更新完善。
大家随便看看即可。
1. 如何从0开始提高编程能力
1.1
ontouchstart 認為在編程這個領域的提高要取決於以下幾個方面:
- 對編程環境的熟悉和理解。
- 對要解決的問題本身的熟悉和理解。
- 把具體問題轉化成數據問題,也就是說對已知數據和未知數據的熟悉和理解。
- 對可以利用的軟件包和原生函數的熟悉和理解,找到合適自己數據要求的函數來完成數據轉換。
- 在熟練以上四點的同時,根據自己的專業知識和思想,自己定義變量和函數來完成數據轉換,在反覆修改的基礎上寫出可靠的代碼。這是一個非常耗腦力的過程,不要以為「大佬」會很輕鬆地解決任何問題。
在現在以數據為核心的編程時代,抽象地比較編程能力,平台和語言的運行速度都是沒有意義的。不同的問題,不同的環境,不同的編程思想都對最後的結果有很大影響。
網上交流問答對所有人都是一個交互學習過程。我們需要從不同人的角度看「問題」,「環境」,和「思想」這三個方面。問什麼問題,怎麼問問題,怎麼回答問題,對我們大家都是一個學習過程。
2. 需看资料
http://docs.juliacn.com/latest/manual/arrays/ 1
http://docs.juliacn.com/latest/manual/arrays/#基本函数-1
http://docs.juliacn.com/latest/manual/control-flow/#man-loops-1
看JuliaPro的文档
3. 路径
3.1 基础
3.1.1 数组
3.1.2 函数
- 函数 · Julia中文文档
Julia的編程模式是函數式的,和C++/Java面向對象式不一樣。和Fortran等的過程式也不太一樣。
https://zh.wikipedia.org/wiki/编程范型 - 函数先定义,后调用
3.2 查错方法
- 自顶向下
- 自下向上
先从已知数开始,逐渐算出未知数来。每一步检查是不是自己需要的。然后用函数把已知数和未知数的关系包装起来。函数式编程一般不用全局变量,所有已知数都通过函数变量赋值调用。
3.3 程序结构
如果程序的唯一的未知数就是输入数据。那么程序结构应该是这样的
function f1(input1)
...
end
function f2(input2)
...
end
...
function main(data)
...
output1 = f1(input1);
...
output2 = f2(input2);
...
end
data = readdlm("data.txt" );
main(data);
零散记
# 1. 生成数组
strategy = zeros(Int64,Ntotal); #生成1位数组
strategy = zeros(Int64,Ntotal,1); #生成2维数组
death_num = rand(1:Ntotal); #生成1维数组
death_num = rand(1:Ntotal,1); #生成2维数组
shuffle(strategy); #strategy本身不改变
strategy = shuffle(strategy); #strategy内部随机排列