8个版本
新发布 0.3.4 | 2024年8月18日 |
---|---|
0.3.3 | 2024年3月20日 |
0.2.1 | 2024年3月17日 |
0.1.0 | 2021年3月18日 |
#312 在 算法
134 每月下载量
9KB
79 行
list_math
此crate提供在Rust中对列表执行基本数学运算的函数。
安装
将以下行添加到您的Cargo.toml
文件中
[dependencies]
list_math = "0.3.4"
然后运行cargo build
安装crate。
使用方法
最大值函数
最大值函数用于找到isize
值列表中的最大元素。
use list_math::largest;
fn main() {
let numbers = vec![ 3 , 10 , - 1 , 5 ];
let biggest = largest(&numbers);
println!("The largest number is: {}", biggest);
}
此代码将打印
The largest number is: 10
最小值函数
最小值函数用于找到isize
值列表中的最小元素。
use list_math::smallest;
fn main() {
let numbers = vec![ 3 , 10 , - 1 , 5 ];
let biggest = smallest(&numbers);
println!("The smallest number is: {}", biggest);
}
此代码将打印
The smallest number is: -1
AverageList结构体
AverageList结构体可以帮助您跟踪i32
值的运行平均值。
use list_math::AverageList;
fn main() {
let mut avg_list = AverageList::new();
avg_list.add( 2 );
avg_list.add( 8 );
avg_list.add( 4 );
println!("Current average: {}", avg_list.average()); // Output: 4.
avg_list.remove(); // Removes last element (4)
println!("Average after removal: {}", avg_list.average()); // Output: 5.
}
此代码将打印
Current average: 4.
Average after removal: 5.
方法:● new:创建一个具有初始平均值为0的新AverageList。● add(value):向列表添加新值并更新平均值。● remove:从列表中移除最后添加的值并更新平均值(如果列表为空则返回None)。● average:返回当前平均值的f64。
函数:standard_deviation
描述
此函数计算浮点数列表的标准差。标准差是衡量数据从其平均值(平均数)偏离程度的一个指标。
参数
data:类型为&[f64]
的切片。这表示对浮点数切片的引用。
返回类型
Option<f64>
:该函数返回一个类型为f64的Option。Option类型可以持有Some(value),其中value是计算出的标准差,或者None(如果有错误,例如空数据列表)。
错误处理
该函数通过返回None处理空数据列表的情况。
该函数首先检查输入数据是否为空。如果不为空,它计算数据的平均值。然后,它遍历数据并计算每个元素相对于平均值的平方偏差。通过将平方偏差之和除以数据长度(data.len())减去1.0作为f64值,应用贝塞尔校正。这调整了从样本中估计总体均值时引入的偏差。最后,函数返回方差的平方根(平方偏差之和除以调整后的元素数量),即标准差。
示例用法
fn main() {
let numbers = vec![1.0, 3.0, 5.0, 7.0, 9.0];
let std_dev = standard_deviation(&numbers);
if let Some(std_dev) = std_dev {
println!("Standard deviation: {}", std_dev);
} else {
println!("Empty data list");
}
}
注意:此函数假定数据类型为f64浮点数。
贡献
我们欢迎对此crate做出贡献!有关如何参与的详细信息,请发邮件至 piscitello284@gmail.com。
问题
如果您遇到任何奇怪的问题,请在此 https://github.com/jameson-pi/list_math 提交问题。
许可协议
此crate采用MIT许可证。