VB.net - Складываем GOOGLE
(работа с очееень огрооомными числами)
Как известно VB.net имеет такие числовые типы
- Integer - обычное целое число(от -2147483648 до 2147483647)
- Long - целое число, длинное(от -9223372036854775808 до 9223372036854775807)
Но не смотря на то, что они используют довольно большие числа, они имеют верхний и нижний предел. По этому бывает, что их не хватает.
Например вычисление рассторяния между звезд. Для примера возьмем самое большое ЗНАЧИМОЕ число - Гугол.
Гуго́л (от англ. googol) — число, в десятичной системе счисления изображаемое единицей со 100 нулями:
10 000 000 000 000 000 000 000 000 000 000
000 000 000 000 000 000 000 000 000 000 000
000 000 000 000 000 000 000 000 000 000 000 000.
А теперь попробуем сложить +гугол и - гугол.
Для выполнения такой задачи нам потребуется импортировать дополнительную библиотеку (смотрите видео).
System.Numerics
System.Numerics.BigInteger - бесконечно огромные числа ( предел заключается в количестве оперативной памяти)
System.Numerics.Complex - комплексные числа
Пример:
Результат выполнения программы:
Исходный код:
'импортируем библиотеку System.Numerics
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Представим оогромные числа как текст
' 1 гугол (1 и 100 нулей) - примерно)
Dim Число1 As String = "10000700000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000"
' -1 гугол (-1 и 100 нулей) - примерно)
Dim Число2 As String = "-10000090000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000"
'создаем и обнуляем БОЛЬШОЙ ИНТЕДЖЕР
Dim A As System.Numerics.BigInteger = 0
Dim B As System.Numerics.BigInteger = 0
Dim C As System.Numerics.BigInteger = 0
'ловим исключения и ошибки
Try
'из текста в числа
A = System.Numerics.BigInteger.Parse(Число1)
B = System.Numerics.BigInteger.Parse(Число2)
'сложим 2 мега числа
C = A + B
'ответ в сообщении
MsgBox(C.ToString)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub
End Class
Смотреть видео
В начало
|