# 赤兔文档 ## 简介 赤兔是一个高性能数学计算模块。起名赤兔,是希望它高效而优雅。通过赤兔,您可以方便地进行大规模数据的储存和计算。 下面是一个使用赤兔的简单例子 ```python 引("chitu") 令 甲 = 赤兔.创建数组(100, 6) #创建一个长度为100个数字的数组,初始值为6 令 乙 = 赤兔.创建数组(100, 5) #创建一个长度为100个数字的数组,初始值为5 甲 = 甲 + 4 #对数组的全部数据加4, 现在全部数据为10 甲 = 甲 - 乙 #将甲的全部数据按顺序和乙的相减,即甲[0] = 甲[0] - 乙[0], 以此类推 甲.插入(5, 67) #将甲的5索引处的数据更改为67, 即甲[5] = 67 甲.插入(33, 甲.索引(3) + 7) #索引3处的数据,加上7后插入33处 甲.打印() #将甲的信息打印到屏幕上,输出略 甲.删除() #清除甲和乙的内存占用,此后两者不再可用 乙.删除() ``` ## 函数 ### 赤兔.更改随机数种子(种子:正整数): 空 + 种子为要更改的种子,该种子将被所有赤兔模块内的随机运算使用。 ### 赤兔.创建数组(长度, 初始值): 单元 + 长度为要创建的数组的长度,单位为个。初始值为要创建的数组的初始值。 + 返回一个数组对象。 + 当长度和初始值缺省时,会被设置为0. ## 对象 ### 数组对象 #### 成员变量 ##### \_\_ptr\_\_ : 指针 + 储存数组结构体的指针 + 当指针对应的内存被释放后,该变量会被设置为空 #### 成员函数 ##### 删除(): 单元 + 将数组内存释放并将\_\_ptr\_\_设置为空 + 返回释放内存后的数组对象,但此对象不再可用.为防止误操作,建议在调用该函数后将对象设置为空. ##### 长度(): 整数 + 返回数组的实际长度 + 当内存被释放时,返回0 ##### 索引(索引值:整数): 数字 + 返回索引值处的数据 + 当越界时返回空 ##### 插入(索引值:整数, 数据:数字): 数字 + 将数据插入索引值处.会将原本的数据替换 + 当插入成功时,返回插入的数据,否则返回空 ##### 数据指针(): 指针 + 返回储存数据的内存起始指针 + 长度可以通过成员函数“长度”获取 ##### 清空(): 单元 + 将数据内存释放,但不会释放数组内存 + 使用该方法后,数据不再可访问,但是数组对象可以继续使用 + 返回数组对象 ##### 设置(数据:数字): 数字 + 将数组中的数据都设置为该数据 + 返回输入的数据 ##### 拼接(乙:单元): 单元 + 乙也是一个数组对象 + 将乙的数据拼接到本数组的末端,会为本数组申请一块新内存 + 返回本数组对象 ##### 打印(): 空 + 将数组中的所有数据按每五个一行并且保留小数点后8位的格式打印到屏幕上 ##### 复制(): 单元 + 将本对象的数据复制一份,会申请一块新内存并创建一个新对象 + 返回新创建的数组对象 ##### 切片(开始, 结束): 单元 + 将本数组切片,切片后的数据包括开始索引而不包括结束索引处数据 + 会创建一个新对象,返回新对象 ##### 调用C函数(函数指针:指针): 单元 + 接受一个函数指针,该指针将会被解释为double ( *cfunct)(double)类型并对数组进行遍历求值操作 示意代码如下 ```c for (uint64_t i = 0; i < array->length; i++) array->val[i] = cfunct(array->val[i]); ``` + 返回本对象 ##### 加(甲): 单元 + 甲的类型可以是数字,也可以同为数组对象 + 若甲为数字,则使用甲对数组中的每一个数据进行运算 + 若甲为数组对象,则按索引在两个数组之间运算,结果保存在本数组中。若两数组长度不相等,运算到较短数组的尽头即停止 + 返回本数组 ##### 减(甲): 单元 + 甲的类型可以是数字,也可以同为数组对象 + 若甲为数字,则使用甲对数组中的每一个数据进行运算 + 若甲为数组对象,则按索引在两个数组之间运算,结果保存在本数组中。若两数组长度不相等,运算到较短数组的尽头即停止 + 返回本数组 ##### 乘(甲): 单元 + 甲的类型可以是数字,也可以同为数组对象 + 若甲为数字,则使用甲对数组中的每一个数据进行运算 + 若甲为数组对象,则按索引在两个数组之间运算,结果保存在本数组中。若两数组长度不相等,运算到较短数组的尽头即停止 + 返回本数组 ##### 除(甲): 单元 + 甲的类型可以是数字,也可以同为数组对象 + 若甲为数字,则使用甲对数组中的每一个数据进行运算 + 若甲为数组对象,则按索引在两个数组之间运算,结果保存在本数组中。若两数组长度不相等,运算到较短数组的尽头即停止 + 返回本数组 ##### 取模(甲): 单元 + 甲的类型可以是数字,也可以同为数组对象 + 若甲为数字,则使用甲对数组中的每一个数据进行运算 + 若甲为数组对象,则按索引在两个数组之间运算,结果保存在本数组中。若两数组长度不相等,运算到较短数组的尽头即停止 + 返回本数组 ##### 平方(): 单元 + 对数组中所有数据进行平方运算 + 返回本数组 ##### 开平方(): 单元 + 对数组中所有数据进行开平方运算 + 返回本数组 ##### 立方(): 单元 + 对数组中所有数据进行立方运算 + 返回本数组 ##### 开立方(): 单元 + 对数组中所有数据进行开立方运算 + 返回本数组 #### 求和(): 数字 + 返回数组中所有数据的和 + 返回结果 #### 求平均数(): 数字 + 返回数组中所有数据的平均数 + 返回结果 #### 求方差(): 数字 + 返回数组中所有数据的方差 + 返回结果 #### 求标准差(): 数字 + 返回数组中所有数据的标准差 + 返回结果 #### 求最大值(): 数字 + 返回数组中所有数据的最大值 + 返回结果 #### 求最小值(): 数字 + 返回数组中所有数据的最小值 + 返回结果 #### 排序(): 单元 + 将数组中的数据按正序排列 + 返回本数组 #### 倒置(): 单元 + 将数组中的数据的顺序颠倒 + 返回本数组 #### 填充随机数(): 单元 + 将数组中的数据填充为随机数,随机数是区间为[0, 1)的小数 + 返回本数组 #### 填充随机整数(开始:整数, 结束:整数): 单元 + 将数组中的数据填充为随机数,随机数是区间为[开始, 结束)的整数 + 返回本数组 #### 填充随机实数(开始:整数, 结束:整数): 单元 + 将数组中的数据填充为随机数,随机数是区间为[开始, 结束)的实数 + 返回本数组 #### 随机选择(): 数字 + 随机返回数组中的一个数字 + 当数组没有任何数据时,返回空 ##### 转化为单元(): 单元 + 将数组中储存的数据放入一个新单元中 + 单元的索引从1开始 #### 重载的运算符 重载了+、-、*、/、^、&运算符,可以对数字和数组对象进行运算,详情参见对应的成员函数