r
0 ile 1 arasında bir kayan nokta sayımız ve bir tam sayı var p
.
En küçük paydaya sahip tam sayı kesirini bulun r
, en azından p
basamaklı hassasiyetle yaklaşın.
- Girişler:
r
(bir kayan nokta sayısı) vep
(tamsayı). - Çıktılar:
a
veb
tamsayılar, buradaa/b
(kayan nokta olarak) rakamlarar
kadar yaklaşırp
.b
mümkün olan en küçük pozitif tamsayıdır.
Örneğin:
- eğer
r=0.14159265358979
vep=9
, - Sonra sonucudur
a=4687
veb=33102
, - çünkü
4687/33102=0.1415926530119026
.
Herhangi bir çözümün teorik olarak keyfi hassasiyet tipleriyle çalışması gerekir, ancak uygulamaların sabit hassasiyetli tiplerinden kaynaklanan sınırlamalar önemli değildir.
Kesinlik, " 0.
" içindeki rakamlardan sonra gelen basamak sayısı anlamına gelir r
. Böylece, eğer r=0.0123
ve p=3
sonra a/b
başlamalıdır 0.012
. p
Kesirli kısmının ilk haneleri r
0 ise, tanımsız davranış kabul edilebilir.
Kazanma kriterleri:
- Algoritmik olarak en hızlı algoritma kazanır. Hız O (p) cinsinden ölçülür.
- En hızlı çoklu algoritmalar varsa, en kısa kazanır.
- Kendi cevabım olası kazananlar kümesinden çıkarıldı.
Ps parçası aslında göründüğü kadar çok daha kolaydır matematik, Okumayı önermek bu yazı.
padEnd
ve ile uğraşıyorsunmatch
?slice
Her dizeyi doğru uzunlukta yapıp sonra çıkaramaz mısınız ?