素素虾扯蛋

100w以内的素数有7w8千多个,总之,素素是够用的了!接下来是一个汇总算法。

初等数论:任何一个大于1的非素数整数(即合数)都可以唯一分解成若干个素数的乘积。
公式为 合数n=P^{^{k}}Q^{^{j}}....R^{l},其中P,Q...R为素数,且这个表示是唯一的。百度上有素数的分解算法,这个我们后面再提,我要说的是一个实际的应用。请看图:

素素虾扯蛋_第1张图片 素素

我们看到局座有多少兵,有多少种类的兵各有多少个,只需要使用一个数字,35280,就可以表示了,而且,新兵蛋子的加入,也是很方便的,一个计算就可以了,关键随着局座的兵越来越多,局座的数字会增长的有多快的问题。 啊,局座,来100个治疗冰2^{100}=1267650600228229401496703205376,局座32位了。局座,来1000个治疗冰,额局座301位数了。这样,局座您也太大了。

我是觉着,这个算法的可行性不高了,301位数的除法不知道对计算机来说算不算不堪重负!如果用C语言重写或者专门优化下算法,我觉着可行性也不是没有的啊,所以博主吧想法朔了出来,大家共同探讨探讨,好了拜拜!

俺又来了!我在想,什么样的乘法能使得数字不会变得超大呢,当然是列个算式,不计算出来。为了便于组合与迭代。我们给局座加个括号。于是局座变成了这个样子:

局座的减肥之路:((((2*2)*3)*(2*3))*((5*7)*(2*7))))*5

这样编码方式到底有什么好处呢?

  1. 我们从聚合的方阵变成了组合的圆阵,这就像是一个雪球,可以越滚越大的雪球。
  2. 我们坚持瘦身与减肥,同时每一个括号当中的数,都是一个执行环境,也可以依照括号分割,进行并行计算,可谓可分可合。
  3. 切割后可以分开保存,比如1号,2号....。
  4. 切割后的每一个冰都是素素,是个有信仰的冰团,可以进行局部计算。
  5. 还没想好.....

 

 

你可能感兴趣的:(虾扯蛋)