統計計算器
分類:統計學
結果: 0
統計計算器 - 逗號分隔輸入
計數 | 0 |
總和 | 0 |
平均值 | NaN |
中位數 | NaN |
眾數 | |
最大值 | -Infinity |
最小值 | Infinity |
範圍 | -Infinity |
幾何平均數 | NaN |
標準差 | NaN |
變異數 | NaN |
樣本標準差 | NaN |
樣本變異數 | NaN |
排序後的數據 | |
// JavaScript for Calculator One
let valuesOne = [];
document.addEventListener('DOMContentLoaded', function() {
// Add touch event handlers for mobile
const buttons = document.querySelectorAll('.calculator-one-button');
buttons.forEach(button => {
button.addEventListener('touchstart', function(e) {
e.preventDefault();
this.click();
});
});
});
function addValueOne() {
const value = parseFloat(document.getElementById("current-value-one").value);
if (!isNaN(value)) {
valuesOne.push(value);
updateAddedValuesOne();
document.getElementById("current-value-one").value = '';
calculateStatisticsOne();
clearWarningOne();
} else {
displayWarningOne("請輸入有效的數值以新增。");
}
}
function updateAddedValuesOne() {
document.getElementById("added-values-one").innerText = valuesOne.join(', ');
document.getElementById("count-one").innerText = `數量=${valuesOne.length}`;
}
function clearValuesOne() {
valuesOne = [];
document.getElementById("added-values-one").innerText = '';
document.getElementById("count-one").innerText = '數量=0';
document.getElementById("current-value-one").value = '0';
document.getElementById("result-one").innerText = '0';
clearWarningOne();
}
function clearCurrentValueOne() {
document.getElementById("current-value-one").value = '0';
clearWarningOne();
}
function appendValueOne(val) {
let currentValue = document.getElementById("current-value-one").value;
if (currentValue === '0' && val !== '.') {
currentValue = '';
}
document.getElementById("current-value-one").value = currentValue + val;
clearWarningOne();
}
function toggleSignOne() {
let currentValue = document.getElementById("current-value-one").value;
if (currentValue) {
currentValue = parseFloat(currentValue);
document.getElementById("current-value-one").value = (-currentValue).toString();
}
}
function calculateMeanOfSquaresOne() {
if (valuesOne.length > 0) {
const sumOfSquares = valuesOne.reduce((acc, val) => acc + Math.pow(val, 2), 0);
const meanOfSquares = sumOfSquares / valuesOne.length;
document.getElementById("result-one").innerText = meanOfSquares.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算平方平均值。");
}
}
function calculateStatisticsOne() {
if (valuesOne.length > 0) {
const result = valuesOne.reduce((acc, val) => acc + val, 0);
document.getElementById("result-one").innerText = result;
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算統計數據。");
}
}
function calculateMeanOne() {
if (valuesOne.length > 0) {
const mean = valuesOne.reduce((acc, val) => acc + val, 0) / valuesOne.length;
document.getElementById("result-one").innerText = mean.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算平均值。");
}
}
function calculateSumOne() {
if (valuesOne.length > 0) {
const sum = valuesOne.reduce((acc, val) => acc + val, 0);
document.getElementById("result-one").innerText = sum.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算總和。");
}
}
function calculateStdDevOne() {
if (valuesOne.length > 0) {
const mean = valuesOne.reduce((acc, val) => acc + val, 0) / valuesOne.length;
const variance = valuesOne.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) / valuesOne.length;
const stdDev = Math.sqrt(variance);
document.getElementById("result-one").innerText = stdDev.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算標準差。");
}
}
function calculateSumOfSquaresOne() {
if (valuesOne.length > 0) {
const sumOfSquares = valuesOne.reduce((acc, val) => acc + val * val, 0);
document.getElementById("result-one").innerText = sumOfSquares.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算平方和。");
}
}
function calculateVarianceOne() {
if (valuesOne.length > 0) {
const mean = valuesOne.reduce((acc, val) => acc + val, 0) / valuesOne.length;
const variance = valuesOne.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) / valuesOne.length;
document.getElementById("result-one").innerText = variance.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算變異數。");
}
}
function calculateSampleStdDevOne() {
if (valuesOne.length > 1) {
const mean = valuesOne.reduce((acc, val) => acc + val, 0) / valuesOne.length;
const variance = valuesOne.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) / (valuesOne.length - 1);
const sampleStdDev = Math.sqrt(variance);
document.getElementById("result-one").innerText = sampleStdDev.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增多於一個數值以計算樣本標準差。");
}
}
function calculateSampleVarianceOne() {
if (valuesOne.length > 1) {
const mean = valuesOne.reduce((acc, val) => acc + val, 0) / valuesOne.length;
const sampleVariance = valuesOne.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) / (valuesOne.length - 1);
document.getElementById("result-one").innerText = sampleVariance.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增多於一個數值以計算樣本變異數。");
}
}
function calculateGeometricMeanOne() {
if (valuesOne.length > 0) {
const product = valuesOne.reduce((acc, val) => acc * val, 1);
const geometricMean = Math.pow(product, 1 / valuesOne.length);
document.getElementById("result-one").innerText = geometricMean.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請新增數值以計算幾何平均值。");
}
}
function calculateExpOne() {
const value = parseFloat(document.getElementById("current-value-one").value);
if (!isNaN(value)) {
const result = Math.exp(value);
document.getElementById("result-one").innerText = result.toFixed(2);
clearWarningOne();
} else {
displayWarningOne("請輸入數值以計算指數值。");
}
}
function displayWarningOne(message) {
document.getElementById("warning-message-one").innerText = message;
}
function clearWarningOne() {
document.getElementById("warning-message-one").innerText = '';
}
// JavaScript for Calculator Two
function calculateStatisticsTwo() {
const values = document.getElementById("values-input-two").value.split(",").map(Number);
if (values.some(isNaN)) {
alert("請輸入以逗號分隔的有效數字。");
return;
}
const stats = calculateStatistics(values);
document.getElementById("stat-count-two").innerText = stats.count;
document.getElementById("stat-sum-two").innerText = stats.sum.toFixed(10);
document.getElementById("stat-mean-two").innerText = stats.mean.toFixed(10);
document.getElementById("stat-median-two").innerText = stats.median.toFixed(10);
document.getElementById("stat-mode-two").innerText = stats.mode;
document.getElementById("stat-largest-two").innerText = stats.largest.toFixed(10);
document.getElementById("stat-smallest-two").innerText = stats.smallest.toFixed(10);
document.getElementById("stat-range-two").innerText = stats.range.toFixed(10);
document.getElementById("stat-geometric-mean-two").innerText = stats.geometricMean.toFixed(10);
document.getElementById("stat-stddev-two").innerText = stats.stddev.toFixed(10);
document.getElementById("stat-variance-two").innerText = stats.variance.toFixed(10);
document.getElementById("stat-sample-stddev-two").innerText = stats.sampleStddev.toFixed(10);
document.getElementById("stat-sample-variance-two").innerText = stats.sampleVariance.toFixed(10);
document.getElementById("stat-sorted-two").innerText = stats.sortedValues.join(', ');
}
function clearValuesTwo() {
document.getElementById("values-input-two").value = '';
document.getElementById("stat-count-two").innerText = '0';
document.getElementById("stat-sum-two").innerText = '0';
document.getElementById("stat-mean-two").innerText = 'NaN';
document.getElementById("stat-median-two").innerText = 'NaN';
document.getElementById("stat-mode-two").innerText = '';
document.getElementById("stat-largest-two").innerText = '-Infinity';
document.getElementById("stat-smallest-two").innerText = 'Infinity';
document.getElementById("stat-range-two").innerText = '-Infinity';
document.getElementById("stat-geometric-mean-two").innerText = 'NaN';
document.getElementById("stat-stddev-two").innerText = 'NaN';
document.getElementById("stat-variance-two").innerText = 'NaN';
document.getElementById("stat-sample-stddev-two").innerText = 'NaN';
document.getElementById("stat-sample-variance-two").innerText = 'NaN';
document.getElementById("stat-sorted-two").innerText = '';
}
function calculateStatistics(values) {
const sortedValues = [...values].sort((a, b) => a - b);
const sum = values.reduce((acc, val) => acc + val, 0);
const mean = sum / values.length;
const median = values.length % 2 === 0 ?
(sortedValues[values.length / 2 - 1] + sortedValues[values.length / 2]) / 2 :
sortedValues[Math.floor(values.length / 2)];
const mode = findMode(values);
const range = Math.max(...values) - Math.min(...values);
const variance = values.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) / values.length;
const stddev = Math.sqrt(variance);
const sampleVariance = values.length > 1 ? (variance * values.length) / (values.length - 1) : NaN;
const sampleStddev = Math.sqrt(sampleVariance);
const geometricMean = Math.pow(values.reduce((acc, val) => acc * val, 1), 1 / values.length);
return {
count: values.length,
sum,
mean,
median,
mode,
largest: Math.max(...values),
smallest: Math.min(...values),
range,
geometricMean,
stddev,
variance,
sampleStddev,
sampleVariance,
sortedValues,
};
}
function findMode(array) {
const frequency = {};
let maxFrequency = 0;
let mode = [];
array.forEach(value => {
frequency[value] = (frequency[value] || 0) + 1;
if (frequency[value] > maxFrequency) {
maxFrequency = frequency[value];
mode = [value];
} else if (frequency[value] === maxFrequency) {
mode.push(value);
}
});
return mode.length === 1 ? mode[0] : mode.join(', ');
}
使用統計計算器
本指南介紹了兩款多功能計算器,旨在輕鬆處理各種統計計算。無論您是學生、專業人士還是數據愛好者,這些工具都能簡化日常使用中的複雜計算。
計算器一:動態統計計算
目的
計算器一專為希望動態輸入數字並進行實時統計計算的用戶設計。它非常適合計算均值、方差、標準差及其他相關指標,而無需預先定義數據集。
主要特點
- 動態輸入:逐個添加數字,並查看所有輸入值的累計總和。
- 多功能操作:
- 基本統計:均值(平均數)、總和和數字計數。
- 高級指標:方差、標準差和幾何均值。
- 自定義計算:平方均值和平方和。
- 直觀按鈕:
- 快速添加值、切換符號或清除輸入。
- 專用函數用於指數和幾何均值計算。
如何使用
- 添加數字:
- 在輸入框中輸入一個數字,然後按
ADD
。
- 或者,使用數字按鈕直接輸入數字。
- 執行計算:
- 點擊所需操作的相應按鈕,例如
Σx
(總和)、x̄
(均值)或 σ²
(方差)。
- 清除值:
- 使用
C
清除當前輸入欄位。
- 使用
CAD
重置所有值。
- 查看結果:
- 所選計算的結果將顯示在計算器底部。
示例用例
- 您有一組測試分數:85、90、78、92。
- 使用
ADD
一次添加每個分數。
- 按
x̄
計算平均數或按 σ
計算標準差。
計算器二:批量數據統計分析
目的
計算器二非常適合分析作為逗號分隔值輸入的預定數據集。它適合快速洞察較大數據集。
主要特點
- 批量輸入:粘貼或輸入以逗號分隔的數值列表。
- 全面指標:
- 基本:計數、總和、均值、中位數和眾數。
- 高級:標準差、方差、幾何均值。
- 附加:最大值、最小值、範圍和排序數據。
- 詳細輸出:
- 結果以清晰的表格格式顯示,便於解釋。
如何使用
- 輸入數據:
- 在文本框中以逗號分隔的列表輸入數字。
- 示例:
10, 20, 30, 40, 50
。
- 執行計算:
- 點擊
Calculate
按鈕生成完整的統計分析。
- 清除數據:
- 使用
Clear
按鈕重置輸入和輸出欄位。
- 查看結果:
- 檢查表格以獲取均值、中位數、眾數等指標。
示例用例
- 您有一周的銷售數字:200、150、300、250、100。
- 在文本框中輸入這些值並按
Calculate
。
- 立即查看平均銷售額、數值範圍,甚至眾數。
為什麼使用這些計算器?
效率
快速執行多個計算,而無需手動計算數字。
準確性
依賴這些工具提供精確的結果,即使是最複雜的統計計算。
用戶友好設計
這些計算器具有直觀的界面和簡單的說明,從初學者到高級用戶都能輕鬆使用。
今天就開始探索這些計算器的強大功能,簡化您的統計分析!