2011年8月5日星期五

坚信者退化模型:只要有10%的坚信者,就可以改变社会?(part 2 实验模拟)

看了这篇:只要有10%的坚信者,就可以改变社会?http://www.guokr.com/article/57629/#page=2 进行了模型的扩展,继续有感想:
我在《坚信者退化模型:只要有10%的坚信者,就可以改变社会?(part 1)》里假设从普通信仰者到坚信者是逐渐过渡的。人们持有某一观点,对坚持这一观点是有一定强度的,会随着与对立观点的逐渐接触而弱化,又会随着与相同观点的接触而增强。
于是,做了如下程序,以实验之
【方法】
% 坚信者测试,Matlab程序
clear all
close all
N=10000;%人群数量
mean_opinion=1;%观点强度分布的平均值
sd_opinion=10;%观点强度分布的方差
people=round(normrnd(mean_opinion,sd_opinion,N,1));%人们坚持观点的强度

for i=1:100%多次循环
ppl_index=randperm(N);%随机排队
A_index=ppl_index(1:N/2); %A组是排队前一半人
B_index=ppl_index(N/2+1:N);%B组是排队后一半人
A_value=people(A_index);%A组每个人的坚持观点强度
B_value=people(B_index);%B组每个人的坚持观点强度
A_sign=sign(A_value);%A组每个人的观点,+1,-1分别表示两种观点,0表示没有观点
B_sign=sign(B_value);
people(A_index)=people(A_index)+B_sign;%A组人与B组排队相应人的观点交互,两人观点相同则加强,反之则减弱
people(B_index)=people(B_index)+A_sign;

figure(1)
hist(people)%不断显示人群观点强度的分布
opinion(i)=mean(people);%计算平均意见
end
figure(2)
plot(opinion)%显示平均意见的变化过程

【结果】
多次循环以后,人群的观点强度仍然是正态分布
Peoplehist

但是,人群的平均观点发生了变化:
Opinionshift

由于初始设定人群稍微偏向+方观点,最终大家都转向+方观点。
如果初始平均观点设定是0呢,有趣的事情发生了,下列两种情况都有可能出现:
但是毫无疑问,平均观点偏离了0点。

Opinionshift2

Posted via email from goldengrape's posterous

实验设计:悬浮在水中的气球问题

这是一道在果壳死理性派小组上盖了440层楼的帖子
题目:
  挂着重物的气球“稳定”悬浮在水中,向下轻按气球一下,松手,气球将:
  A.在松手时刻的位置处继续悬浮 B.上浮到原高度处悬浮
  C.下沉,直至容器底 D.继续下沉,然后上浮到原处
大堆的讨论在:http://www.guokr.com/post/56593/ 但是由于“悬浮”这个条件不好控制,所以看似没有实验证据。

因此:
实验设计党登场,考虑到“悬浮”的状态不容易达到,“稳定”这种词汇定义不严格,所以采用了一个等效设计:
材料:取大量筒一个,TT一个并充气,弹簧秤一枚,定滑轮一个,重物一枚。
方法:定滑轮绑在重物上,TT上拴线,绕过定滑轮,另一端接弹簧秤。
重物放入大量筒,注意,要慢一点,别砸碎了。
弹簧秤挂在大量筒外面。
好了,开始注水。当水完全淹没TT顶端的时候,继续注水并开始记录水位与弹簧秤读数(注意,此时弹簧秤的也许已经超量程了,要选个够强的才行)。
上述材料应该中学实验室都可以实现,@果壳diy 也可以考虑做一下。
选取TT的原因是
1.取材方便,
2.弹性好,
3.有方向性,容易充入大量空气而又不至于接触瓶壁,
4.可以吸引@果壳性情 组的同学们参与

Exp

可能结果:
选B的:弹簧秤读数不断增大
选C的:弹簧秤读数逐渐降低

大家下注吧
随手查了一下淘宝:
1000ml的塑料量筒大约20元
电子弹簧秤大约20元
定滑轮大约3元

Posted via email from goldengrape's posterous

坚信者退化模型:只要有10%的坚信者,就可以改变社会?

看了这篇:只要有10%的坚信者,就可以改变社会?http://www.guokr.com/article/57629/#page=2 有感想:

***原模型***
原模型中相信A的只有两种状态:坚信者A和普通A,其中坚信者A无论经过多少次B的感染,仍然是坚信者A,而普通A经过两次B感染,就会变成B。而相信B的只有普通B的状态。

***现在扩展相信A的状态***
例如有AA,满足:
AA-(B)->A, A-(B)-AB, AB-(B)-B

***进一步扩展***
有AAA...A, 记为iA,那么有
iA-(B)->(i-1)A
统一A,B的描述,记AB为0A,记B为-1A
扩展B的状态,也有-1A, -2A.....

考虑i的分布,如果是i只能取inf,1,0,-1,就是原始模型,
每一个i对应一个人口ni,
如果ni是正态分布呢?
ni的均值是说明社会的意见倾向
ni的方差,我不明确,也许是说明意见本身是否容易被改变,

这样的扩展就可以考虑两种意见都有极端相信者的竞争情况了,就是看初始状态设定以后,ni的分布变化。
特别的,可以求出某种稳态模型,ni满足于某种特定分布的时候,经过状态变化之后,分布不变。

***再扩展***
如果有三个意见竞争,或者更多意见竞争,那不妨把i作为从整数扩展到矢量来用。

好吧,我数学很差,上述扩展讨论,能否列出方程,再进行数值模拟呢?

金色葡萄
@goldengrape in weibo&twitter

Posted via email from goldengrape's posterous

2011年7月18日星期一

如何在飞机上避免旁人看你的iPad

如何在飞机上避免旁人看你的iPad

我们是Geek/Nerd这两个词本身就含有不喜社交的意义。飞机上旁边座位的那个家伙总在侧过头来,看你的iPad上的内容,更恐怖的是,可能意欲与你搭讪。如何避免,请看下文。

首先,尽可能选择靠窗的座位,这样你可以将iPad侧过来面向窗户,就像我现在做的那样,写旁人的坏话,却也不被发现。是的,这篇blog就是在飞机上写的。

但是往往我们没选对好座位。那么,如下

1. 更改桌面背景。这里推荐3DMedicalImages这个app,从其中选取一些能够吓退普通人的图片,比如含有颅骨或者消化系统解剖的图片。我比较喜欢神经系统的图片,远看细节不清晰的时候,是头颅的形状,近看细节明晰则是脑神经的走行。

2. 播放公开课的视频。不要放电影,即使放电影,也不要带有字幕,即使有字幕也不要是中文字幕。如果你放的是有中文字幕的大片,恐怕后排的人也会跟着你一起看完的。放公开课视频,推荐带公式讲解的,比如物理学、微积分、线性代数、计算机之类。不推荐经济学、社会学和艺术学。经过我实际的测试,《金融市场》的效果远远逊色于《普通物理学》。曾经放《金融市场》的时候,旁边的大婶两次试图搭讪,转放《普通物理学》的时候,旁边立刻K.O.

3. 看blog。iPad上华丽的Flipboard是阅读的利器,可惜被封掉了,勉强用国内的Zaker代替。经过测试科学松鼠会、果壳网、36氪、TechWeb、Engadget中文版都无法阻止旁边的大叔偷窥我的屏幕,终于我忍不住了,亮出了必杀技,打开了Martix67的blog。大叔长叹一声昏了过去。

Posted via email from goldengrape's posterous

2011年6月6日星期一

网络公证算法

***版权声明***
本文遵守创作共用-署名=BYC协议,转载请注明作者@goldengrape以及作者的BitCoin账户15EkPSgJ4khi9tXfJWDr61Jge3T6WWWXP3

***研究背景***
网络上发布的文本,很容易被转载甚至被盗用,虽然目前来说盗用也就盗用了,大家也没什么办法,但是终将有一天正义会得到伸张。在侵权算账的那一天,要提供首先的证据就是认定文本的作者和发布时间。从某种意义上来说,发布时间是最重要的证据。

但是网络文本的发布时间是记录在服务器上的,单一的服务器时间都是可以修改的。首发的论坛、blog、微博的服务器时间都是可以篡改的。更糟糕的情况是,你恰好要和你所使用的服务商打官司,你原创的文本在人家的服务器上,打官司之前就因为不可抗力被404了。

***问题提出***
如何为网络电子文档提供公证,公证其内容和发布时间,使发布内容和时间无法被篡改。

***解决方案***
利用BitCoin网络,将需要公证的信息加入到BitCoin的交易信息中去。目前所知,BitCoin的p2p网络会记录且仅记录每一笔交易的时间、转出帐户、转入帐户和金额,这个记录会存入p2p网络中的各个计算机之中,一开始至少是6台计算机,才会确认这一交易,随着时间的延长,整个参与BitCoin的p2p网络内的计算机之中都会有此记录。要改变记录是不可能的。

在BitCoin交易中被记录的有且只有交易的时间、转出帐户、转入帐户和金额。交易时间是我们需要的结果,剩下的三个信息中需要与发布内容相关。不失一般性,我们以@chenxiaoqin进行的史上第一次网络公证为例:

***公证的过程***
0. 被公证文本是字符串:“ I, @chenxiaoqino, have finished my math homework of 6/5/2011. The answer of the first question is A.”,这孩子居然把史上第一句可以被网络公证的话来用来声明他做了暑假作业。
1. 对需要被公证的文本进行散列计算,目前使用的是MD5算法。得到16进制的MD5结果:1e53a5f4ac58af0b8c7d4ec3934eb1a6
2. 将16进制的MD5字符串转换为10进制数字字符串,并且补齐至39位:040311166495400756674970027450971369894
3. 拆分成6个值
a=1.00403111
b=0.16649540
c=0.20756674
d=0.39700274
e=0.45097136
f=0.59894
其中小数点后第一位分别是0-5,是来标记这六个值的顺序的。
4. 将这6个值作为转账金额,从BitCoin一个账户转账到另一个账户。

***公证的查询与验证***
0. 假定今后某日@chenxiaoqin需要向法庭或其他什么人提出这个声明作为证据那么他需要提供被公证的文本“ I, @chenxiaoqino, have finished my math homework of 6/5/2011. The answer of the first question is A.”
1. 法庭或第三方根据被公正文本计算MD5值,并且转换成10进制数字串,按照原来的规则拆分成6个数字
a=1.00403111
b=0.16649540
c=0.20756674
d=0.39700274
e=0.45097136
f=0.59894
3. 法庭利用这6个数字,在BitCoin的交易记录中查询,记录如下:http://blockexplorer.com/address/12yZC6hFpzw82f7CvJaFJCndCfWXEDe3jp 发现含有这一组数字的交易发生在2011年6月5日。于是可以认定这一声明是在这一时间发生过。

***存在的问题***
1. 由于BitCoin的规定限制,网络公证并不是免费的。每一笔转账是要付转账费用的,当前是每笔0.01BTC,相当于人民币6~7元
2. 占用资金,Sum(a:f)高达2.82BTC,相当于人民币300元,整个转账需要耗费越1小时左右,这200元就要被冻结一小时。

算法的改进:
拆分数字成:
a=0..00403111
b=0.16649540
c=0.20756674
d=0.03970027
e=0.04450971
f=0.05369894
其中a-c中小数点第一位和d-f中小数点后第1和2位是作为序号标明的,那么
0.0aaaaaaa+0.1bbbbbbb+0.2ccccccc+0.03ddddd+0.04eeeeee+0.05ffffff每次公证占用的资金最多不超过0.74999994BTC

***网络公证商店***
ver=alpha,顾客属性Geek
0. 有顾客进入,需要公证,顾客自行计算所需公证文档的MD5值,被公证文档可以是文本、程序源代码、扫描文稿等等,只要能算出MD5的东西都可以。如果必要,顾客可以在被公正文档中加入自己的数字签名,将MD5值与作者的数字签名关联在一起。
1. 顾客提交需要被公正的MD5值,支付2BTC
2. 公证商店留下1.007BTC作为佣金,其中0.007作为转账所需支付的费用
3. 公证商店依据MD5值,计算出6个转账金额。逐一转账返还给顾客
4. 公证商店转账剩余的BTC,交易完成
5. 公证商店向顾客出具公证记录以及说明

***讨论***
网络公证的核心在于将被公证文本的特征记录在不同的计算机之中,任何单一的,或者从属于一个集团的计算机都是不可靠的,记录有可能被篡改。所以需要将特征值记录在不受个人和组织p2p网络之中,而这个记录需要广泛的传播,目前看BitCoin网络是最为符合上述特征的。在特征值有效的情况下,公证的有效性与BitCoin货币的安全性等价。

***下一步***
我们需要能够吸引geek的前端设计
我们需要服务器

***参考***
@goldengrape和@chenxiaoqin完成了核心算法的设定

@yegle在算法形成过程中有所贡献

首次网络公证的记录在:http://blog.cxqn.info/?p=356
BitCoin网络的介绍参考BitCoin官方网站:http://bitcoin.org

Posted via email from goldengrape's posterous

2011年4月27日星期三

zermelo's theorem学习笔记

zermelo's theorem 实在太帅了。看了耶鲁公开课博弈论第15集,终于揭开了从大一开始困扰我的谜题。大一的时候物理老师一次很淡定的说,一个双人棋类游戏,如果没有平局,那么一定有必胜招。当时我就很迷惑,但他没给出证明。过了13年,我终于见到了证明。实在激动,记录一下。

这个定律的全名叫做zermelo's theorem。具体描述是:
在一个双人游戏中,满足:
0. 双人轮流行动
1. 有限步。比如国际象棋好像重复出现六次相同的棋局判和
2. 信息完备。所谓信息完备,大概是玩家明确知道所有之前的步骤。
3. 仅有3种结局,对于玩家1只有:赢,和,输三种结局
当满足上述条件的游戏,只会出现下面情况之一:
1. 玩家1有必胜招。就是玩家1按照某种特定的走法,不论玩家2如何努力,玩家1都可以赢
2. 玩家1有必和招。
3. 玩家2有必胜招。当然,有些游戏是有后手优势的,先走的人倒霉。

这个定律的证明相当华丽,建议每一个理科geek前去欣赏,看下面的视频也可以,自行google "公开课 博弈论 15"也行。

在此简单记叙一下,权作笔记。
N是某一游戏的最大步长,比如我们下棋,玩很多很多次,其中最多回合的一次,是大战300回合后我赢了,那么N=600。

数学归纳法第一步:
N=1时,zermelo's theorem显然成立。
玩家1,只用走一步,就可决定输赢。按照游戏的规定,也许有胜负和三种,那么玩家1显然选择胜的走法,于是满足玩家1有必胜招

数学归纳法第二步:
假设i<=N时命题成立

数学归纳法第三步:
试图证明i=N+1时命题成立
考虑N+1时的子游戏,除去玩家1走的第一步以后的游戏部分。玩家1第一步的每一种走法都会产生一个新游戏起始状态,它的最大步长<=N的,从数学归纳法第二步可知,每个子游戏有唯一确定的结果,玩家1必然会赢、输或者和。于是等价于N=1的情况了!相当于玩家1在第一步的时候来选择进入哪个游戏,是自己必赢还是必输还是必和。

这个证明的华丽之处在于,我在想N+1的时候,默认的想法是在游戏树后面再加一层,于是很多年都想不出来,而这个证明是在游戏树前面加上了一个树根。在看到这个证明之前,我根本就没有意识到自己有这样的思维定势。

Posted via email from goldengrape's posterous

2011年4月10日星期日

混搭

总结下,一部分人类通过基因改良成为调整者,进入太空到各个星系,其中一部分人继续进化成为seed,能够控制原力成为Jedi,他们建立了回到过去建立了魔法世界,将普通人称为麻瓜


@gliceren: 有部分邪恶势力去了中土世界,建立了魔多


调整者中的seed Jedi之一的安纳金受到黑暗原力的诱惑,成为维德勋爵,建造了机器星球死星,又称赛博坦


死星或者赛博坦的操作系统叫做matrix,它的源代码压缩在一个戒指之中也掉落在中土世界


@gliceren: 为了监视戒指,正义力量在月球建立了他们的基地。当需要的时候他们以人类的面貌出现在地球拯救危难。虽然他们出现时的面貌不同,但口号是一样的“代表月亮消灭你”


但实际上这些是一个叫neo的石器时代人落入潜意识边缘的梦境,梦境中他活了几万年还保持35岁


neo在睡着之前,当然他那时还在石器时代,一直在思考一个问题,6*7=? 


===

填空题,上述故事涉及到那些作品,请按顺序填写:

____系列,

____系列,

____系列,

____系列,

____系列,

____系列,

____战士,

____空间,

这个男人来自____

____漫游指南

Posted via email from goldengrape's posterous