# Standard Normal Probability Distribution
magicNum <- 1 / sqrt(2 * pi)
StandardNormalDesicityOriginal <- function(x) {
result <- exp(-0.5 * (x ^ 2)) / sqrt(2 * pi)
result
}
StandardNormalDesicity <- function(x) {
result <- magicNum * (1 / sqrt(exp(x ^ 2)))
result
}
StandardNormalProbabilityMargin <- function(x) {
if (x == 0) {
area <- 0.5
}
else {
if (x < 0) {
num <- x * 100
area <- 0.5
for (s in c(0:num)) {
area <- area - ((StandardNormalDesicity(s * 0.01) + StandardNormalDesicity(s * 0.01 - 0.01)) * 0.01 * 0.5)
}
}
else {
num <- x * 100 - 1
area <- 0.0
for (s in c(0:num)) {
area <- area + (StandardNormalDesicity(s * 0.01) + StandardNormalDesicity(s * 0.01 + 0.01)) * 0.01 * 0.5
}
area <- 0.5 + area
}
}
area
}
StandardNormalProbabilityMargin2 <- function(x) {
if (x == 0) {
area <- 0.5
}
else {
if (x < 0) {
num <- x * 1000
area <- 0.5
for (s in c(0:num)) {
area <- area - ((StandardNormalDesicity(s * 0.001) + StandardNormalDesicity(s * 0.001 - 0.001)) * 0.001 * 0.5)
}
}
else {
num <- x * 1000 - 1
area <- 0.0
for (s in c(0:num)) {
area <- area + (StandardNormalDesicity(s * 0.001) + StandardNormalDesicity(s * 0.001 + 0.001)) * 0.001 * 0.5
}
area <- 0.5 + area
}
}
area
}
StandardNormalProbabilityRange <- function(x, y) {
if (x > y) {
m <- y
n <- x
}
else {
m <- x
n <- y
}
area <- StandardNormalProbabilityMargin(n) - StandardNormalProbabilityMargin(m)
area
}
StandardNormalProbabilityRange2 <- function(x, y) {
if (x > y) {
m <- y
n <- x
}
else {
m <- x
n <- y
}
area <- StandardNormalProbabilityMargin2(n) - StandardNormalProbabilityMargin2(m)
area
}
###################################################################################
d <- StandardNormalProbabilityMargin(-1.02)
print(d)
d <- StandardNormalProbabilityMargin(1.02)
print(d)
d <- StandardNormalProbabilityRange(0, 1.02)
print(d)