Перейти к основному содержимому

27 записей с тегом "Math"

Посмотреть все теги

· 6 мин. чтения

1. Обзор

Полный квадрат — это число, которое можно представить как произведение двух равных целых чисел.

В этой статье мы обнаружим несколько способов определить, является ли целое число идеальным квадратом в Java. Кроме того, мы обсудим преимущества и недостатки каждого метода, чтобы определить его эффективность и какой из них самый быстрый.

2. Проверка того, является ли целое число идеальным квадратом

Как мы знаем, Java предоставляет нам два типа данных для определения целого числа. Первый — это int , который представляет число в 32 битах, а другой — long , который представляет число в 64 битах. В этой статье мы будем использовать тип данных long для обработки наихудшего случая (наибольшего возможного целого числа).

· 6 мин. чтения

1. Обзор

JSR 354 — «Валюта и деньги» касается стандартизации валют и денежных сумм в Java.

Его цель — добавить гибкий и расширяемый API в экосистему Java и сделать работу с денежными суммами проще и безопаснее.

JSR не попал в JDK 9, но является кандидатом для будущих выпусков JDK.

2. Настройка

· 3 мин. чтения

1. Обзор

Имея два целых числа, a и b , мы говорим, что они взаимно просты, если единственный множитель, на который они делятся, равен 1. Взаимно простые или взаимно простые числа являются синонимами относительно простых чисел.

В этом кратком руководстве мы рассмотрим решение этой проблемы с помощью Java.

2. Алгоритм наибольшего общего фактора

Оказывается, если наибольший общий делитель ( gcd ) двух чисел a и b равен 1 (т.е. gcd(a, b) = 1 ), то a и b взаимно просты. В результате определение того, являются ли два числа взаимно простыми, состоит просто в том, чтобы выяснить, равен ли НОД 1.

· 4 мин. чтения

1. Обзор

В этом руководстве мы поговорим о различных способах сравнения двойных значений в Java. В частности, это не так просто, как сравнивать другие примитивные типы. На самом деле, это проблематично во многих других языках, не только в Java.

Во-первых, мы объясним, почему использование простого оператора == является неточным и может привести к трудно отслеживаемым ошибкам во время выполнения. Затем мы покажем, как правильно сравнивать двойники в простой Java и в распространенных сторонних библиотеках.

2. Использование оператора ==

Неточность при сравнении с использованием оператора == вызвана тем, как значения типа double хранятся в памяти компьютера. Мы должны помнить, что существует бесконечное количество значений, которые должны поместиться в ограниченном пространстве памяти, обычно 64 бита. В результате мы не можем получить точное представление большинства значений типа double на наших компьютерах . Их нужно округлить, чтобы сохранить .

· 11 мин. чтения

1. Обзор

В этом уроке мы рассмотрим, как мы можем перемножить две матрицы в Java.

Поскольку в языке изначально не существует понятия матрицы, мы реализуем его сами, а также поработаем с несколькими библиотеками, чтобы посмотреть, как они обрабатывают умножение матриц.

В конце мы проведем небольшой сравнительный анализ различных решений, которые мы исследовали, чтобы определить самое быстрое из них.

2. Пример

· 7 мин. чтения

1. Обзор

В выпуске Java SE 17 представлено обновление API для генерации случайных чисел — JEP 356 .

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

В этом руководстве мы сравним новый API RandomGenerator со старым API Random . Мы рассмотрим перечисление всех доступных фабрик генераторов и выбор генератора на основе его имени или свойства.

Мы также изучим потокобезопасность и производительность нового API.

2. Старый случайный API

· 8 мин. чтения

1. Введение

В этом уроке мы обсудим решение проблемы k-комбинаций в Java .

Во-первых, мы обсудим и реализуем как рекурсивные, так и итеративные алгоритмы для генерации всех комбинаций заданного размера. Затем мы рассмотрим решения с использованием распространенных библиотек Java.

2. Обзор комбинаций

Проще говоря, комбинация — это подмножество элементов из заданного множества .

· 9 мин. чтения

1. Обзор

В этом уроке мы продемонстрируем классы BigDecimal и BigInteger .

Мы опишем два типа данных, их характеристики и сценарии их использования. Мы также кратко рассмотрим различные операции с использованием этих двух классов.

2. Большой десятичный

BigDecimal представляет неизменяемое десятичное число произвольной точности со знаком . Он состоит из двух частей:

· 5 мин. чтения

1. Введение

Java предоставляет некоторые примитивы, такие как int или long , для выполнения целочисленных операций. Но иногда нам нужно хранить числа, которые превышают доступные ограничения для этих типов данных.

В этом руководстве мы более подробно рассмотрим класс BigInteger . Мы проверим его структуру, заглянув в исходный код, и ответим на вопрос – как можно хранить большие числа за пределами доступных примитивных типов данных ?

2. Класс BigInteger

Как мы знаем, класс BigInteger используется для математических операций, включающих вычисления очень больших целых чисел, больших, чем примитивный тип long . Он представляет неизменяемые целые числа произвольной точности .

· 10 мин. чтения

1. Обзор

Наименьшее общее кратное (НОК) двух ненулевых целых чисел (a, b) — это наименьшее положительное целое число, которое идеально делится как на a , так и на b .

В этом уроке мы узнаем о различных подходах к нахождению LCM двух или более чисел. Мы должны отметить, что отрицательные целые числа и ноль не являются кандидатами для LCM .

2. Вычисление LCM двух чисел с использованием простого алгоритма

Мы можем найти НОК двух чисел, используя тот простой факт, что умножение есть многократное сложение .