113 lines
3.8 KiB
Ruby
Executable File
113 lines
3.8 KiB
Ruby
Executable File
#!/usr/bin/ruby
|
|
# coding: utf-8
|
|
|
|
#######################################
|
|
#
|
|
# Marcin Woźniak
|
|
# s434812
|
|
#
|
|
########################################
|
|
|
|
load '../module.rb'
|
|
|
|
##################################################
|
|
# Zadania z konca wykladu suma punktow
|
|
#
|
|
# Niech E/F7 będzie postaci
|
|
# E : Y^2 = X^3 + 1
|
|
#
|
|
# Niech P=(1,3) Q=(2,4) R=(6,0)
|
|
#
|
|
# Obliczyc:
|
|
# 1) -Q
|
|
# 2) R + [0,0]
|
|
# 3) P + Q
|
|
# 4) 2R
|
|
#
|
|
# Rozwiązanie:
|
|
#a = 0
|
|
#b = 1
|
|
#p = 7
|
|
#
|
|
#xp = 1
|
|
#yp = 3
|
|
#
|
|
#xq = 2
|
|
#yq = 4
|
|
#
|
|
#xr = 6
|
|
#yr = 0
|
|
#
|
|
## 1) -Q
|
|
#puts punktPrzeciwny(xq,yq).inspect
|
|
#
|
|
## 2) R + [0,0]
|
|
#puts sumaPunktow(a,b,p,xr,yr,"e","e").inspect
|
|
#
|
|
## 3) P + Q
|
|
#puts sumaPunktow(a,b,p,xp,yp,xq,yq).inspect
|
|
#
|
|
## 4) 2R
|
|
#puts sumaPunktow(a,b,p,xp,yp,xp,yp).inspect
|
|
###################################################
|
|
|
|
##################################################
|
|
# Zadanie od profersora
|
|
#a=239614427021073265587611886177902927263167863041565491257781227550405368115731464059190159
|
|
#b=447169285435982716467332439542997876345372330045685811964291613238129105735899852114277221
|
|
#p=1183779584357076950937981497685946292711107412152534481102525547387604378262522402526266939
|
|
#px=285113634279465403319996581740169338329454608669814309137990174814243655992779447106132850
|
|
#py=598700530906084162596261101440667782569915319623798143751082061599951188013331503150304328
|
|
#
|
|
#
|
|
#puts "Zadanie 1 #{generatorKrzywej(p).inspect}"
|
|
#puts "Zadanie 2 #{punktNaKrzywej(a,b,p).inspect}"
|
|
#puts "Zadanie 3 #{czyPunktNalezyDoKrzywej(a,b,p,px,py).inspect}"
|
|
#puts "Zadanie 4 #{punktPrzeciwny(px,py).inspect}"
|
|
#puts "Zadanie 5"
|
|
#pp=sumaPunktow(a,b,p,px,py,px,py)
|
|
#qx,qy=pp[0],pp[1]
|
|
#r=sumaPunktow(a,b,p,px,py,qx,qy)
|
|
#puts "P+P=Q = #{pp.inspect}"
|
|
#puts "P+Q=R = #{r.inspect}"
|
|
#
|
|
#################################################
|
|
#Zadania od Marcina
|
|
#puts `clear`
|
|
#p = 489198001832658669053371291694019055502521600295245000665130252689633682157211441103746103
|
|
#a = 143655542375421547495538657783935617582804745476111687935604061101439410572992748159327949
|
|
#b = 317483121238416221164186798475625852751072649807905602729473072669192329094502393489452530
|
|
#px = 214920231222257412002472184644105947527864300425093926130634470978902408198296382507987372
|
|
#py = 213782952948563488188771820496583435437623918801486982688994669228366002105132455299788553
|
|
#
|
|
#puts "Zadanie1: #{generatorKrzywej(p).inspect}"
|
|
#puts "Zadanie2: #{punktNaKrzywej(a,b,p).inspect}"
|
|
#puts "Zadanie3: #{czyPunktNalezyDoKrzywej(a,b,p,px,py).inspect}"
|
|
#puts "Zadanie4: #{punktPrzeciwny(px,py).inspect}"
|
|
#puts "Zadanie5:"
|
|
#pe = sumaPunktow(a,b,p,px,py,"e","e")
|
|
#pmp = sumaPunktow(a,b,p,px,py,px,-py)
|
|
#pp = sumaPunktow(a,b,p,px,py,px,py)
|
|
#puts "P + e = #{pe.inspect}"
|
|
#puts "P + (-P) = #{pmp.inspect}"
|
|
#puts "P + P = #{pp.inspect}"
|
|
#
|
|
#qx = 642259555221384310824793582418757985600466641224722883964129011723625337870528779957486982
|
|
#qy = 217544632016156259911730007881694454319320868952565819223745628076715981593127804307986145
|
|
#puts "P + Q = #{sumaPunktow(a,b,p,px,py,qx,qy)}"
|
|
#
|
|
|
|
p = 1538255343667180808195708522177986895059786729714603384471797563076417208690821410309839367
|
|
a = 715342794670902354305018359597199506955388115300843026803751557193763639728084344185723
|
|
b = 1310687127378189233907141356419474988172837541544430152741262021759183741113116543743146348
|
|
puts "Zadanie1: #{generatorKrzywej(p).inspect}"
|
|
puts "Zadanie2: #{punktNaKrzywej(a,b,p).inspect}"
|
|
px = 594932631894926193421437283987806574765302728699542654903674886448369552319213626349713311
|
|
py = 957752861784564367578830846183560854043857673111182304497829726211341185920049820320440474
|
|
qx = 876637806459659863220283205686618437204645589144030749155094254881674465651564141161317623
|
|
qy = 466327193499960026299197596349518168121975030810688292370617392939557876329218294835906002
|
|
pp = sumaPunktow(a,b,p,px,py,px,py)
|
|
pq = sumaPunktow(a,b,p,px,py,qx,qy)
|
|
puts "P + P = #{pp.inspect}"
|
|
puts "P + Q = #{pq.inspect}"
|