optimize ux
This commit is contained in:
11
chapter-03/binseq/binseq.py
Normal file
11
chapter-03/binseq/binseq.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from collections.abc import Callable
|
||||
|
||||
class REAL:
|
||||
def __init__(self, f: Callable[[int], str]) -> None:
|
||||
self.binseq = f
|
||||
|
||||
def as_string(self, w: int) -> str:
|
||||
s = ""
|
||||
for n in range(w):
|
||||
s += self.binseq(n)
|
||||
return s
|
20
chapter-03/binseq/main.py
Normal file
20
chapter-03/binseq/main.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from binseq import REAL
|
||||
from math import isqrt # integer sqrt
|
||||
|
||||
|
||||
def one_third(n):
|
||||
if n == 1: return "."
|
||||
if n % 2 == 0: return "0"
|
||||
return "1"
|
||||
|
||||
|
||||
def irrational(n):
|
||||
if n == 1: return "."
|
||||
if n != isqrt(n) * isqrt(n): return "1"
|
||||
return "0"
|
||||
|
||||
|
||||
x = REAL(one_third)
|
||||
y = REAL(irrational)
|
||||
|
||||
print("x: " + x.as_string(50) + "\ny: " + y.as_string(50))
|
BIN
chapter-03/dedekint/__pycache__/dedekint.cpython-313.pyc
Normal file
BIN
chapter-03/dedekint/__pycache__/dedekint.cpython-313.pyc
Normal file
Binary file not shown.
6
chapter-03/dedekint/dedekint.py
Normal file
6
chapter-03/dedekint/dedekint.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from collections.abc import Callable
|
||||
from gmpy2 import mpq
|
||||
|
||||
|
||||
class REAL:
|
||||
def __init__(self, f: Callable[[mpq], bool]): self.smaller=f
|
26
chapter-03/dedekint/main.py
Normal file
26
chapter-03/dedekint/main.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from dedekint import REAL
|
||||
# mpq for rational numbers
|
||||
from gmpy2 import mpq
|
||||
|
||||
|
||||
def sqrt_two(q):
|
||||
if q <= 0 or q * q < 2: return True
|
||||
return False
|
||||
|
||||
|
||||
x = REAL(sqrt_two)
|
||||
|
||||
print("1.41422 is smaller:", x.smaller(mpq(141422, 100000)))
|
||||
print("1.41421 is smaller:", x.smaller(mpq(141421, 100000)))
|
||||
|
||||
k = 0
|
||||
n = 1
|
||||
z = 0
|
||||
|
||||
for k in range(100):
|
||||
if x.smaller(mpq(z, n)):
|
||||
z = z + 1
|
||||
else:
|
||||
print(z, "/", n)
|
||||
z = (z - 1) * 10
|
||||
n = n * 10
|
Reference in New Issue
Block a user