从0学习Julia心得汇总贴


#1

这是我的magic贴布,目的是为自己记录一下学习过程中遇到的坑,结构可能会有些混乱,也会不断更新完善。
大家随便看看即可。

1. 如何从0开始提高编程能力

1.1

ontouchstart 認為在編程這個領域的提高要取決於以下幾個方面:

  1. 對編程環境的熟悉和理解。
  2. 對要解決的問題本身的熟悉和理解。
  3. 把具體問題轉化成數據問題,也就是說對已知數據和未知數據的熟悉和理解。
  4. 對可以利用的軟件包和原生函數的熟悉和理解,找到合適自己數據要求的函數來完成數據轉換。
  5. 在熟練以上四點的同時,根據自己的專業知識和思想,自己定義變量和函數來完成數據轉換,在反覆修改的基礎上寫出可靠的代碼。這是一個非常耗腦力的過程,不要以為「大佬」會很輕鬆地解決任何問題。

在現在以數據為核心的編程時代,抽象地比較編程能力,平台和語言的運行速度都是沒有意義的。不同的問題,不同的環境,不同的編程思想都對最後的結果有很大影響。

網上交流問答對所有人都是一個交互學習過程。我們需要從不同人的角度看「問題」,「環境」,和「思想」這三個方面。問什麼問題,怎麼問問題,怎麼回答問題,對我們大家都是一個學習過程。

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 函数

  1. https://juliacn.github.io/JuliaZH.jl/latest/manual/functions/index.html
    Julia的編程模式是函數式的,和C++/Java面向對象式不一樣。和Fortran等的過程式也不太一樣。
    https://zh.wikipedia.org/wiki/编程范型
  2. 函数先定义,后调用

3.2 查错方法

  1. 自顶向下
  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内部随机排列



#2

你想用的是shuffle!函数