Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print "sqrt 2"
- sqrt: :square-root
- x: (1 + sqrt 2)
- {
- 1 3 7 17 41 99
- 1 =
- 2 = 3 - 1
- 3 =
- 4 = 3 + 1 >1 , <=4 , f 4 = [ 3 1]
- --------------
- 5 = 7 - 3 + 1 , >4 , >=11 , f 5 = [7 -3 1]
- 6 = 7 - 1 , f 6 = [7 -1]
- 7 =
- 8 = 7 + 1
- 9 = 7 + 3 - 1
- 10 = 7 + 3
- 11 = 7 + 3 + 1 . f 11 = [7 3 1]
- ------------------
- 12 = 17 - 7 + 3 - 1 >11 , <=28 , f 12 = [18 -7 1]
- 13
- 14
- 15
- 16 = 17 - 1
- 17 =
- 18 = 17 + 1
- 19 = 17 + 3 - 1
- 28 = 17 + 7 + 3 + 1
- --------------------------
- 47 =
- }
- {
- >> f 50 == [41 7 3 -1]
- 41 / sqrt 2 = 29
- 7 / sqrt 2 = 5
- 3 / sqrt 2 = 2
- -1 / sqrt 2 = -1
- 29 + 5 + 2 - 1 = 35 , 50 / sqrt 2 = 35.35533905932737 , (50 * 50) - (2 * ( 35 * 35)) = 50
- 100 / sqrt 2 = 70.71067811865474
- 50 * sqrt 2 = 70.71067811865476
- 200 / sqrt 2 = 141.42135623730948
- 100 * sqrt 2 = 141.42135623730948
- }
- index: [0 1 3 7 17 41 99 ]
- m: 0
- limit: clear copy [] ;
- foreach n index [ m: m + n insert tail limit m ]
- ;---------------------------------
- f: func [ n /local m tmp i][
- i: 1
- tmp: clear copy []
- for m -1 + length? limit 1 -1 [
- if all [ n > limit/:m n <= limit/(m + 1) ][n: n - index/(m + 1 ) insert tail tmp index/(m + 1) * i if n < 0 [ i: i * -1 ] n: abs n ]
- ]
- return tmp
- ]
- ;----------------------
- fn: func [ n /local m tmp i][
- i: 1
- tmp: clear copy []
- for m -1 + length? limit 1 -1 [
- if all [ n > limit/:m n <= limit/(m + 1) ][n: n - index/(m + 1 ) insert tail tmp (m ) * i if n < 0 [ i: i * -1 ] n: abs n ]
- ]
- return tmp
- ]
- ;-----------------------
- gn: func [ n /local v u m ][
- v: fn n
- u: clear copy []
- foreach m v [ insert tail u reduce [reduce [sign? m (abs m) - 1 ]]]
- return u
- ]
- ;------------------
- g: func [ v /local a b y n ][ a: 0 b: 0 n: 0 y: x foreach m v [ n: n + 1 if all [ n = length? v 1 = abs m ][y: 1] a: a + ((sign? m) * power y abs m) b: b + ((sign? m) / power y abs m ) ] return a * b ]
- ;---------------------------------------------------------
- h: func [ v /local a b y n ][ a: 0 b: 0 n: 0 y: x foreach m v [ a: a + ((sign? m/1) * power y abs m/2)
- b: b + either 1 = mod m/2 2 [((-1 * sign? m/1) / power y abs m/2 )][ ((sign? m/1) / power y abs m/2 ) ]
- ] return a * b ]
- ;---------------------------------------------------------------------
- ;==============================
- {
- (1+x^6+x^7)*(1+1/x^6-1/x^7) =x^7+x^6+x+1 = 679 ;(x^2 - 2 x - 1) (x^12 + 3 x^11 + 7 x^10 + 17 x^9 + 41 x^8 + 99 x^7 + 240 x^6 - 99 x^5 + 41 x^4 - 17 x^3 + 7 x^2 - 3 x + 1) (3 * 2 + 1)
- }
- halt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement