Dart:
복소수와 함께 작업하기
작업 방법:
Dart 자체에는 복소수를 위한 내장 라이브러리가 포함되어 있지 않아, 사용자 지정 복소수 클래스를 구현하거나 타사 라이브러리를 사용해야 합니다. 복잡한 숫자를 지원하는 과학 계산 작업을 위한 인기 있는 선택은 package:scidart
입니다.
기본 복소수 클래스 구현하기
간단한 연산을 위해서는 자체 복소수 클래스를 쉽게 정의할 수 있습니다:
class Complex {
final double real;
final double imaginary;
Complex(this.real, this.imaginary);
// 두 복소수의 덧셈
Complex operator +(Complex other) {
return Complex(real + other.real, imaginary + other.imaginary);
}
// 쉬운 디버깅을 위한 문자열 표현
@override
String toString() => '${real} + ${imaginary}i';
}
void main() {
var number1 = Complex(3, 4);
var number2 = Complex(1, 2);
var sum = number1 + number2;
print(sum); // 4.0 + 6.0i
}
복잡한 연산을 위한 SciDart 사용하기
더 복잡한 연산이 필요하거나 성능이 중요할 때, package:scidart
는 복소수를 포함한 다른 과학 계산 기능에 대한 포괄적인 지원을 제공합니다. 먼저, SciDart를 pubspec.yaml에 추가하세요:
dependencies:
scidart: ^0.0.1-dev.9
복소수를 사용한 기본 연산을 SciDart로 수행하는 방법은 다음과 같습니다:
import 'package:scidart/numdart.dart';
void main() {
// 복소수 생성하기
var complexNum1 = Complex(real: 5, imaginary: 3);
var complexNum2 = Complex(real: 2, imaginary: 7);
// 덧셈
var sum = complexAdd(complexNum1, complexNum2);
// 곱셈
var product = complexMultiply(complexNum1, complexNum2);
print('Sum: ${sum.toString()}'); // Sum: Complex(real: 7.0, imaginary: 10.0)
print('Product: ${product.toString()}'); // Product: Complex(real: -11.0, imaginary: 41.0)
}
이 예제들은 Dart에서 복소수의 기본 조작 및 사용을 보여주며, SciDart 라이브러리를 통해 및 직접 구현을 통해 과학 계산 작업을 위한 Dart의 유연성과 강력함을 강조합니다.