dart系列之:数学什么的就是小意思,看我dart如何玩转它

简介: dart系列之:数学什么的就是小意思,看我dart如何玩转它

目录



简介


dart也可以进行数学运算,dart为数学爱好者专门创建了一个dart:math包来处理数学方面的各种操作。dart:math包提供了正弦,余弦,最大值,最小值和随机数等操作。


一起来看看dart:math包都能做什么吧。


dart:math包的构成


如果你去查看dart:math的源代码,你会发现,dart:math包其实很简单,它里面只有4个文件。分别是:


math.dart,random.dart,point.dart和rectangle.dart。


后面两个文件,主要跟二维坐标有关,这里不详细说明。


我们常用到的就是前面两个文件,math和random。


math


math中定义了我们在数学运算中常用到的一些常量,如:


const double e = 2.718281828459045;
const double ln10 = 2.302585092994046;
const double ln2 = 0.6931471805599453;
const double log2e = 1.4426950408889634;
const double log10e = 0.4342944819032518;
const double pi = 3.1415926535897932;
const double sqrt1_2 = 0.7071067811865476;
const double sqrt2 = 1.4142135623730951;


计算最大值和最小值:


assert(max(18, 20) == 20);
assert(min(18, 20) == 18);


使用三角函数:


assert(cos(pi) == -1.0);
var degrees = 30;
var radians = degrees * (pi / 180);
var sinOf30degrees = sin(radians);
assert((sinOf30degrees - 0.5).abs() < 0.01);


Random


dart中的random包提供了一些比较有用的生成随机数的方法,先看下Random类的定义:


abstract class Random {
  external factory Random([int? seed]);
  external factory Random.secure();
  int nextInt(int max);
  double nextDouble();
  bool nextBool();
}


我们可以使用Random中提供的nextInt,nextDouble和nextBool来生成对应的随机数:


var random = Random();
random.nextDouble(); 
random.nextInt(10); 
random.nextBool();


默认情况下,Random生成的是伪随机数,要想生成更加安全的随机数,比如密码学意义上的随机数,Random还有一个更加安全的实现Random.secure()。


总结



以上就是dart中math库的介绍。

相关文章
Flutter Getx 路由 until 方法帮助你跳转指定路由
不少同学都会问我,这样一个场景,当我点击商品列表,进入商品页,点击购买,支付成功后,想返回商品页,或者我的中心的订单列表。怎么做,这中间跨度了 n 个路由。 我不只一次的推荐 GetX 的 until 方法,和 offNamedUntil 方法。 我写了个 demo 今天我们就一起来看下这两个方法如何使用。
2026 0
Flutter Getx 路由 until 方法帮助你跳转指定路由
|
域名解析 网络协议 安全
Github 一键加速 ,支持 Win Mac !!!
Github 一键加速 ,支持 Win Mac !!!
2284 1
Github 一键加速 ,支持 Win Mac !!!
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能的边界拓展:从理论到实践的飞跃####
本文探讨了人工智能(AI)技术的最新进展,特别是深度学习领域的创新如何推动AI从理论研究走向广泛应用。通过分析几个关键领域的实际应用案例,如医疗健康、自动驾驶和自然语言处理,本文揭示了AI技术的潜力及其对社会和经济的深远影响。文章还讨论了当前面临的挑战,包括伦理问题和技术瓶颈,并展望了未来的发展趋势。 ####
|
10月前
|
传感器 数据采集 人工智能
数字孪生与智慧城市:构建未来城市模型
【10月更文挑战第31天】在信息化和智能化高速发展的今天,数字孪生技术正逐步成为推动智慧城市建设的核心力量。本文将深入探讨数字孪生技术在城市规划、管理、交通和环保等方面的应用,以及它如何助力构建未来城市的理想模型。数字孪生通过实时数据同步和双向交互,实现城市运行状态的全面监控、预测和优化,推动城市向更加智慧、绿色和可持续的方向发展。
|
JavaScript Java 测试技术
基于微信小程序的在线学习系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的在线学习系统+springboot+vue.js附带文章和源代码设计说明文档ppt
217 0
|
架构师 云计算
阿里云的认证有几个等级?适合什么人考?
为什么在这样的大环境下,还有一部分人能挣钱,因为此消彼长,实体经济收到冲击的情况下,虚拟经济必然要大幅增长,这样一来市场就需要大量的人才来满足需求。
阿里云的认证有几个等级?适合什么人考?
|
人工智能 算法 IDE
GitHub 正式上线 Copilot AI 编程工具:每月收费 10 美元,学生免费
GitHub 正式上线 Copilot AI 编程工具:每月收费 10 美元,学生免费
1728 0
GitHub 正式上线 Copilot AI 编程工具:每月收费 10 美元,学生免费
|
SQL 存储 关系型数据库
面试突击55:delete、drop、truncate有什么区别?
面试突击55:delete、drop、truncate有什么区别?
363 0
|
机器学习/深度学习 存储 人工智能
赋能阿里多业务场景,达摩院自研向量检索引擎 Proxima 公开
随着 AI 技术的广泛应用以及数据规模的不断增长,向量检索作为深度学习中的主流方法,其具备的泛检索和多模态搜索的能力也将进一步得到发挥。物理世界的实体和特征,通过向量化技术进行表征和组合,映射到数字世界,借助计算机进行计算和检索,挖掘潜在逻辑和隐式关系,更智能的服务于人类社会。 未来,向量检索除了要面对数据规模的不断增长,算法上仍需要解决混合空间检索、稀疏空间检索、超高维、泛一致性等问题。工程上,面对的场景将越来越广泛,也越来越复杂,如何形成强有力的系统化体系,贯穿场景和应用,将是向量检索下一步发展的重点。
3072 0
赋能阿里多业务场景,达摩院自研向量检索引擎 Proxima 公开
|
SQL 前端开发 Java
面试官:SSH 和 SSM 框架有什么区别?怎么选?
面试官:SSH 和 SSM 框架有什么区别?怎么选?
547 0