Си шарп кубический корень

Кубический корень из большого числа

Добрый день ! Нужно реализовать алгоритм(«Алгоритм в столбик») вычисления кубического корня из числа .
Некоторые числа вычисляет отлично . А вот допустим на числе 647157163020642422784 ломается. Ответ вместо 8649744 выдает 8644444 крашится после вычисления 3 числа .

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Numerics; namespace CubeCor { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int[] constant = { 0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000 }; private void button1_Click(object sender, EventArgs e) { int size = Convert.ToInt32(t_num.Text.Length / 3); int tail = Convert.ToInt32(t_num.Text.Length % 3); int all = (tail > 0) ? (size + 1) : (size); int a = 0; BigInteger b = 0; BigInteger c = 0; BigInteger d = 0; int x = 0; int[] data = new int[all]; if (tail > 0) { data[0] = Convert.ToInt32(t_num.Text.Substring(0, tail)); for (int i = 0; i  size; i++) { data[i + 1] = Convert.ToInt32(t_num.Text.Substring(tail + i * 3, 3)); } } else { for (int i = 0; i  size; i++) { data[i] = Convert.ToInt32(t_num.Text.Substring(i * 3, 3)); } } for (int i = 1; i  constant.Length; i++) { if (constant[i] == data[0]) { a = i; break; } if (constant[i] > data[0]) { a = i - 1; break; } } b = data[0] - constant[a]; for (int i = 1; i  all ; i++) { c = b * 1000 + data[i]; for (int i1 = 0; i1  10; i1++) { d = (a * a) * 300 * i1 + a * 30 * (i1 * i1) + (i1 * i1 * i1); if (d == c) { x = i1; break; } if (d > c) { x = i1 - 1; d = (a * a) * 300 * x + a * 30 * (x * x) + (x * x * x); break; } } a = a * 10 + x; b = c - d; log.AppendText("a = " + a.ToString() + "\n"); log.AppendText("b = " + b.ToString() + "\n"); log.AppendText("c = " + c.ToString() + "\n"); log.AppendText("d = " + d.ToString() + "\n"); log.AppendText("x = " + x.ToString() + "\n"); } log.AppendText("Число = " + a.ToString() + "\n"); log.AppendText("Остаток = " + b.ToString() + "\n"); } } }

Источник

Вывод кубического корня

Извлечение кубического корня из длинного числа
string st = Console.ReadLine(); BigInteger b=BigInteger.Parse(st); b = BigInteger.Pow(b,1/3);.

Вычисление кубического корня
скрипт запускается, но функция cubicRoot не работает infix 5 ~= a ~= b = a — b < h && b — a < h.

Извлечение кубического корня
кубический корень из под x на C++: y = pow(x, 1/3) если задать x = 0.2, то на выходе y = 1. Хотя.

Вычисление кубического корня
Вычислите значение кубического корня (Рис.1) с точностью EPS с использованием итерационной формулы.

Math.Sqrt(число из которого хотите извлечь корень);

ЦитатаСообщение от sasha_sinica Посмотреть сообщение

Добавлено через 6 минут

Math.Pow(8,1.0/3.0);//8 число 1.0/3.0 кубический корень //1.0/2.0 квадратный корень просто через степень выщитывать кони не квадратные надо

Источник

Math Класс

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Предоставляет константы и статические методы для тригонометрических, логарифмических и иных общих математических функций.

public ref class Math abstract sealed
public ref class Math sealed
Public NotInheritable Class Math

Примеры

В следующем примере используется несколько математических и тригонометрических функций из Math класса для вычисления внутренних углов трапеции.

/// /// The following class represents simple functionality of the trapezoid. /// using namespace System; public ref class MathTrapezoidSample < private: double m_longBase; double m_shortBase; double m_leftLeg; double m_rightLeg; public: MathTrapezoidSample( double longbase, double shortbase, double leftLeg, double rightLeg ) < m_longBase = Math::Abs( longbase ); m_shortBase = Math::Abs( shortbase ); m_leftLeg = Math::Abs( leftLeg ); m_rightLeg = Math::Abs( rightLeg ); >private: double GetRightSmallBase() < return (Math::Pow( m_rightLeg, 2.0 ) - Math::Pow( m_leftLeg, 2.0 ) + Math::Pow( m_longBase, 2.0 ) + Math::Pow( m_shortBase, 2.0 ) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase)); >public: double GetHeight() < double x = GetRightSmallBase(); return Math::Sqrt( Math::Pow( m_rightLeg, 2.0 ) - Math::Pow( x, 2.0 ) ); >double GetSquare() < return GetHeight() * m_longBase / 2.0; >double GetLeftBaseRadianAngle() < double sinX = GetHeight() / m_leftLeg; return Math::Round( Math::Asin( sinX ), 2 ); >double GetRightBaseRadianAngle() < double x = GetRightSmallBase(); double cosX = (Math::Pow( m_rightLeg, 2.0 ) + Math::Pow( x, 2.0 ) - Math::Pow( GetHeight(), 2.0 )) / (2 * x * m_rightLeg); return Math::Round( Math::Acos( cosX ), 2 ); >double GetLeftBaseDegreeAngle() < double x = GetLeftBaseRadianAngle() * 180 / Math::PI; return Math::Round( x, 2 ); >double GetRightBaseDegreeAngle() < double x = GetRightBaseRadianAngle() * 180 / Math::PI; return Math::Round( x, 2 ); >>; int main() < MathTrapezoidSample^ trpz = gcnew MathTrapezoidSample( 20.0,10.0,8.0,6.0 ); Console::WriteLine( "The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0" ); double h = trpz->GetHeight(); Console::WriteLine( "Trapezoid height is: ", h.ToString() ); double dxR = trpz->GetLeftBaseRadianAngle(); Console::WriteLine( "Trapezoid left base angle is: Radians", dxR.ToString() ); double dyR = trpz->GetRightBaseRadianAngle(); Console::WriteLine( "Trapezoid right base angle is: Radians", dyR.ToString() ); double dxD = trpz->GetLeftBaseDegreeAngle(); Console::WriteLine( "Trapezoid left base angle is: Degrees", dxD.ToString() ); double dyD = trpz->GetRightBaseDegreeAngle(); Console::WriteLine( "Trapezoid left base angle is: Degrees", dyD.ToString() ); > 
/// /// The following class represents simple functionality of the trapezoid. /// using System; namespace MathClassCS < class MathTrapezoidSample < private double m_longBase; private double m_shortBase; private double m_leftLeg; private double m_rightLeg; public MathTrapezoidSample(double longbase, double shortbase, double leftLeg, double rightLeg) < m_longBase = Math.Abs(longbase); m_shortBase = Math.Abs(shortbase); m_leftLeg = Math.Abs(leftLeg); m_rightLeg = Math.Abs(rightLeg); >private double GetRightSmallBase() < return (Math.Pow(m_rightLeg,2.0) - Math.Pow(m_leftLeg,2.0) + Math.Pow(m_longBase,2.0) + Math.Pow(m_shortBase,2.0) - 2* m_shortBase * m_longBase)/ (2*(m_longBase - m_shortBase)); >public double GetHeight() < double x = GetRightSmallBase(); return Math.Sqrt(Math.Pow(m_rightLeg,2.0) - Math.Pow(x,2.0)); >public double GetSquare() < return GetHeight() * m_longBase / 2.0; >public double GetLeftBaseRadianAngle() < double sinX = GetHeight()/m_leftLeg; return Math.Round(Math.Asin(sinX),2); >public double GetRightBaseRadianAngle() < double x = GetRightSmallBase(); double cosX = (Math.Pow(m_rightLeg,2.0) + Math.Pow(x,2.0) - Math.Pow(GetHeight(),2.0))/(2*x*m_rightLeg); return Math.Round(Math.Acos(cosX),2); >public double GetLeftBaseDegreeAngle() < double x = GetLeftBaseRadianAngle() * 180/ Math.PI; return Math.Round(x,2); >public double GetRightBaseDegreeAngle() < double x = GetRightBaseRadianAngle() * 180/ Math.PI; return Math.Round(x,2); >static void Main(string[] args) < MathTrapezoidSample trpz = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0); Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0"); double h = trpz.GetHeight(); Console.WriteLine("Trapezoid height is: " + h.ToString()); double dxR = trpz.GetLeftBaseRadianAngle(); Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians"); double dyR = trpz.GetRightBaseRadianAngle(); Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians"); double dxD = trpz.GetLeftBaseDegreeAngle(); Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees"); double dyD = trpz.GetRightBaseDegreeAngle(); Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees"); >> > 
open System /// The following class represents simple functionality of the trapezoid. type MathTrapezoidSample(longbase, shortbase, leftLeg, rightLeg) = member _.GetRightSmallBase() = (Math.Pow(rightLeg, 2.) - Math.Pow(leftLeg, 2.) + Math.Pow(longbase, 2.) + Math.Pow(shortbase, 2.) - 2. * shortbase * longbase) / (2. * (longbase - shortbase)) member this.GetHeight() = let x = this.GetRightSmallBase() Math.Sqrt(Math.Pow(rightLeg, 2.) - Math.Pow(x, 2.)) member this.GetSquare() = this.GetHeight() * longbase / 2. member this.GetLeftBaseRadianAngle() = let sinX = this.GetHeight() / leftLeg Math.Round(Math.Asin sinX,2) member this.GetRightBaseRadianAngle() = let x = this.GetRightSmallBase() let cosX = (Math.Pow(rightLeg, 2.) + Math.Pow(x, 2.) - Math.Pow(this.GetHeight(), 2.))/(2. * x * rightLeg) Math.Round(Math.Acos cosX, 2) member this.GetLeftBaseDegreeAngle() = let x = this.GetLeftBaseRadianAngle() * 180. / Math.PI Math.Round(x, 2) member this.GetRightBaseDegreeAngle() = let x = this.GetRightBaseRadianAngle() * 180. / Math.PI Math.Round(x, 2) let trpz = MathTrapezoidSample(20., 10., 8., 6.) printfn "The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0" let h = trpz.GetHeight() printfn $"Trapezoid height is: " let dxR = trpz.GetLeftBaseRadianAngle() printfn $"Trapezoid left base angle is: Radians" let dyR = trpz.GetRightBaseRadianAngle() printfn $"Trapezoid right base angle is: Radians" let dxD = trpz.GetLeftBaseDegreeAngle() printfn $"Trapezoid left base angle is: Degrees" let dyD = trpz.GetRightBaseDegreeAngle() printfn $"Trapezoid left base angle is: Degrees" 
'The following class represents simple functionality of the trapezoid. Class MathTrapezoidSample Private m_longBase As Double Private m_shortBase As Double Private m_leftLeg As Double Private m_rightLeg As Double Public Sub New(ByVal longbase As Double, ByVal shortbase As Double, ByVal leftLeg As Double, ByVal rightLeg As Double) m_longBase = Math.Abs(longbase) m_shortBase = Math.Abs(shortbase) m_leftLeg = Math.Abs(leftLeg) m_rightLeg = Math.Abs(rightLeg) End Sub Private Function GetRightSmallBase() As Double GetRightSmallBase = (Math.Pow(m_rightLeg, 2) - Math.Pow(m_leftLeg, 2) + Math.Pow(m_longBase, 2) + Math.Pow(m_shortBase, 2) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase)) End Function Public Function GetHeight() As Double Dim x As Double = GetRightSmallBase() GetHeight = Math.Sqrt(Math.Pow(m_rightLeg, 2) - Math.Pow(x, 2)) End Function Public Function GetSquare() As Double GetSquare = GetHeight() * m_longBase / 2 End Function Public Function GetLeftBaseRadianAngle() As Double Dim sinX As Double = GetHeight() / m_leftLeg GetLeftBaseRadianAngle = Math.Round(Math.Asin(sinX), 2) End Function Public Function GetRightBaseRadianAngle() As Double Dim x As Double = GetRightSmallBase() Dim cosX As Double = (Math.Pow(m_rightLeg, 2) + Math.Pow(x, 2) - Math.Pow(GetHeight(), 2)) / (2 * x * m_rightLeg) GetRightBaseRadianAngle = Math.Round(Math.Acos(cosX), 2) End Function Public Function GetLeftBaseDegreeAngle() As Double Dim x As Double = GetLeftBaseRadianAngle() * 180 / Math.PI GetLeftBaseDegreeAngle = Math.Round(x, 2) End Function Public Function GetRightBaseDegreeAngle() As Double Dim x As Double = GetRightBaseRadianAngle() * 180 / Math.PI GetRightBaseDegreeAngle = Math.Round(x, 2) End Function Public Shared Sub Main() Dim trpz As MathTrapezoidSample = New MathTrapezoidSample(20, 10, 8, 6) Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") Dim h As Double = trpz.GetHeight() Console.WriteLine("Trapezoid height is: " + h.ToString()) Dim dxR As Double = trpz.GetLeftBaseRadianAngle() Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians") Dim dyR As Double = trpz.GetRightBaseRadianAngle() Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians") Dim dxD As Double = trpz.GetLeftBaseDegreeAngle() Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees") Dim dyD As Double = trpz.GetRightBaseDegreeAngle() Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees") End Sub End Class 

Поля

Представляет основание натурального логарифма, определяемое константой e .

Представляет отношение длины окружности к ее диаметру, определяемое константой π.

Представляет число радианов в полном обороте, заданное константой τ.

Методы

Возвращает абсолютное значение числа Decimal.

Источник

кубический корень

Как извлечь кубический корень
как извлечь кубический корень?

Кубический корень из большого числа
Добрый день ! Нужно реализовать алгоритм("Алгоритм в столбик") вычисления кубического корня из.

Кубический корень из отрицательного числа
я рисую графики функций, и кубический корень пишу как math.pow(x, 1.0/3.0), но этот код выдаёт.

Кубический сплайн
Здравствуйте! Нужно реализовать кубический сплайн есть код, помогите исправить ошибки: using.

Console.WriteLine(Math.Pow(8, 1d/3));
double x1 = Math.Pow((-q / 2) + Math.Sqrt(S), (1d/3)) + Math.Pow((-q / 2) - Math.Sqrt(S), (1d/3))- (b / (3 * a));
Math.Pow((-q / 2) - Math.Sqrt(S), 1.0 / 3.0);

Т.е. тут С# каким то образом не может число -0,1923 возвести в степень 1/3. С положительным числом все нормально

Добавлено через 2 часа 52 минуты
Нашел тему https://msdn.microsoft.com/ru-. s.95).aspx
В ней запись: x < 0 but not NegativeInfinity; y - is not an integer, NegativeInfinity, or PositiveInfinity
Возвращаемое значение NaN
И как тогда в С# извлекать кубический корень из отрицательного числа?

Добавлено через 14 минут
Нашел решение, может кому то пригодиться

public static double Sqrt3(double x) { return Math.Sign(x)*Math.Pow(Math.Abs(x),1/3.0); }

Кубический сплайн
Не могу понять, почему не связываются массивы из мейна в функцию в другом классе, которая.

Нарисовать кубический сплайн
Доброго времени суток! Собственно имеется класс: class CubicSpline < SplineTuple.

Построить кубический сплайн
Помогите исправить ошибки в коде. Нужно построить кубический сплайн. Трехдиагональную матрицу.

Как найти кубический квадрат?
*удлинение*

Источник

Читайте также:  Name of all html tags
Оцените статью