为什么是3的6三次方是不是幂,而不是6的3三次方是不是幂?

有一次,Vita哥哥问了我一个非常刁钻的问题:

他能问出这个问题也是蛮出乎意料的,因为这个问题好像到初中数学才会讲到。我让他猜猜看,他说他觉得应该等于0,因为0无论和自己相乘多少次,结果应该都是0。

唔,我只能说,这个思路还算合理吧,0的N次方(N≠0)都等于0。但是,N的0次方(N≠0)却又都等于1呢!那么问题来了:

0的0次方,到底应该等于几?

Vita决定用计算器算一下,结果显示是等于1

这下有意思了吧!可是,这是为什么呢?

首先,我需要跟Vita解释一个数的0次方到底有什么意义

乘方的基本概念是连续乘法,比如2的3次方就是2x2x2,但是0次方是个啥呢?这个问题有点像说的,两个负数相乘的意义也没办法用乘法的概念去解释,而是需要用数学方法去推理,这里0次方也是一样。

如果我们把这两个数字相除:

因为分子有4个2,分母只有3个2,所以很显然,结果等于2。这时就可以让Vita找找规律了,2的4次方除以2的3次方,指数是怎样变化的呢?他发现得还挺快:

没错,只要把指数相减就可以了呗。到这里,0次方的意义也就呼之欲出了:

所以0次方的意义就是一个数的任意次方除以它自己,那么结果必然是1,这一结论对于任何数都成立,唯一的例外就是0,因为:

0的N次方(N≠0)都等于0,于是分子分母都是0,这就没法算了,因为除以0是没有意义的

如果我没记错的话,在初中数学课本里面,写的就是0的0次方没有意义,理由就是除数为0本身就没有意义。

本来说到这里就可以了,可是不行啊,因为计算器告诉他0的0次方等于1,这可咋办,真要命

其实,0的0次方等于1,这是为了计算方便规定出来的,比如学幂级数的时候都这么算,你说有没有道理呢?还是有的,但是跟娃讲就有点难度了,我只能跟他说,下面这些,你听听就好,不懂也没关系,哈哈

首先,我们可以把0的0次方改写成一个二项式的幂,这样:

然后,牛顿有一个叫二项式定理的东西,本质上跟杨辉三角形是一回事,它可以计算(x+y)的n次方的展开式:

额,看起来很晕?没关系,算0次方很简单的,因为求和就只有1项而已啦:

于是我们把0的0次方等于几变成了一个求组合数C(0,0)的问题,也就是说,一个袋子里面有0个球,现在要拿出其中的0个,有几种拿法?我们可以说,有1种拿法,那就是什么都不拿!所以0的0次方就等于1啦。。。

额,感觉怎么样,这个解释特别牵强是吧?我觉得也是,不过在排列组合中,从N个元素的集合取出0个元素,结果就是1,而且如果把组合数展开的话:

因为数学上已经规定了0!(0的阶乘)等于1,而且这样能够使这个算式有意义,于是组合数C(0,0)就等于1,于是0的0次方也就等于1

那么,为什么0的0次方不能等于0呢?Vita说的那个思路为什么不对呢?

从二项式定理来看,如果要让0的0次方等于0,那就意味着组合数C(0,0)等于0。而C(0,0)的展开式是0! / (0! x 0!)(看上面那个式子),如果要让这个式子的结果等于0,那么分子就要等于0,也就是0!要等于0,但这样一来,分母也会为0,于是整个式子就没意义了,所以C(0,0)不可能等于0,0的0次方也不可能等于0。

好了,总结时间到,0的0次方到底等于几?

  • 在初等数学中,0的0次方没有意义。或者说,0的0次方有没有意义对初等数学的计算没有什么影响,我们不care!

  • 在高等数学中,0的0次方如果没有意义,就会让很多很多很多很多计算都变得没有意义,这不太划算,那么我们就给它一个意义,而且和其他各种计算都不能矛盾,所以习惯上规定,0的0次方等于1。

}

本文主要阐述素数的概念,以通俗易懂的方式形象的描述素数和合数究竟代表什么意思,以及找到一种方法能够求得给定的数值范围内的素数。

5,如何求给定范围内的素数

6,一个Python求素数的例子

素数又称质数,英文名称是Prime number。

关于素数,也叫质数,从字面意思可以想象,这种数有着基本,本质,原子的意思,也就是说,这种数是不能够再拆分的,是一个基本的,独立的原子个体。素数的定义是指在除了1和此整数本身外,不能被其他自然数整除的数(1除外)。

可以想象,有一堆苹果,n个。假设苹果是不可切割的,现在需要你去给这堆苹果等份分给若干人。

有两种可能的结果,一种是可以再分成若干等份;一种是不能够再分了,苹果保存原样的一堆。

针对第二种情况(保持原样,不能再分),这堆苹果可以看成下面两种情形:

A,以单个苹果为一个个体,可以分成n个人,1(个)*n(人)

B,以n个苹果为一个整体,可以分给1个人,n(个)*1(人);

回到数的范畴,也就是说,如果一个整数n,只能被1或者自己整除,也就是说整数n只能表示为n=1*n,或者n=n*1的形式,即不能分成其他形式的等份了,那么这个数就叫做素数。

形象的理解为:一堆苹果,还是原来的那堆苹果,没有改变。

接着上面素数的概念,相反的情况,如果一堆苹果可以再分成n=a*b的形式(a,b不等于1或者n),那么就称n为合数。合数这个词,本身也代表了本身是可以由几个数合在一起的意思。

也以苹果为例,假设这堆苹果是15个,除了本身15这种状态之外,也可以分成3个一堆,共5堆(3*5)或者5个一堆,共3堆(5*3)这两种状态。即15不单单只能表示为15*1或者1*15,还可以表示成3*5或者5*3。也就是说,15除了被1和自己整除外,还可以被3或者5整除。

其实,如果从本质的概念来说,1也可以称为素数,这个从上面的例子就可以看出。

之所以现在不能将1看成素数,原因在于,如果将1看成素数了,那么会使得合数的概念不统一。

合数,从上面第3点的分析,可以知道,合数n可以表示为n=a*b的形式(这里的a,b不等于1或者n)。

既然n=a*b,那么a,b有两种状态,要么是素数,要么是合数。why

因为,数本身就只有这两种状态:要么只能被1或者本身整除,要么除此之外还能被其他数整除。因此,a,b这两个数可能是素数,可能是合数。

现在,我想对a,b做如下操作:如果是素数,则保持不变;如果是合数,那么继续分解为两个数的乘积的形式。

这样,一直持续操作下去,n=a*b,最终会以n=p1*p2*p3...的形式呈现(其中,p1,p2,p3...都是素数)。即一个合数,最终都会以素数的乘积表示。

现在回到本题的疑问,为什么1不是素数?

因为:1由于本身的特殊性(任意个1相乘还是1),导致一个合数n=p1*p2*p3,会有无数个表示式。即合数n,可以表示为:

所以,为了达到合数的表达式的唯一性,就人为的将1排除在了素数之外。

到这里,已经知道了素数和合数。那么如果想要求某个给定的数范围内的素数有哪些,应该怎么求。

比如,如何求10以内的素数?

根据常识,可以容易的想到10以内的素数有:2,3,5,7

如果不是10,而是100以内的素数呢?

如果不是100,而是1000以内的素数呢?

看来人为的靠自己的理解去数,会把自己数晕,不是解决问题的根本方法。

我认为,还是得从素数的概念入手:只能被1和自己本身整除的数。

也就是说,除了1和本身,不能被其他数整除的数。或者说,只要找到了一个能够被1和本身之外的数整除,那么就可以判定这个数就不是素数。

下面的目标,就是努力去找到这样的数。

先想一下不是素数的数是什么数?答案很明显,就是合数。合数有什么性质?合数可以表示为若干个素数的乘积。

既然是要求n以内的素数,那么肯定n以内的素数一定是在n以内;n以内的合数也是在n以内。n以内的合数可以表示为若干个素数的乘积,这里的素数也肯定是在n以内。

那么可以确定的知道n以内的某个合数必会至少能够被n以内的一个素数整除。如果能够找到这样的能够被n以内的合数整除的最大的素数K,那么就可以得到这样一组素数集(从2开始,最大值是K),将n以内的整数,依次与这组素数中的素数进行求余运算,根据求余结果是否是0,来判断整数是否是合数。即求余的结果不是0的整数就是素数了。

下面的问题是:已知整数范围n,如何求得能够被n以内的合数整除的最大的素数?

还是从合数的概念出发,一个合数必然可以表示为若干个素数的乘积。

至于合数分解成的素数的个数多少,这个就不确定了,可能是2个,也可能是3个,或者更多。

假设一个合数M可以分解为3个素数的乘积,M=X1*X2*X3(X1<=X2<=X3),那么对M进行开3次方根,得到的结果取整数为I,I必然介于M的素数的中间,即I>=X1且I<=X3。以整数I内的素数构成一个素数集合G,那么G中必然存在素数X1;合数M越大,那么得到的I就越大,因而构成的素数集合G中的最大的素数也越大。设想,要使得找到最大的素数,那么必然要找到最大的I。在合数M最大的情况下,开方根次数越小,则此时找到的I才是最大的。那么开方次数最小是多少呢?显然就是开2次方根时(虽然开1次方根时,I最大,但此时的M就不是合数,而是素数了)。

那么,现在知道了,如何求一个给定的整数范围内的素数方法了:

  1. 首先,对给定的整数,求平方根,得到I1(取整数);
  2. 然后,找到I1范围内的所有的素数,构成一个集合G
  3. 接着,依次将给定的整数范围内的整数,对集合G的素数,依次取模,若结果是0,那么说明这个整数是合数,则排除之;否则就是素数,保留;
  4. 以上收集的素数就是给定的整数范围内的所有的素数。

根据上面讨论的方法,现在用Python实现一个程序来求给定的整数范围内的素数。

Python实现的代码(求给定整数范围内的素数)

}

本文主要阐述素数的概念,以通俗易懂的方式形象的描述素数和合数究竟代表什么意思,以及找到一种方法能够求得给定的数值范围内的素数。

5,如何求给定范围内的素数

6,一个Python求素数的例子

素数又称质数,英文名称是Prime number。

关于素数,也叫质数,从字面意思可以想象,这种数有着基本,本质,原子的意思,也就是说,这种数是不能够再拆分的,是一个基本的,独立的原子个体。素数的定义是指在除了1和此整数本身外,不能被其他自然数整除的数(1除外)。

可以想象,有一堆苹果,n个。假设苹果是不可切割的,现在需要你去给这堆苹果等份分给若干人。

有两种可能的结果,一种是可以再分成若干等份;一种是不能够再分了,苹果保存原样的一堆。

针对第二种情况(保持原样,不能再分),这堆苹果可以看成下面两种情形:

A,以单个苹果为一个个体,可以分成n个人,1(个)*n(人)

B,以n个苹果为一个整体,可以分给1个人,n(个)*1(人);

回到数的范畴,也就是说,如果一个整数n,只能被1或者自己整除,也就是说整数n只能表示为n=1*n,或者n=n*1的形式,即不能分成其他形式的等份了,那么这个数就叫做素数。

形象的理解为:一堆苹果,还是原来的那堆苹果,没有改变。

接着上面素数的概念,相反的情况,如果一堆苹果可以再分成n=a*b的形式(a,b不等于1或者n),那么就称n为合数。合数这个词,本身也代表了本身是可以由几个数合在一起的意思。

也以苹果为例,假设这堆苹果是15个,除了本身15这种状态之外,也可以分成3个一堆,共5堆(3*5)或者5个一堆,共3堆(5*3)这两种状态。即15不单单只能表示为15*1或者1*15,还可以表示成3*5或者5*3。也就是说,15除了被1和自己整除外,还可以被3或者5整除。

其实,如果从本质的概念来说,1也可以称为素数,这个从上面的例子就可以看出。

之所以现在不能将1看成素数,原因在于,如果将1看成素数了,那么会使得合数的概念不统一。

合数,从上面第3点的分析,可以知道,合数n可以表示为n=a*b的形式(这里的a,b不等于1或者n)。

既然n=a*b,那么a,b有两种状态,要么是素数,要么是合数。why?

因为,数本身就只有这两种状态:要么只能被1或者本身整除,要么除此之外还能被其他数整除。因此,a,b这两个数可能是素数,可能是合数。

现在,我想对a,b做如下操作:如果是素数,则保持不变;如果是合数,那么继续分解为两个数的乘积的形式。

这样,一直持续操作下去,n=a*b,最终会以n=p1*p2*p3…的形式呈现(其中,p1,p2,p3…都是素数)。即一个合数,最终都会以素数的乘积表示。

现在回到本题的疑问,为什么1不是素数?

因为:1由于本身的特殊性(任意个1相乘还是1),导致一个合数n=p1*p2*p3,会有无数个表示式。即合数n,可以表示为:

所以,为了达到合数的表达式的唯一性,就人为的将1排除在了素数之外。

到这里,已经知道了素数和合数。那么如果想要求某个给定的数范围内的素数有哪些,应该怎么求。

比如,如何求10以内的素数?

根据常识,可以容易的想到10以内的素数有:2,3,5,7

如果不是10,而是100以内的素数呢?

如果不是100,而是1000以内的素数呢?

看来人为的靠自己的理解去数,会把自己数晕,不是解决问题的根本方法。

我认为,还是得从素数的概念入手:只能被1和自己本身整除的数。

也就是说,除了1和本身,不能被其他数整除的数。或者说,只要找到了一个能够被1和本身之外的数整除,那么就可以判定这个数就不是素数。

下面的目标,就是努力去找到这样的数。

先想一下不是素数的数是什么数?答案很明显,就是合数。合数有什么性质?合数可以表示为若干个素数的乘积。

既然是要求n以内的素数,那么肯定n以内的素数一定是在n以内;n以内的合数也是在n以内。n以内的合数可以表示为若干个素数的乘积,这里的素数也肯定是在n以内。

那么可以确定的知道n以内的某个合数必会至少能够被n以内的一个素数整除。如果能够找到这样的能够被n以内的合数整除的最大的素数K,那么就可以得到这样一组素数集(从2开始,最大值是K),将n以内的整数,依次与这组素数中的素数进行求余运算,根据求余结果是否是0,来判断整数是否是合数。即求余的结果不是0的整数就是素数了。

下面的问题是:已知整数范围n,如何求得能够被n以内的合数整除的最大的素数?

还是从合数的概念出发,一个合数必然可以表示为若干个素数的乘积。

至于合数分解成的素数的个数多少,这个就不确定了,可能是2个,也可能是3个,或者更多。

假设一个合数M可以分解为3个素数的乘积,M=X1*X2*X3(X1<=X2<=X3),那么对M进行开3次方根,得到的结果取整数为I,I必然介于M的素数的中间,即I>=X1且I<=X3。以整数I内的素数构成一个素数集合G,那么G中必然存在素数X1;合数M越大,那么得到的I就越大,因而构成的素数集合G中的最大的素数也越大。设想,要使得找到最大的素数,那么必然要找到最大的I。在合数M最大的情况下,开方根次数越小,则此时找到的I才是最大的。那么开方次数最小是多少呢?显然就是开2次方根时(虽然开1次方根时,I最大,但此时的M就不是合数,而是素数了)。

那么,现在知道了,如何求一个给定的整数范围内的素数方法了:

  1. 首先,对给定的整数,求平方根,得到I1(取整数);

  2. 然后,找到I1范围内的所有的素数,构成一个集合G

  3. 接着,依次将给定的整数范围内的整数,对集合G的素数,依次取模,若结果是0,那么说明这个整数是合数,则排除之;否则就是素数,保留;

  4. 以上收集的素数就是给定的整数范围内的所有的素数。

根据上面讨论的方法,现在用Python实现一个程序来求给定的整数范围内的素数。

Python实现的代码(求给定整数范围内的素数)

}

我要回帖

更多关于 三次方是不是幂 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信