手机

密码

安全问题

注册 忘记密码?

详情请戳:https://www.udongman.cn/index.php?m=product&c=csp ​

有效期:2022/03/03 - 2022/08/30
Rust实现斐波列切--依赖安装及调用
来源: | 作者:wUw | 发布时间: 369天前 | 290 次浏览 | 分享到:

一、问题:

基于Python思维,实现斐波列切暂时还不觉得差异很大,但问题是,整数溢出,u128也不够用。

二、解决方式:

使用Rust的依赖num,或者理解为Python的轮子。

三、安装num:

Rust的安装方式非常简单,只要是https://crates.io/中有的,就可以直接安装,因为我使用的pycharm来作写Rust,所以在树下直接找到Cargo.toml打开,输入:

[dependencies] num = "0.3"

即可,其中num是依赖名称,0.3是版本号。

四、引用依赖:

use num::bigint::BigUint;//调用num中的bigint use num::traits::{One};

还有一种,先引用num再引用类的,暂时在Rust中不太确定是否更符合规范,本次实现未采取这种方式。

extern crate num;

五、一些尝试:

use num::bigint::BigUint; //调用num中的bigint use num::traits::{One};  fn main() {     let rust: &str = "Rust";//创建一个字符串类型的不可变变量,暂时搞不太懂String和&str的根本区别     println!("Hello, {}!", rust);//打印“Hello, {}!"{}内为变量rust     let num = 1i32;//创建一个整数变量,为32位带符号整数     println!("number is {}", num);//同上,打印数字为num     let mut num1: BigUint = One::one();//创建一个可变变量--let mut,使用BigUint     //标准库中整数最大支持u128或者i128     let mut num2: BigUint = One::one();     /*let mut num3=num2 as u128;//转变类型,例如num2 = 1u32的时候     println!("{},{}",num1,num2);     assert_eq!(         num3, num2,         "{},{}", num3, num2     );*/     for _ in 0..199 {//for循环200次         println!("{},{}", num1, num2);         num1 = num1 + &num2;//运行改变num1每次加num2         num2 = num2 + &num1;//运行改变num2每次加num1     } }


  • 标题
  • 内容
  • 验证码
提交
标题内容提交时间
没有记录!