اعداد و ریاضیات در جولیا
عملیات ریاضی، توابع ریاضی داخلی، دقت اعداد و اعداد مختلط
عملیات ریاضی پایه
println(7 + 3) # 10 (جمع)
println(7 - 3) # 4 (تفریق)
println(7 * 3) # 21 (ضرب)
println(7 / 3) # 2.333... (تقسیم — همیشه Float!)
println(7 ÷ 3) # 2 (تقسیم صحیح — نماد ÷!)
println(7 % 3) # 1 (باقیمانده)
println(2 ^ 10) # 1024 (توان)
نماد
÷ برای تقسیم صحیح! در REPL با \div + Tab تایپش کنید. تقسیم معمولی / همیشه نتیجه اعشاری میدهد.توابع ریاضی داخلی
جولیا برای ریاضیات ساخته شده — همه چیز داخلی است:
| تابع | کار | مثال |
|---|---|---|
abs(x) | قدر مطلق | abs(-5) → 5 |
sqrt(x) یا √x | جذر | √16 → 4.0 |
cbrt(x) | جذر سوم | cbrt(27) → 3.0 |
exp(x) | e به توان x | exp(1) → 2.718... |
log(x) | لگاریتم طبیعی | log(exp(1)) → 1.0 |
sin, cos, tan | مثلثاتی (رادیان) | sin(0) → 0.0 |
floor(x) | گرد به پایین | floor(3.7) → 3.0 |
ceil(x) | گرد به بالا | ceil(3.2) → 4.0 |
round(x) | گرد کردن | round(3.5) → 4.0 |
gcd(a, b) | ب.م.م | gcd(12, 18) → 6 |
lcm(a, b) | ک.م.م | lcm(4, 6) → 12 |
factorial(n) | فاکتوریل | factorial(5) → 120 |
بیشینه و کمینه
println(max(3, 7, 1, 9)) # 9
println(min(3, 7, 1, 9)) # 1
# برای آرایه:
nums = [4, 8, 15, 16]
println(maximum(nums)) # 16 (برای کل آرایه!)
println(minimum(nums)) # 4
توجه:
max چند آرگومان میگیرد، اما maximum روی کل آرایه کار میکند!اعداد مختلط — داخلی!
جولیا یکی از معدود زبانهایی است که اعداد مختلط را داخلی دارد:
z1 = 3 + 4im # im پسوند موهومی
z2 = 1 - 2im
println(z1 + z2) # 4 + 2im
println(abs(z1)) # 5.0 (قدر مطلق مختلط)
println(real(z1)) # 3 (جزء حقیقی)
println(imag(z1)) # 4 (جزء موهومی)
اعداد گویا (Fractional)
a = 1 // 3 # کسر دقیق!
b = 2 // 3
println(a + b) # 1 // 1 (دقیقاً ۱!)
println(float(a)) # 0.333... (تبدیل به اعشاری)
ثابتهای ریاضی
println(π) # pi = 3.14159...
println(e) # عدد اویلر
println(ℯ) # همان e با نماد!
دقت اعشاری — مراقب باشید!
println(0.1 + 0.2) # 0.30000000000000004 (!)
println(0.1 + 0.2 == 0.3) # false!
# راه حل: isapprox
println(isapprox(0.1 + 0.2, 0.3)) # true
این مشکل مال جولیا نیست — همه زبانها با Float64 این را دارند (استاندارد IEEE 754). برای مقایسه اعشاریها همیشه از
isapprox استفاده کنید.فرمت اعداد
x = 3.14159
println(round(x, digits=2)) # 3.14
println(round(x, sigdigits=3)) # 3.14
n = 1234567.891
println(round(n, digits=1)) # 1234567.9
این مبحث بخشی از دوره آموزش کامل جولیا است.