Files
hakorune/examples/app_statistics_simple.nyash

130 lines
3.0 KiB
Plaintext
Raw Normal View History

// 📊 統計計算アプリ(シンプル版) - MathBox新機能を活用
print("📊 === Statistics Calculator (Simple) ===")
print("MathBox拡張機能を活用した統計計算デモ\n")
// MathBoxインスタンス作成
math = new MathBox()
// 統計データ配列
data = new ArrayBox()
// テストデータ追加
print("📝 Adding test data...")
data.push(85)
data.push(92)
data.push(78)
data.push(95)
data.push(88)
data.push(73)
data.push(90)
data.push(82)
// データ表示
print("\n📈 Data points (" + data.length() + " items):")
i = 0
loop(i < data.length()) {
print(" [" + i + "] = " + data.get(i))
i = i + 1
}
// 平均値計算
print("\n🧮 Calculating statistics...")
sum = 0
i = 0
loop(i < data.length()) {
sum = sum + data.get(i)
i = i + 1
}
// 除算の代わりにpow(-1)を使用
count = data.length()
mean = sum * math.pow(count, -1)
print("Mean: " + mean)
// 最大値・最小値
maxVal = data.get(0)
minVal = data.get(0)
i = 1
loop(i < data.length()) {
maxVal = math.max(maxVal, data.get(i))
minVal = math.min(minVal, data.get(i))
i = i + 1
}
print("Max: " + maxVal)
print("Min: " + minVal)
print("Range: " + (maxVal - minVal))
// 分散計算
sumSquaredDiff = 0
i = 0
loop(i < data.length()) {
diff = data.get(i) - mean
sumSquaredDiff = sumSquaredDiff + (diff * diff)
i = i + 1
}
variance = sumSquaredDiff * math.pow(count, -1)
print("Variance: " + variance)
// 標準偏差
stdDev = math.sqrt(variance)
print("Standard Deviation: " + stdDev)
// 新機能:三角関数を使った周期データ
print("\n\n🌊 === Sine Wave Data ===")
waveData = new ArrayBox()
pi = math.getPi()
print("Generating sine wave data...")
i = 0
loop(i < 12) {
angle = i * pi * 0.1667 // π/6 ごと30度刻み
value = math.sin(angle) * 10 + 50
rounded = math.round(value)
waveData.push(rounded)
print(" angle=" + math.round(angle * 100) * 0.01 + " rad, sin=" + rounded)
i = i + 1
}
// 対数・指数関数のデモ
print("\n\n📈 === Exponential Growth ===")
growthData = new ArrayBox()
i = 0
loop(i < 8) {
value = math.exp(i * 0.3) * 10
rounded = math.round(value)
growthData.push(rounded)
print(" exp(" + (i * 0.3) + ") * 10 = " + rounded)
i = i + 1
}
// 切り捨て・切り上げのデモ
print("\n\n🔢 === Rounding Functions ===")
testVals = new ArrayBox()
testVals.push(3.14)
testVals.push(2.718)
testVals.push(-1.5)
testVals.push(9.99)
i = 0
loop(i < testVals.length()) {
val = testVals.get(i)
print("\nValue: " + val)
print(" floor: " + math.floor(val))
print(" ceil: " + math.ceil(val))
print(" round: " + math.round(val))
i = i + 1
}
// 数学定数の表示
print("\n\n🌟 === Mathematical Constants ===")
print("π (pi) = " + math.getPi())
print("e (euler) = " + math.getE())
// 累乗計算
print("\n\n⚡ === Power Calculations ===")
print("2^10 = " + math.pow(2, 10))
print("10^-1 = " + math.pow(10, -1) + " (1/10)")
print("√144 = " + math.sqrt(144))
print("\n✅ Statistics Calculator completed!")