Merge with cfg
This commit is contained in:
25
lib/utility/utility.ml
Normal file
25
lib/utility/utility.ml
Normal file
@ -0,0 +1,25 @@
|
||||
let rec pow a = function
|
||||
| 0 -> 1
|
||||
| 1 -> a
|
||||
| n ->
|
||||
let b = pow a (n / 2) in
|
||||
b * b * (if n mod 2 = 0 then 1 else a)
|
||||
|
||||
let rec powmod a d = function
|
||||
| 0 -> 1
|
||||
| 1 -> a mod d
|
||||
| n ->
|
||||
let b = (powmod a d (n / 2)) mod d in
|
||||
(((b * b) mod d) * (if n mod 2 = 0 then 1 else a)) mod d
|
||||
|
||||
|
||||
let alphabet = "abcdefghijklmnopqrstuvwxyz"
|
||||
let base = 26
|
||||
|
||||
let rec fromIntToString (x: int) : string =
|
||||
if x < 0 then
|
||||
""
|
||||
else if x < base then
|
||||
String.get alphabet x |> String.make 1
|
||||
else
|
||||
(fromIntToString (x/base - 1)) ^ (String.get alphabet (x mod base) |> String.make 1)
|
||||
Reference in New Issue
Block a user