作者latinboy (昵称)
看板Fortran
标题Re: [问题] 想要问一个有关於机率的问题
时间Fri Apr 3 11:10:27 2009
※ 引述《shock0828 (SHOCK)》之铭言:
: 老师要我们写一个程式来模拟离子打入Si基板的问题
: 想问各位大大
: 各个方向(六个方向)的机率与机率跟入射能量还有剩余能量有关
: 我该怎麽去处理这个问题呢?
: 他的假设有三点
: 假设一、P离子射入Si 基板後有六个方向可以运动(三度空间),每次运
: 动前进一个单位
:
: 假设二、方向的变换和动量(方向和动能)有关,维持原方向的机率= 1/6
: +(剩余动能/入射动能)*0.8,反弹的机率=1/6-(剩余动能/入射动能)*0.1,
: 其他方向的机率=(1-(原方向机率+反弹机率))/4
先把3种case的机率算出来
例如 剩余动能/入射动能 = 0.75
维持原方向的机率 = 1/6 + 0.75*0.8 = 0.76666666 = a1
反弹的机率 = 1/6 - 0.75*0.1 = 0.09166666 = a2
其他方向的机率 = (1 - 0.76666666 - 0.09166666 ) / 4 = 0.035416666 = a3~a6
a1代表向前(维持原方向)的机率
a2代表向後(反方向)
a3~a6分别代表转向其他四个方向的机率
把这些数字加起来做成table b1~b6
b1 = a1
b2 = a1 + a2
...
b6 = a1 + a2 + a3 + ... + a6 = 1
接着产生一个 0~1之间的uniform random number rand
看看数字位於table哪边 决定前进方向
if ( rand < b1 )then
!维持原方向
elseif ( rand < b2 )then
!反方向
elseif ( rand < b3 )then
!左转
elseif ( rand < b4 )then
!右转
elseif ( rand < b5 )then
!上转
else
!下转
end if
就是这样....
: 假设三、能量的损耗正比於行进的距离与转弯次数,每维持原方向前进一单
: 位损耗1 单位能量,每与原方向相反方向前进一次损耗10 单位能量,每转
: 弯一次损耗5 单位能量,P 离子在所有能量耗尽时停止。
:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.18.229