当前位置: 网站首页>小程序开发>网站优化

衡水网站制作要多少钱【域名企业邮箱服务器注册申请办理】衡水网络优化公司哪家好、衡水软件开发外包价格、衡水高端企业网站页面制作设计专业公司、衡水微信公众号小程序购物支付搭建制作公司

发表日期: 2021-04-13 10:07:01 浏览次数:152

衡水网站制作要多少钱【域名企业邮箱服务器注册申请办理】衡水网络优化公司哪家好、衡水软件开发外包价格、衡水高端企业网站页面制作设计专业公司、衡水微信公众号小程序购物支付搭建制作公司


衡水,河北省地级市,位于河北省东南部,介于东经115°10′-116°34′,北纬37°03′-38°23′之间,东部与沧州市和山东省德州市毗邻,西部与石家庄市接壤,南部与邢台市相连,北部同保定市和沧州市交界,总面积8815平方公里。 [1-2]  衡水市地处河北冲积平原,地势自西南向东北缓慢倾斜,海拔高度12米~30米。属大陆季风气候区,为温暖半干旱型,是京津重要的农副产品加工供应基地。衡水属于环渤海经济圈和首都经济圈的“1+9+3”计划京南区,为环渤海区域合作市长联席会议成员市,被费孝通称为“黄金十字交叉处”。 [2-5] 

衡水所辖冀州为九州之首。河北省称冀,也缘于此,涌现出了董仲舒、孔颖达、高适、孙犁等知名人物。截至2016年,衡水有国家级非物质文化遗产保护项目6项,省级非遗保护项目33项,市级非遗保护项目55项,境内有衡水湖、武强年画博物馆、冀州城等旅游景点。 [2]  [6-8] 

截至2019年末,衡水市辖2个市辖区,1个县级市,8个县,户籍人口457.8万人,常住人口448.6万人;实现生产总值1504.9亿元,人均生产总值33599元。 2019年10月23日,被确定为“第三批城市黑臭水体治理示范城市”。

示例 4.10

考虑一下n=4且m=2的情况。我们在图4-8第5行的第3个条目处找到了\begin{pmatrix}4\\2\end{pmatrix} 的值。该条目为6,而很容易验证\begin{pmatrix}4\\2\end{pmatrix}=4!/(2!\times2!)=24/(2\times2)=6

通过公式(4.4)或是上述递归这两种方法计算\begin{pmatrix}n\\m\end{pmatrix},计算出的自然是相同的值。可以通过诉诸物理推理(physical reasoning)来证实这一点。两种方法计算的都是从n 项中无序选择m 项的方法数,所以一定会得出相同的值。不过,还可以通过对n 的归纳证明这两种方式的等价性。在这里将该证明过程留作本节的习题。

4.5.3 计算\begin{pmatrix}n\\m\end{pmatrix}的算法的运行时间

正如在示例4.9中所见,当我们使用公式(4.4)计算\begin{pmatrix}n\\m\end{pmatrix}时,可以约去分母中的(n-m)!和分子中n!的后n-m个因数,将\begin{pmatrix}n\\m\end{pmatrix}表示为

\begin{pmatrix}n\\m\end{pmatrix}=\frac{n\times(n-1)\times\cdots\times(n-m+1)}{m\times(m-1)\times\cdots\times1}      (4.5)

如果m 比n 小,那么使用上述公式进行计算要比用公式(4.4)计算更快。大体上讲,图4-9中的C语言代码段就是用来完成这一工作的。

第(1)行将c 初始化为1,c 就成为了结果——\begin{pmatrix}n\\m\end{pmatrix}。第(2)行和第(3)行会给c 乘上从n-m+1到n的各个整数。然后,第(4)行和第(5)行会依次从c 除去从2到m 的各个整数。因此,图4-9就实现了(4.5)式中的公式。

(1)      c = 1;(2)      for (i = n; i > n-m; i--)(3)          c *= i;(4)      for (i = 2; i <= m; i++)(5)          c /= i;复制代码

图 4-9 计算\begin{pmatrix}n\\m\end{pmatrix}的代码

要计算图4-9的运行时间,只要注意到第(2)~(3)行及第(4)~(5)行这两个循环,每个循环都会迭代m次,而且循环体的运行时间都是O(1)。因此,运行时间是O(m)。

m接近nn-m很小的情况下,可以交换mn-m的角色。也就是说,可以约去n!和m!的因数,得到n(n-1)…(m+1),并将其除以(n-m)!。该方法给出了(4.5)所示公式的另一种形式,即

\begin{pmatrix}n\\m\end{pmatrix}=\frac{n\times(n-1)\times\cdots\times(m+1)}{(n-m)\times(n-m-1)\times\cdots\times1}      (4.6)

同样,存在与图4-9类似的代码段来实现公式(4.6),而且所花的时间为O(n-m)。因为要定义\begin{pmatrix}n\\m\end{pmatrix}就一定有n-mm不大于n,所以不管是哪种方式,O(n)都是运行时间的边界。此外,在m接近0或者接近n 时,两种方法中更优方法的运行时间都要大大小于O(n)。

不过,图4-9有个重大缺陷。它先要计算若干整数的积,然后再将其除以相同数量的整数。因为普通的计算机运算只能处理有限大小的整数(通常,一个整数最大可以达到约20亿),所以图4-9第(3)行计算中间结果的过程可能有溢出整数大小限制的风险。即使是在\begin{pmatrix}n\\m\end{pmatrix}的值足够小,可以在某计算机中表示出来的情况下,也还是可能出现这种情况。

更好的方式是让乘法和除法交替进行。首先乘上n,然后除以m。乘上n-1,再除以m-1,以此类推。这种方法的问题在于,我们没理由相信每一阶段的计算结果都是整数。例如,在示例4.9中,首先要乘上52并除以5,这个结果就已然不是整数了。因此,在进行任何计算前都需要转换为浮点数。在这里将这一修改留作本节的习题。

\begin{pmatrix}n\\m\end{pmatrix}一定得出整数的公式

要看出为什么(4.4)、(4.5)和(4.6)这几个式子中多个因数的商一定是整数可能不容易。唯一的简单论证就是诉诸物理推理。这些公式都是计算从n个事物中选取m个的方法数,而这个数字一定是某个整数。

不借助这些公式的物理意义,而从整数的属性来论证这一事实,要难上很多。其实可以通过仔细分析分子和分母中各质数因子数来证明这一事实。拿示例4.9中的表达式当例子。其中分母中有5这个因数,而分子中有5个因数,由于这些因数是连续的,可知其中必有一个能被5整除,而它正好是中间的那个因数——50。因此,分母中的5肯定会被约去。

现在来考虑计算\begin{pmatrix}n\\m\end{pmatrix}的递归算法。可以通过图4-10所示的简单递归函数来实现这一算法。

图4-10中的函数效率不高,因为它调用choose的次数会呈指数级增长。原因就在于当使用n作为首个参数调用该函数时,往往会在第(6)行用n-1作为首个参数进行两次递归调用。因此,可以预见,当n 增加1时,调用的次数就会翻倍。而且递归调用的确切次数是很难计算的。原因在于第(4)行和第(5)行的依据情况不仅适用于n=1的情况,而对更大的n,会提供值为0或n 的m

下面要证明一个简单但稍显悲观的上界。设T (n)是当首个参数为n 时图4-10所示程序段的运行时间。可以直接证明T(n)是O(2n)。假设a是第(1)行到第(5)行,加上第(6)行涉及调用与返回的部分(不含递归调用本身所花的时间)的总运行时间。然后就可以通过对n 的归纳证明下列命题。

         /* 对0 <= m <= n,计算从n 个元素中选择m 个的方法数 */
         int choose(int n, int m)
         {
             int n, m;(1)          if (m < 0 || m > n) {/* 错误的条件 */(2)              printf("invalid input\n");(3)              return 0;
             }(4)          else if (m == 0 || m == n) /* 依据情况 */(5)              return 1;
             else /* 归纳 */(6)              return (choose(n-1, m-1) + choose(n-1, m));
         }复制代码

图 4-10 计算\begin{pmatrix}n\\m\end{pmatrix}的递归函数

命题 S(n)。如果用第一个参数n以及在0和n之间的第二个参数m调用choose,那么该调用的运行时间T(n)至多为a(2n-1)。

依据。 n=1。那么一定有m=0或m=1=n。因此,依据情况适用于第(4)行和第(5)行,而且没有进行递归调用。第(1)行到第(5)行的时间都包含在a中,因为S(1)是说T(1)至多为a(21-1)=a

归纳。假设S(n)成立,也就是有T(n)≤a(2n+1)。要证明S(n+1)成立,假设要以n+1为首个参数调用choose。那么图4-10所示程序段花的时间就是a加上第(6)行两次递归调用的时间。根据归纳假设,每次调用花费的时间至多为(2n-1)。因此,消耗的总时间最多是:

a+2a(2n-1)=a(1+2n+1-2)=a(2n+1-1)

这一计算过程就证明了S(n+1)成立,并证明了归纳步骤。

因此证明了T(n)≤a(2n-1)。舍去常数因子及低阶项,就可以得出T(n)是O(2n)的结论。

奇怪的是,尽管在第3章的分析中,很容易就证明了运行时间的平滑紧上界,但T(n)上的边界O(2n)虽平滑却不紧凑。合适的平滑紧上界要稍小一些——O(2^n\sqrt{n})。要证明这一事实相当困难,不过在这里要留一个更为简单的事实作为习题来证明,就是图4-10所示程序段的运行时间与它返回的值\begin{pmatrix}n\\m\end{pmatrix}成比例。要看到图4-10中的递归算法,效率要比图4-9中的算法低得多。这是一个递归严重不靠谱的例子。

4.5.4 \begin{pmatrix}n\\m\end{pmatrix}函数的图像

对某个固定的值n 而言,m 的函数\begin{pmatrix}n\\m\end{pmatrix}有着不少有意思的属性。对于值比较大的n 来说,如图4-11所示,其图像为一条钟形的曲线。我们很容易看出函数图像是关于中点n/2所在轴线对称的,运用声明\begin{pmatrix}n\\m\end{pmatrix}=\begin{pmatrix}n\\n-m\end{pmatrix}的公式(4.4)很容易证实这一点。

最大高度处于中心位置,也就是\begin{pmatrix}n\\n/2\end{pmatrix},大约是2^n\sqrt{\pi n/2}。例如,若n=10,这一公式可以得出258.37,而\begin{pmatrix}10\\5\end{pmatrix}=252

该曲线的“厚部”是中点两边各约\sqrt{n}的范围。例如,如果n=10 000,那么对处在4900和5100之间的m\begin{pmatrix}10000\\m\end{pmatrix}就接近最大值。而对这个范围之外的m来说,\begin{pmatrix}10000\\m\end{pmatrix}的值会下降得特别迅速。

{%}

图 4-11 n 为固定值的\begin{pmatrix}n\\m\end{pmatrix}函数

4.5.5 二项式系数

函数\begin{pmatrix}n\\m\end{pmatrix}除了可以用来计数外,还能提供二项式系数。在展开二项式的乘方(比如(x+y)n)时,就会看到这些数字。

在展开(x+y)n时,会得到2n个项,其中每一项都是xmyn-m这样的形式(m是0到n之间的某个整数)。也就是说,对每个因式x+y,都可能从x 和y 中任选其一作为某个特定项的因子。展开式中xmyn-m的系数是由mx 和其余n+my 组成的项的数量。


衡水网站制作要多少钱域名企业邮箱服务器注册申请办理衡水网络优化公司哪家好、衡水软件开发外包价格、衡水高端企业网站页面制作设计专业公司、衡水微信公众号小程序购物支付搭建制作公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878