การทำงานกับตัวเลขซับซ้อน

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 สำหรับงานการคำนวณทางวิทยาศาสตร์