<s> from random import randint <EOL> Rand_Table = [ <EOL> <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> ] <EOL> class KalmanFilter : <EOL> X_pre = <NUM_LIT:0> <EOL> X_post = <NUM_LIT:0> <EOL> P_pre = <NUM_LIT:0> <EOL> P_post = <NUM_LIT:0> <EOL> K_cur = <NUM_LIT:0> <EOL> def __init__ ( self ) : <EOL> self . X_pre = <NUM_LIT:0> <EOL> def Gaussian_Noise_Cov ( self ) : <EOL> index = <NUM_LIT:0> <EOL> tmp = [ <NUM_LIT:0.0> ] * <NUM_LIT:10> <EOL> average = <NUM_LIT:0.0> <EOL> sum = <NUM_LIT:0.0> <EOL> for i in range ( <NUM_LIT:10> ) : <EOL> index = randint ( <NUM_LIT:0> , <NUM_LIT> ) <EOL> tmp [ i ] = Rand_Table [ index ] <EOL> sum += tmp [ i ] ; <EOL> average = sum / <NUM_LIT:10> <EOL> Variance = <NUM_LIT:0.0> <EOL> for j in range ( <NUM_LIT:10> ) : <EOL> Variance += ( tmp [ j ] - average ) * ( tmp [ j ] - average ) <EOL> Variance /= <NUM_LIT> <EOL> return Variance <EOL> def Filter ( self , origin ) : <EOL> modelNoise = <NUM_LIT:0.0> <EOL> observeNoise = <NUM_LIT:0.0> <EOL> modelNoise = self . Gaussian_Noise_Cov ( ) <EOL> observeNoise = self . Gaussian_Noise_Cov ( ) <EOL> self . X_pre = self . X_post <EOL> self . P_pre = self . P_post + modelNoise ; <EOL> self . K_cur = self . P_pre / ( self . P_pre + observeNoise ) ; <EOL> self . P_post = ( <NUM_LIT:1> - self . K_cur ) * self . P_pre ; <EOL> self . X_post = self . X_pre + self . K_cur * ( origin - self . X_pre ) ; <EOL> return self . X_post </s>
