Posts Tagged ‘2^n’

证明:一个整数仅有一种分解成若干个2的幂之和的情况


21 Jun

一个整数仅有一种分解成2的幂之和的情况。。

有点绕呃~,其实就是一个十进制数只能表示成一个二进制形式。

换而言之,就是十进制数和二进制整数是一一对应的。

例如:43=(2^0)+(2^1)+(2^3)+(2^5)=1+2+8+32

大家会说了:这是明摆着的事实嘛!如果分解方法不唯一,难道在你用计算器作进制转换时,它还要报出多个解?

但这毕竟是一种感觉,有时候你也会想为什么不存在两种或以上的分解方法? (more…)

1/2^n


21 Jun

突然想到一个很奇怪的问题:一个循环继续循环下去的概率总是1/2,那么有没有可能循环会无限循环下去。

yh牛说:“理论上有可能,但是几率极低。还有一个问题就是,纯随机数当然是这样,用一般编程语言里自带的伪随机数是不可以的。”

无限循环下去的几率是1/2^n(n为无限大),也就是0

于是一个诡异的事情又发生了:即使这个无限可能了,也会让人觉得会在之后有限时间内总会停下来

比如从0到1之间随机一个无限精确的实数,正好随机到0.5的概率和不是0.5的概率比的话也是这种感觉

也比如是一个点落在一个面上

于是我们知道了:“所有的从高维里选出低维都是这种感觉,然后0维分有限和无限,有限可以认为是小于无限的,0维和1维之间没有定义,就是连续统假设和选择公理的问题”

总之,如果是纯随机数,有可能发生,但现实中不会发生,因为现实一点~我们的时间是有限的。。。

也说不定能搞到比较没有联系的纯随机数,比如根据鼠标移动,时间等等,当然一般没人这么搞。

一旦这种可能发生了。。那。。。。我要去买彩票!!!!

这里给出程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  i,j,z:integer;
  s:array[1..1024] of integer;
begin
  randomize;
  for j:=1 to 10000 do
  begin
    z:=0;
    i:=0;
    while i mod 2=0 do begin inc(z); i:=random(10); end;
    inc(s[z]);
  end;
  for i:=1 to 100 do writeln(i,':',s[i]);
end.

运行结果:(每行表示在此退出的次数)

Teddy

Studies,OI and Love