public static T GetMode<T>(T[] arr) => arr.GroupBy(v => v).OrderByDescending(g => g.Count()).First().Key;
public static float GetMedian<T>(T[] arr) => ((float)Convert.ChangeType(arr[(int)MathF.Ceiling(((float)arr.Length + 1.0f) / 2.0f) - 1], typeof(float)) + (float)Convert.ChangeType(arr[(int)MathF.Floor(((float)arr.Length + 1.0f) / 2.0f) - 1], typeof(float))) / 2.0f;
public static float GetArithmAverage<T>(T[] arr) => arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Select(g => g / (float)arr.Length).Sum();
public static float GetGeomAverage<T>(T[] arr) => MathF.Pow(MathF.E, arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Select(g => MathF.Log(g) / (float)arr.Length).Sum());
public static float GetSigma<T>(T[] arr) => MathF.Sqrt(arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Select(g => MathF.Pow(g - GetArithmAverage(arr), 2.0f)).Sum() / (float)(arr.Length - 1));
public static float GetVar<T>(T[] arr) => arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Select(g => MathF.Pow(g - GetArithmAverage(arr), 2.0f)).Sum() / (float)(arr.Length - 1);
public static float GetSum<T>(T[] arr) => arr.Select(g => (float) Convert.ChangeType(g, typeof(float))).ToList().Sum();
public static T GetMax<T>(T[] arr) => (T)Convert.ChangeType(arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Max(), typeof(T));
public static T GetMin<T>(T[] arr) => (T)Convert.ChangeType(arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Min(), typeof(T));
public static T GetRange<T>(T[] arr) => (T)Convert.ChangeType(arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Max() - arr.Select(g => (float)Convert.ChangeType(g, typeof(float))).ToList().Min(), typeof(T));
Регистрирани потребители: Google [Bot]