博客更换新域名 sqrt-1.me

今天(2015年4月19日),我为我的博客注册了顶级域名sqrt-1.me。

我的网名和博客名都是“负一的平方根”,sqrt-1正表示此含义。其中sqrt是square root的缩写,表示平方根,在很多程序设计语言和数学计算工具中,sqrt也是求平方根的函数。“负一的平方根”是我几年前给自己起的网名,最初是用于腾讯QQ的昵称,后来在很多网站上也使用这个名字。在实数域中,负数并没有平方根。在复数域中,负一的平方根是±i,其中i是虚数单位。复数的发明对科学界产生了巨大的影响,虚数单位i在数学中和π、e等常数一样是不可或缺的。“负一的平方根”这个网名表现出我对科学的热爱。

本博客是在中国科大LUG社团提供的freeshell虚拟主机平台上用WordPress搭建的,一直以来没有顶级域名。现在原域名zzh.freeshell.ustc.edu.cn已经设置为HTTP301跳转到新域名的对应页面上。本博客现搭建于国外虚拟主机上。由于SSL证书的申请需要时间,本博客的HTTPS暂时没有有效证书。4月23日本博客已部署SSL证书。

纯css让页脚固定在最下方

在制作网页时,我们通常喜欢在网页最下方放置一个页脚区域,在里面可以注明版权信息、备案信息、联系方式,也可以加一些链接、放置访问量统计等内容。

但是放置页脚时有一个非常棘手的问题:如果页脚直接跟在网页内容的下面,当网页内容不够一屏的时候,页脚不能保证在屏幕的底部,而是悬在屏幕中央,看起来很不美观。如果把页脚设置为固定在屏幕底部,如果网页内容超过一页,在我们浏览内容时页脚就会占用屏幕下方面积,甚至遮挡正文,在屏幕比较小的移动设备上面浏览时尤其明显。

我在这里介绍一种两全其美的方案,使得固定高度的页脚在内容较少时能够显示在屏幕的最下方,在内容较多时能够跟在网页下面。

继续阅读“纯css让页脚固定在最下方”

用Mathematica拟合自定义函数

最近在处理大物实验的数据时经常会遇到各种线性和非线性的拟合问题。对于线性回归的计算,用Excel电子表格,甚至卡西欧计算器,都很容易完成。但是对于复杂函数的拟合,简单的软件却无能为力。大物实验这门课推荐的Origin软件,拟合自定义函数很麻烦(据说需要编译成dll动态链接库),而且我不是很喜欢它的操作方式和界面。所以我选择用Mathematica来拟合自定义函数。

Mathematica的帮助文档是个好东西,不需要联网就可以根据你想要做的事情搜索相应的函数。

继续阅读“用Mathematica拟合自定义函数”

为什么C++直接输出21000可以精确到个位

这个想法源于一道程序设计课的上机题:任意给定一个正整数N(N<=100),计算2的n次方的值。 这道题的本意是练习高精度计算,但是可以发现,使用long double类型调用pow函数就足够了。当然我还是用高精度计算写的。 然而,我发现即使仅使用double,甚至用float,在C++中都可以输出正确的答案。 运行下面的C++代码:

#include<iostream>
#include<cmath>

using namespace std;

int main(){
    int x;
    cin>>x;
    cout.precision(0);
    cout<<fixed<<pow(2,x);
    return 0;
}

输入1000,程序输出一个超过300位的结果,虽然这早已超出double和long double的精度,但是运算结果是完全正确的。

至于结果的正确性,比较方便的方法就是与Python给出的结果进行对比。在Python的控制台中输入2**1000可以直接得到高精度计算的结果,很方便。

为什么结果是精确的呢?

继续阅读“为什么C++直接输出21000可以精确到个位”