精华内容
下载资源
问答
  • Java之Math类使用小结

    万次阅读 2016-09-19 23:58:20
    Java的Math类封装了很多与数学有关的属性和方法,大致如下: public class Main { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Math.E);//比任何其他值...

    Java的Math类封装了很多与数学有关的属性和方法,大致如下:

    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.println(Math.E);//比任何其他值都更接近 e(即自然对数的底数)的 double 值。
    		System.out.println(Math.PI);//比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
    		/*
    		 * 1.abs绝对值函数
    		 * 对各种数据类型求绝对值
    		 */
    		System.out.println(Math.abs(-10));//输出10
    		
    		/*
    		 * 2.三角函数与反三角函数
    		 * cos求余弦
    		 * sin求正弦
    		 * tan求正切
    		 * acos求反余弦
    		 * asin求反正弦
    		 * atan求反正切
    		 * atan2(y,x)求向量(x,y)与x轴夹角
    		 */
    		System.out.println(Math.acos(-1.0));//输出圆周率3.14...
    		System.out.println(Math.atan2(1.0, 1.0));//输出 π/4 的小数值
    		
    		/*
    		 * 3.开根号
    		 * cbrt(x)开立方
    		 * sqrt(x)开平方
    		 * hypot(x,y)求sqrt(x*x+y*y)在求两点间距离时有用sqrt((x1-x2)^2+(y1-y2)^2)
    		 */
    		System.out.println(Math.sqrt(4.0));//输出2.0
    		System.out.println(Math.cbrt(8.0));//输出2.0
    		System.out.println(Math.hypot(3.0, 4.0));//输出5.0
    		
    		/*
    		 * 4.最值
    		 * max(a,b)求最大值
    		 * min(a,b)求最小值
    		 */
    		System.out.println(Math.max(1, 2));//输出2
    		System.out.println(Math.min(1.9, -0.2));//输出-0.2
    		/*
    		 * 5.对数
    		 * log(a) a的自然对数(底数是e)
    		 * log10(a) a 的底数为10的对数
    		 * log1p(a) a+1的自然对数
    		 * 值得注意的是,前面其他函数都有重载,对数运算的函数只能传double型数据并返回double型数据
    		 */
    		System.out.println(Math.log(Math.E));//输出1.0
    		System.out.println(Math.log10(10));//输出1.0
    		System.out.println(Math.log1p(Math.E-1.0));//输出1.0
    		/*
    		 * 6.幂
    		 * exp(x) 返回e^x的值
    		 * expm1(x) 返回e^x - 1的值
    		 * pow(x,y) 返回x^y的值
    		 * 这里可用的数据类型也只有double型
    		 */
    		System.out.println(Math.exp(2));//输出E^2的值
    		System.out.println(Math.pow(2.0, 3.0));//输出8.0
    		
    		/*
    		 * 7.随机数
    		 * random()返回[0.0,1.0)之间的double值
    		 * 这个产生的随机数其实可以通过*x控制
    		 * 比如(int)(random*100)后可以得到[0,100)之间的整数
    		 */
    		System.out.println((int)(Math.random()*100));//输出[0,100)间的随机数
    		
    		/*
    		 * 8.转换
    		 * toDegrees(a) 弧度换角度
    		 * toRadians(a) 角度换弧度
    		 */
    		System.out.println(Math.toDegrees(Math.PI));//输出180.0
    		System.out.println(Math.toRadians(180));//输出 π 的值
    		/*
    		 * 9.其他
    		 */
    		
    		//copySign(x,y) 返回 用y的符号取代x的符号后新的x值
    		System.out.println(Math.copySign(-1.0, 2.0));//输出1.0
    		System.out.println(Math.copySign(2.0, -1.0));//输出-2.0
    		
    		//ceil(a) 返回大于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)
    		//可以通过强制转换将类型换成整型
    		System.out.println(Math.ceil(1.3443));//输出2.0
    		System.out.println((int)Math.ceil(1.3443));//输出2
    		
    		//floor(a) 返回小于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)
    		System.out.println(Math.floor(1.3443));//输出1.0
    		
    		//rint(a) 返回最接近a的整数的double值
    		System.out.println(Math.rint(1.2));//输出1.0
    		System.out.println(Math.rint(1.8));//输出2.0
    		
    		
    		//nextAfter(a,b) 返回(a,b)或(b,a)间与a相邻的浮点数 b可以比a小
    		System.out.println(Math.nextAfter(1.2, 2.7));//输出1.2000000000000002
    		System.out.println(Math.nextAfter(1.2, -1));//输出1.1999999999999997	
    		//所以这里的b是控制条件
    		
    		//nextUp(a) 返回比a大一点点的浮点数
    		System.out.println(Math.nextUp(1.2));//输出1.2000000000000002
    		
    		//nextDown(a) 返回比a小一点点的浮点数
    		System.out.println(Math.nextDown(1.2));//输出1.1999999999999997	
    	}
    }
    


    另外,当我尝试这样使用数学类的时候是错误的:

    	Math m = new Math();m.sqrt(4.0);

    为什么呢?

    查了下Math的源码,惊呆了!它的构造方法居然是这样写的:

        private Math() {}
    构造方法写成私有的额(⊙o⊙)…

    所以根本就不能创建对象啊!

    后来仔细想想其实这是很合理的。

    在面向对象中,类是抽象的而对象是具体的,数学本身也是抽象的而没法具体,所以这里只有一个数学类而不能实例化对象。

    展开全文
  • 推荐教材: 《Python数据分析、挖掘与可视化》(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年3月第6次印刷 图书封面: 京东详情链接: ...

    推荐教材:

    Python数据分析、挖掘与可视化》(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年3月第6次印刷

     

    图书封面:图片

     

    京东详情链接:图片

    主要内容:全书共264页。

    配套资源:教学大纲、PPT、教案、源码、测试数据、习题答案、66课690分钟视频、智慧树网慕课、课堂管理系统。

    《Python数据分析、挖掘与可视化》前3章书稿PDF免费阅读

    《Python数据分析、挖掘与可视化》教学大纲(参考)

    ===============

    (1)算术乘法,整数、实数、复数、高精度实数之间的乘法。

    图片

     

    (2)列表、元组、字符串这几种类型的对象与整数之间的乘法,表示对列表、元组或字符串进行重复,返回新列表、元组、字符串。

    需要特别注意的是,列表、元组、字符串与整数相乘,是对其中的元素的引用进行复用,如果元组或列表中的元素是列表、字典、集合这样的可变对象,得到的新对象与原对象之间会互相干扰。

    图片

     

    图片

     

    图片

     

    (3)numpy数组与数字num相乘,表示原数组中每个数字与num相乘,返回新数组,类似的规则也适用于加、减、真除、整除、幂运算等。

    图片

     

    (4)numpy数组与类似于数组的对象(array-like,包括Python列表、元组和numpy数组)相乘(同样适用于加、减、真除、整除和幂运算),需要满足广播的条件:两个数组的shape属性的元组右对齐之后要求两个元组在垂直方向的两个数字要么相等、要么其中一个为1、要么其中一个对应位置上没有数字(没有对应的维度),结果数组中该维度的大小与二者之中最大的一个相等。在(3)中介绍的数组与标量的四则运算实际上也属于广播。例如,(m,n)的数组可以和(1,)、(n,)、(1,n)、(m,1)、(m,n)的数组进行相乘。

    图片

     

    下面再演示几种可以广播的情况:

    图片

    图片

     

    (5)numpy数组与array-like对象的点积,通过numpy数组的dot()方法或numpy的dot()函数实现。

    数组与标量相乘,等价于乘法运算符或numpy.multiply()函数:

    图片

     

    如果两个数组是长度相同的一维数组,计算结果为两个向量的内积:

    图片

     

    如果两个数组是形状分别为(m,n)和(n,)的二维数组和一维数组,计算结果为二维数组每行分别与一维数组的内积组成的数组:

    图片

     

    如果一个任意多维数组和一个一维数组(要求大小与多维数组最后一个维度相等)相乘,多维数组的最后一个维度分别与一维数组计算内积,计算内积的维度消失:

    图片

    图片

     

    如果两个数组是形状分别为(m,k)和(k,n)的二维数组,表示两个矩阵相乘,结果为(m,n)的二维数组,此时一般使用等价的矩阵乘法运算符@或者numpy的函数matmul():

    图片

     

    如果一个n维数组和一个m(>=2)维数组进行dot()运算,第一个数组的最后一个维度与第二个数组的倒数第二个维度计算内积。

    图片

     

    在这种情况下,第一个数组的最后一个维度和第二个数组的倒数第二个维度将会消失,如下图所示,划红线的维度消失:

    图片

     

    6)numpy矩阵与矩阵相乘时,运算符*和@功能相同,都表示线性代数里的矩阵乘法。

    图片

     

    7)连乘,计算所有数值相乘的结果,可以使用标准库函数math.prod(),Python 3.8之后支持。

    图片

     

    扩展库函数numpy.prod()提供了更强大的功能。

    图片

     

    8)累乘,每个数字与前面的所有数字相乘,可以使用扩展库函数numpy.cumprod()

     

    图片

     

    温馨提示:

    关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(累计印刷超过120次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1000篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过500节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习1363道客观题和260道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。

    展开全文
  • Java实现乘法的方法——(三种)

    万次阅读 2019-09-09 10:54:05
    最近在看一篇java的笔试题,里面要求用效率最高的方法求2*8,然后第一反应就是直接使用Java自带的乘法,然后发现其实还可以使用位运算符 “<<” 进行计算(如移了N位则乘了2的N次方)。所以我从中总结了三种...

    最近在看一篇java的笔试题,里面要求用效率最高的方法求2*8,然后第一反应就是直接使用Java自带的乘法,然后发现其实还可以使用位运算符 “<<” 进行计算(如移了N位则乘了2的N次方)。所以我从中总结了三种方法来实现乘法的计算。希望对大家有帮助

    方法1(直接相乘):

    该方法最直接:

    // An highlighted block
    	int d = 2 * 8;
    		System.out.println(d);  //d = 16
    

    方法2(for循环相加):

    此方法利用了乘法的原理,即使用多次使用加法进行叠加实完成的乘法效果:

    // An highlighted block
    	int d = 0;
    
    		for (int i = 0; i < 2; i++) {
    			d += 8;
    		}
    		System.out.println(d);  //d = 16
    

    方法3(使用位运算符):

    此方法使用位运算符进行计算,直接操作机器二进制数,效率最高

    // An highlighted block
    		int d = 2<<3;
    		System.out.println(d);  //d = 16
    

    出于好奇,我又在此方法基础上造了一个使用位运算+java自带乘法计算的方法来实现乘法(目前不知道会不会比java自带的快0 - 0)代码如下:

    // An highlighted block
    // 乘法:使用到位运算
    	public static void mul(int a, int b) {
    		int i = 1;
    		//调换位置
    		if (a > b) {
    			int z = a;
    			a = b;
    			b = z;
    		}
    		while ((b - (2 << i)) > 0) {
    			i++;
    		}
    		int res = (a << i) + a * (b - (2 << (i - 1)));
    
    		System.out.println(res);
    	}
    
    展开全文
  • math.js 的加减乘除方法

    千次阅读 2018-06-08 16:37:00
    .add(math.bignumber(extCostTotal)).multiply(math.bignumber(adultNum)) .add(math.bignumber(total)).done();   转载于:https://my.oschina.net/u/3574106/blog/1826946

    math.divide,add,subtract,multiply

    msth.js 计算浮点数

      var total=math.chain(math.bignumber(adultUnitPrice))
      .add(math.bignumber(extCostTotal)).multiply(math.bignumber(adultNum))
      .add(math.bignumber(total)).done();

     

    转载于:https://my.oschina.net/u/3574106/blog/1826946

    展开全文
  • Python3 math模块以及运算优先级

    千次阅读 2018-03-06 21:23:23
    # 在数学之中, 除了加减乘除四则运算之外, 还有其它跟多的运算, 比如乘方, 开方, 对数运算等等, 要实现这些运算, 需要用到Python中的一个模块: math# math 模块是Python标准库中的, 所以可以直接使用# import math# ...
  • SAGE(SAGEMATH)密码学基本使用方法

    千次阅读 2020-05-10 20:08:36
    文章目录求逆元扩展欧几里得算法孙子定理(中国剩余定理)求离散对数欧拉函数输出表达式近似值素数分布(Pi(x))创建整数域中的椭圆曲线 求逆元 inv=inverse_mod(30,1373) print(30*inv%1373) #1 ...
  • 用JavaScript实现简单的乘法计算

    万次阅读 2017-11-26 23:57:42
    以下是简单的JavaScript代码:function multiplication() { var a = document.getElementById('input1').value; var b = document.getElementById('input2').value; var c = a*b;
  • 下面来介绍将小数值舍入为整数的几个方法:Math.ceil()、Math.floor()和Math.round()。 这三个方法分别遵循下列舍入规则: Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数; Math.floor()执行向...
  • 目录 网页的三部分组成: Java和JavaScript的关系: JavaScript的三种使用方式: Js的5种输出方式: Js的语法初始: js中值的类型: JS中的运算符: ...打印9*9乘法表 JS中的函数(相当...
  • matlab实现矩阵乘法代码 琼布卢特·玛特 这是我自己的数学库。 它具有针对稀疏/密集向量和矩阵的一些日常数学运算。 特征 基本的线性代数基元和运算 稀疏(有序,无序,位,命名,一维和键控)和密集向量 稀疏和密集...
  • 前言 在力扣279中,使用动态规划时,需要找到不...从直观上来看第二种方法的时间复杂度更低,但经过本地ide测试开方和乘法的时间复杂度发现并非如此。 测试 public static void main(String[] args) { int tmp1 = 0;
  • sagemath 数值计算教程

    2016-09-10 07:16:19
    sagemath 数值计算教程
  • Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...
  • JAVA数学库commons-math3

    2015-11-03 23:56:45
    JAVA数学库commons-math3
  • AngularJS 简单加减乘除

    千次阅读 2018-10-16 09:07:30
    第一种方法: &lt;div ng-app=""&gt; &lt;div&gt; &lt;!--文本--&gt; &lt;input type="number" ng-model="A" placeholder="... {{a}}
  • Math】矩阵和向量各种乘法说明

    千次阅读 2020-10-16 20:41:37
    本文来自:... 1. 矩阵乘法: 矩阵乘积(matrix product,也叫matmul product): Hadamard product(又称element-wise product):用或者表示, 对应元素相乘,二者维数必须相同,举例: ...
  • 大整数乘法 题目分析 两个乘数都是大整数,相比于大整数乘int要适用的更广泛一些 乘法需要注意进位 相乘之后的结果要注意前导0,就是字符数组前面无意义的0,需要去掉 这道题说40位以内是假的。。。开数组的...
  • 本篇文章是对js中Math之random,round,ceil,floor的用法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
  • 主要为大家详细介绍了Java常用数字工具类,大数乘法、加法、减法运算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 【Java】大整数乘法

    2019-04-26 18:38:09
    大整数乘法的思想:减少乘法次数,从而提高速度 测试的数字必须是偶数个长度 import java.util.Scanner; public class BigInteger大整数乘法 { public static void main(String[] args) { Scanner sc=new ...
  • else:print("不是闰年") 二:利用嵌套循环打印九九乘法表 九九乘法表: for i in range(1,10): s = "" for j in range(1,10): s += str.format("%d * %d = %02d " %(i, j, i*j)) print(s) 下三角: for i in range(1...
  • C语言乘法运算

    千次阅读 2020-11-20 22:32:06
    #include <stdio.h>//头文件 #include <Windows.h> int main()//主函数 { int a = 4;//定义整型变量a int b = 5;//定义真整型变量b int c;//定义整型变量c c = a *b;//a乘b赋值给c ......
  • 慕课 哈工大 C语言 程序设计 第二周

    千次阅读 2020-03-02 11:27:12
    乘法运算的输出格式:“a*b=%d\n” 除法运算的输出格式:“a/b=%.2f\n” 求余运算的输出格式:“a%%b=%d\n” 为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 时间限制:...
  • Java中矩阵运算(math3的使用)

    万次阅读 2017-01-18 20:12:03
    math3简介 math3中的矩阵操作 演示结果本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流。 未经本人允许禁止转载。下面是本文博客的另一个地址,该网站是师兄弄得一个...
  • Math Camera FX计算器991解决= 拍照 calculator照片计算器991通过拍照来做数学作业!照片计算器991是一款实用且易于使用的计算器专业版,带有免费的基本计算器和科学计算器。该照片计算器570还是方程式求解器,微...
  • 12345679011110987654321
  • POJ 2389 Bull Math(大数乘法,还是Java好)

    千次阅读 2016-05-14 00:44:34
    Bull Math Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14252   Accepted: 7350 Description Bulls are so much better at math than the cows. They can ...
  • js 加减乘除精度问题

    千次阅读 2018-08-14 14:50:05
    乘法精度修改后如下: function ride(...val) { const strVal = val[0].toString() const strValTwo = val[1].toString() const index = strVal.indexOf('.') const indexTwo = strValTwo.indexOf('.') const...
  • npm install mathjs --save 在main.js中引入 let math = require('mathjs') Vue.prototype.$math = math 创建工具类并定义方法 创建utils.js let $math = require('mathjs'); export const math = { add() { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,486
精华内容 13,794
关键字:

math乘法