地心文明·暮光之城
反离散化——暮光之城
在计算机程序中,存在一种技巧,可以使算法的时空效率加快。它便是离散化。离散化的定义是:把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗来说,离散化就是是在不改变数据相对大小的条件下,对数据进行相应的缩小。
在这里贴一个基础程序,进而方便理解。
# include < cstdio >
# include < iostream >
# include < cmath >
# include < algorithm >
# include < cctype >
# include < cstring >
using namespace std;
int main ( )
{
int a , j = 0 , m ;
cin >> a ;
int b [ a ] , i = 0;
for ( i = 0 ; i < a ; i++ )
{
cin >> b[i] ;
}
for ( i=0 ; i < a; i++ )
{
m = 0;
for ( j = 0 ; j < a ; j++ )
{
if ( b[i] >= b[j] )
m + +;
}
cout << m <<“” ;
}
return 0;
}
而暮光之城则是一个可以将区域内的一切波动全部反离散化——将有限空间内的波转化为无限空间内的有限个体并使之充满区域的区域本身。举个例子,一个可爱的小物块本来被放在一个盒子里,但一旦它被反离散化,它便会被拖拽到一个无限空间内,然后根据需要,对其进行不断地修改,最后导致无数个它充满了这个无限空间。这听起来是十分诡异的,但它确实可行。因为在数学概念中,一阶无穷小是大于二阶无穷小的,而正无穷的平方也大于正无穷。那么,无穷数量的个体自然也拥有充满无限空间的能力。
其中一个核心概念的实现方式便是类似如此的:(当然这是一种极简样例)
cin>>n;
For ( int i=1;i;i++)
{
float k=n/i;
}
在宇宙中的波动本来是属于这个已知的有限空间的。但当利用华夜文明提供的空间机器对其进行一定的操作时,波动就如同被粗暴地塞入了编译器,根据程序对其修改,然后再被放出来。而这个演示程序中的K,则是概率无限减小的表现。虽然与离散化相反,这样做会极大地降低算法的时空效率,但可以让波动在量子不确定原理下被发现的概率大大降低,也就便于隐藏和调制了。由于空间的无限性使得波动变得极度微弱,以至于可以骗过所有文明的探测器。而同时,稠密的概率云也会因此而下调一个档位。
通过空间机器,波动将不断隐没在莫大的寰宇宙里。于是,战略性的部署与执行,一切都变得难以被发觉。而在普朗克时间为度量单位的运算下,进行修改也不会造成过大的时间损耗(毕竟只能做到近无穷,真正的无穷是不可能做到的)。