Method: MoreMath::CantorPairingFunction.cantor_pairing_inv
- Defined in:
- lib/more_math/cantor_pairing_function.rb
.cantor_pairing_inv(c, n = 2) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/more_math/cantor_pairing_function.rb', line 33 def cantor_pairing_inv(c, n = 2) raise ArgumentError, "n is required to be >= 2" unless n >= 2 result = [] begin q = CantorPairingFunction.cantor_pairing_inv_q(c) y = c - CantorPairingFunction.cantor_pairing_inv_f(q) x = q - y result.unshift y c = x n -= 1 end until n <= 1 result.unshift x end |