Acaba denklemler farklı o yüzden mi böyle sonuç veriyor diye denedim ama denklem aynı kalsa bile yine aynı hatayı veriyor
import tinyec.ec as ec
field = ec.SubGroup(17, (15, 13), 100, 1)
curve = ec.Curve(0, 7, field)
tinyec/ec.py:115: UserWarning: Point (15, 13) is not on curve "undefined" => y^2 = x^3 + 7 (mod 17)
warnings.warn("Point (%d, %d) is not on curve %s" % (self.x, self.y, self.curve))
# Warning is generated because the generator point does not belong to the curve
for x in range(0,17):
for y in range(0,17):
p1 = ec.Point(curve, X, y)
if p1.on_curve:
print(x,y)
for x in range(0,17):
for y in range(0,17):
p2 = ec.Point(curve, X, y)
if p1.on_curve:
print(x,y)
print(p1 + p2)
(6, 6) off "undefined" => y^2 = x^3 + 7 (mod 17)
bu şekilde düzeltmeye çalıştım
Yani güya aramaya çalıştığım değer x=6 ve y=6 noktası
Normal değil mi? Zaten yukarıdaki satırlar bunu yönetmiyor mu?
abi bunu biraz daha açsan
yani hatayı almam normalse hata almamak için nerede değişiklik yapmam gerekiyor
Hata almıyorsun, for lar ile olası tüm x ve y değerlerini veriyorsun.
Bu değerlerden eğri üzerinde olmayanlar doğal olarak uyarı olarak gösteriliyor. False olanlar.
Bunu da tinyec kendi oluşturuyor uyarı olarak. Uyarılar hata değildir. Burada True olanlar aradığın x,y ikilileri,
True olan ikilileri alman yeterli.
Abi True’ları bir türlü alamadım
(6,6) değerini ben kendim elle girdim ve çıktı olarak 6 değerini vermesini istiyorduk çünkü
mod 17
n=100
gx = 15
gy = 13
için 6. değerin x ve y noktaları (6,6) çıkıyor
ama sonuç 6 alamadık
demekki bir yerde hata yaptım ama nerede onu bulamadım
p1 ve p2 yi ayrı ayrı yazıp, toplamadan çıktı ekranını paylaşır mısın?
Bunlar niçin kodun içinde?
Oradaki metni aynen yapıştırmayalım.
Python kodu taslağın yazmıştım yukarıda, onu kullanırmısın.
forlar ve sadece on_curve kontrolü yapacaksın.
Açıklama amaçlı satırları kod içinde kullanmışsın.
Aldığın hata da, altta yazıyor. syntax error diye.
Azimliyim kodu ben yazmayacağım, kendin okuyup anlayıp çözeceksin sonunda.
İnanıyorum sana.
bir de lazımsa p1 değerini print et hepsi bu.
Abi ben onları kodun parçası sandım
peki abi burada mesela ben sadece (6,11) noktasının kaçıncı sırada olduğu istesem ne yapmalıyım
print in yanına a=a+1 gibi bir sayaç koy, printle beraber onu da yazdır.
p =1
x = 15
y = 13
p =2
x = 2
y = 10
p=3
x = 8
y = 3
p=4
x = 12
y = 1
p=5
x = 6
y = 6
p=6
x = 5
y = 8
p=7
x = 10
y = 15
gibi
[/quote]
abi benim demek istediğim hepsini yazdırmasın sadece atıyorum örneğin
ben x=8 ve y=3 yazayım oda bunun p=3 değerine tekabül ettiğini yazdırsın
for döngüsü kullanma, değerleri ver, o da doğrudan doğrudan true false döndürsün.
abi öyle yapınca p yi alamadım
neden?
x= 6 y=11
print p1…
ama halbuki x=2 ve y=10 değeri p=2 ise olabilir