Apa arti // operator di Julia?

Aug 20 2020

katakan saya punya kode ini:

a = 4//2

Ini mengembalikan saya "2 // 1"

b = 4//3

Ini mengembalikan saya "4 // 3"

Saya mengerti bahwa ini mengembalikan nilai a dan b dalam bentuk yang paling sederhana. Tapi lalu bagaimana? Saya pikir operator ini mengembalikan nilai pembagian dalam bentuk bilangan bulat, menghilangkan pengingat. Tapi sepertinya bukan ini yang dilakukannya.

Saya sebenarnya memiliki kode ini:

x=Fun(identity,0..4π)
d=domain(x)
B=[ldirichlet(d),lneumann(d),rneumann(d)]
D=Derivative(d)
κ = 0.33205733621519630   
u0 = (1//2) * κ * x^2 

Saya ingin tahu apa (1 // 2) di sini. Dari apa yang saya pikirkan sebelumnya, ini seharusnya sama dengan nol, tetapi bukan itu yang diperlukan di sini. Bisakah seseorang menjelaskan apa yang terjadi di sini dan bagaimana // operator bekerja?

Jawaban

3 PrzemyslawSzufel Aug 20 2020 at 21:41

Di Julia ketika Anda tidak tahu sesuatu, hal pertama yang harus dilakukan adalah menekan ?untuk pergi ke mode bantuan REPL yang diwakili oleh help?>prompt. Setelah menekan ?ketik perintah yang ingin Anda ketahui:

help?> //
search: //

  //(num, den)

  Divide two integers or rational numbers, giving a Rational result.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> 3 // 5
  3//5

  julia> (3 // 5) // (2 // 1)
  3//10

Satu lagi cara berguna tambahan untuk memeriksa apa yang terjadi di Julia adalah dengan menggunakan dump:

julia> dump(2//4)
Rational{Int64}
  num: Int64 1
  den: Int64 2

Akhirnya, mengikuti komentar oleh @DNF perlu dicatat bahwa ada operator pembagian bilangan bulat ÷(dan fungsi yang sesuai div) yang menghitung x / y, terpotong menjadi bilangan bulat .:

julia> 13 ÷ 4
3