Devreden sayılar

payı 1 olan paydası ise 2 den 1000 e kadar değişen sayıların ondalık yazılımında devreden sayılar mevcuttur.Örneğin
1/2=0.5
1/3=0.(3)
1/4=0.25
1/5=0.2
1/6=0.1(6)
1/7=0.(142857)
1/8=0.125
1/9=0.(1)
1/10=0.1
parantez içindeki sayılar devreden kısmı gösteriyor.SORU :Bu aralıktaki devreden kısmı en uzun olan sayı ve devreden kısmının uzunluğu nedir?

Bu soruda yaşadığım sıkıntılar şunlar virgülden sonra en fazla 17basamak geriye gidiliyor.
Tekrarın daha sonraki basamaklarda oluşma durumu var basamak sayısını artırabilirmiyim?

İkincisi de stringer bir ifadede sürekli tekrar eden bir bloğu bulmaya yarayan bir fonksiyon varmı?(tekrar eden şeyin ne olduğunu bilmiyoruz)

float sınıfı ile bu sınırı aşamıyoruz.

Kendi bölme fonksiyonunuzu yazın. Biz reel sayılarda bölme işlemini kağıt üzerinde nasıl yapıyorsak o da öyle çalışsın. Virgülü geçtikten sonra kalan sayı tekrar ettiği anda bölüm devirli demek.

1 Beğeni

Bir basamaklı sürekli tekrarlar tamam peki tekrar basamağı daha uzunsa ne olacak?
Bir eleman küme içerisinde tekrar ediyor diye devir oluştu dememizde doğru değil

Dikkat ederseniz virgülden sonra elde ettiğimiz herhangi bir kalanın tekrar etmesi durumunda devirli bir sonuç elde ediyoruz.

1 Beğeni

Nedemek istediğinizi anladım o açıdan düşünmemiştim başka yere takılıp kalmışım teşekkürler

1 Beğeni

Virgulden sonra sonsuz basamak bile alsan bu soruyu cevaplamana nasil yardimci olacak ki?

Neyse, sonsuz basamak istiyorsan aradigin sey arbitrary-precision aritmetik kutuphanesi. DuckDuckGo’da veya pip’te aratinca birkac tane cikiyor.

stringer nedir?

Surekli tekrari tanimlamak lazim. Bir sey kendini kac kere tekrarladiginda surekli olur?

Ve evet, asil cozum yolunu @EkremDincel vermis.

STR demek istemiştim şöyle düşünmüştüm
Eğer STR ye çevirip for ile içinde gezdiğimde en çok tekrar eden elemanları bulursam ve bunlar eşitsayıdaysa devreden kısmı belirleyebilir im
ve bunun içinde virgülden sonrasını biraz daha uzatmak istedim .Pek güzel bir yaklaşım değildi

Evet, cunku sayilarin sonsuza kadar tekrar edeceginin bir garantisi yok

0.1234123412341234 = 1234123412341234/10000000000000000

“str” "string"in kisaltmasi. “stringer” hatasini birkac kere daha duydum—kaynagi neresi acaba? Duzeltmek isterim.

Benimki tamamen şahsi hata birbirine yakın oldukları için yanlışlıkla yazmışım

Ekranınızı genişletirseniz sonucu daha rahat okursunuz:

from kalan import KesirliSayı

devir = 0
sonuç = None

sayı = KesirliSayı(1)
for i in range(2, 1000):
    sayı.payda = i
    if (j := sayı.cyclic_number_count()) > devir:
        devir = j
        sonuç = sayı.copy()

print("KesirliSayı(" + str(sonuç.pay) + ", " + str(sonuç.payda) + ")" )
print(sonuç)

KesirliSayı sınıfı için:

1 Beğeni