本文整理汇总了Python中math._ceil函数的典型用法代码示例。如果您正苦于以下问题:Python _ceil函数的具体用法?Python _ceil怎么用?Python _ceil使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了_ceil函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: rotozoom
def rotozoom(self, surface, angle, size):
"""
Return Surface rotated and resized by the given angle and size.
"""
if not angle:
width = int(surface.getWidth()*size)
height = int(surface.getHeight()*size)
return self.scale(surface, (width, height))
theta = angle*self.deg_rad
width_i = int(surface.getWidth()*size)
height_i = int(surface.getHeight()*size)
cos_theta = _fabs( _cos(theta) )
sin_theta = _fabs( _sin(theta) )
width_f = int( _ceil((width_i*cos_theta)+(height_i*sin_theta)) )
if width_f % 2:
width_f += 1
height_f = int( _ceil((width_i*sin_theta)+(height_i*cos_theta)) )
if height_f % 2:
height_f += 1
surf = Surface((width_f,height_f), BufferedImage.TYPE_INT_ARGB)
at = AffineTransform()
at.translate(width_f/2, height_f/2)
at.rotate(-theta)
g2d = surf.createGraphics()
ot = g2d.getTransform()
g2d.setTransform(at)
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR)
g2d.drawImage(surface, -width_i//2, -height_i//2, width_i, height_i, None)
g2d.setTransform(ot)
g2d.dispose()
return surf
开发者ID:jggatc,项目名称:pyj2d,代码行数:31,代码来源:transform.py
示例2: rotozoom
def rotozoom(self, surface, angle, size):
"""
Return Surface rotated and resized by the given angle and size.
"""
if not angle:
width = int(surface.get_width()*size)
height = int(surface.get_height()*size)
return self.scale(surface, (width, height))
theta = angle*self.deg_rad
width_i = int(surface.get_width()*size)
height_i = int(surface.get_height()*size)
cos_theta = _fabs( _cos(theta) )
sin_theta = _fabs( _sin(theta) )
width_f = int( _ceil((width_i*cos_theta)+(height_i*sin_theta)) )
if width_f % 2:
width_f += 1
height_f = int( _ceil((width_i*sin_theta)+(height_i*cos_theta)) )
if height_f % 2:
height_f += 1
surf = Surface((width_f,height_f))
surf.saveContext()
surf.translate(width_f/2.0, height_f/2.0)
surf.rotate(-theta)
surf.drawImage(surface.canvas, 0, 0, surface.get_width(), surface.get_height(), -width_i/2, -height_i/2, width_i, height_i)
surf.restoreContext()
return surf
开发者ID:jggatc,项目名称:pyjsdl,代码行数:26,代码来源:transform.py
示例3: round
def round(space, number, ndigits=0):
"""round(number[, ndigits]) -> floating point number
Round a number to a given precision in decimal digits (default 0 digits).
This always returns a floating point number. Precision may be negative."""
# Algortithm copied directly from CPython
f = 1.0
if ndigits < 0:
i = -ndigits
else:
i = ndigits
while i > 0:
f = f*10.0
i -= 1
if ndigits < 0:
number /= f
else:
number *= f
if number >= 0.0:
number = _floor(number + 0.5)
else:
number = _ceil(number - 0.5)
if ndigits < 0:
number *= f
else:
number /= f
return space.wrap(number)
开发者ID:alkorzt,项目名称:pypy,代码行数:27,代码来源:operation.py
示例4: sample
def sample(self, population, k):
n = len(population)
if not 0 <= k <= n:
raise ValueError, 'sample larger than population'
random = self.random
_int = int
result = [None] * k
setsize = 21
if k > 5:
setsize += 4 ** _ceil(_log(k * 3, 4))
if n <= setsize or hasattr(population, 'keys'):
pool = list(population)
for i in xrange(k):
j = _int(random() * (n - i))
result[i] = pool[j]
pool[j] = pool[n - i - 1]
else:
try:
selected = set()
selected_add = selected.add
for i in xrange(k):
j = _int(random() * n)
while j in selected:
j = _int(random() * n)
selected_add(j)
result[i] = population[j]
except (TypeError, KeyError):
if isinstance(population, list):
raise
return self.sample(tuple(population), k)
return result
开发者ID:connoryang,项目名称:dec-eve-serenity,代码行数:35,代码来源:random.py
示例5: sample
def sample(self, population, k, generator=None):
# This function exactly parallels the code in Random.py.
# Comments are therefore omitted, to save space.
n = len(population)
if not 0 <= k <= n:
raise ValueError('sample larger than population')
randrange = self.randrange
result = [None] * k
setsize = 21
if k > 5:
setsize += 4 ** _ceil(_log(k * 3, 4))
if n <= setsize or hasattr(population, 'keys'):
pool = list(population)
for i in xrange(k):
j = randrange(n-i, generator=generator)
result[i] = pool[j]
pool[j] = pool[n-i-1]
else:
try:
selected = set()
selected_add = selected.add
for i in xrange(k):
j = randrange(n, generator=generator)
while j in selected:
j = randrange(n, generator=generator)
selected_add(j)
result[i] = population[j]
except (TypeError, KeyError):
if isinstance(population, list):
raise
return self.sample(tuple(population), k, generator)
return result
开发者ID:toffer,项目名称:RandomSources,代码行数:33,代码来源:quantumRandom.py
示例6: sample
def sample(self, population, k):
"""Chooses k unique random elements from a population sequence."""
# https://github.com/python/cpython/blob/2.7/Lib/random.py#L275
n = len(population)
if not 0 <= k <= n:
raise ValueError("sample larger than population")
random = self.random
_int = int
result = [None] * k
setsize = 21 # size of a small set minus size of an empty list
if k > 5:
setsize += 4 ** _ceil(_log(k * 3, 4)) # table size for big sets
if n <= setsize or hasattr(population, "keys"):
# An n-length list is smaller than a k-length set, or this is a
# mapping type so the other algorithm wouldn't work.
pool = list(population)
for i in xrange(k): # invariant: non-selected at [0,n-i)
j = _int(random() * (n-i))
result[i] = pool[j]
pool[j] = pool[n-i-1] # move non-selected item into vacancy
else:
try:
selected = set()
selected_add = selected.add
for i in xrange(k):
j = _int(random() * n)
while j in selected:
j = _int(random() * n)
selected_add(j)
result[i] = population[j]
except (TypeError, KeyError): # handle (at least) sets
if isinstance(population, list):
raise
return self.sample(tuple(population), k)
return result
开发者ID:raohmaru,项目名称:CFC,代码行数:35,代码来源:utils_random.py
示例7: dup_revert
def dup_revert(f, n, K):
"""
Compute ``f**(-1)`` mod ``x**n`` using Newton iteration.
This function computes first ``2**n`` terms of a polynomial that
is a result of inversion of a polynomial modulo ``x**n``. This is
useful to efficiently compute series expansion of ``1/f``.
Examples
========
>>> from sympy.polys.domains import QQ
>>> from sympy.polys.densetools import dup_revert
>>> f = [-QQ(1,720), QQ(0), QQ(1,24), QQ(0), -QQ(1,2), QQ(0), QQ(1)]
>>> dup_revert(f, 8, QQ)
[61/720, 0/1, 5/24, 0/1, 1/2, 0/1, 1/1]
"""
g = [K.revert(dup_TC(f, K))]
h = [K.one, K.zero, K.zero]
N = int(_ceil(_log(n, 2)))
for i in xrange(1, N + 1):
a = dup_mul_ground(g, K(2), K)
b = dup_mul(f, dup_sqr(g, K), K)
g = dup_rem(dup_sub(a, b, K), h, K)
h = dup_lshift(h, dup_degree(h), K)
return g
开发者ID:jenshnielsen,项目名称:sympy,代码行数:32,代码来源:densetools.py
示例8: sample
def sample(self, population, k):
if isinstance(population, _Set):
population = tuple(population)
if not isinstance(population, _Sequence):
raise TypeError('Population must be a sequence or set. For dicts, use list(d).')
randbelow = self._randbelow
n = len(population)
if not 0 <= k <= n:
raise ValueError('Sample larger than population')
result = [None]*k
setsize = 21
if k > 5:
setsize += 4**_ceil(_log(k*3, 4))
if n <= setsize:
pool = list(population)
for i in range(k):
j = randbelow(n - i)
result[i] = pool[j]
pool[j] = pool[n - i - 1]
else:
selected = set()
selected_add = selected.add
for i in range(k):
j = randbelow(n)
while j in selected:
j = randbelow(n)
selected_add(j)
result[i] = population[j]
return result
开发者ID:johndpope,项目名称:sims4-ai-engine,代码行数:29,代码来源:random.py
示例9: dup_revert
def dup_revert(f, n, K):
"""
Compute ``f**(-1)`` mod ``x**n`` using Newton iteration.
This function computes first ``2**n`` terms of a polynomial that
is a result of inversion of a polynomial modulo ``x**n``. This is
useful to efficiently compute series expansion of ``1/f``.
Examples
========
>>> from sympy.polys import ring, QQ
>>> R, x = ring("x", QQ)
>>> f = -QQ(1,720)*x**6 + QQ(1,24)*x**4 - QQ(1,2)*x**2 + 1
>>> R.dup_revert(f, 8)
61/720*x**6 + 5/24*x**4 + 1/2*x**2 + 1
"""
g = [K.revert(dup_TC(f, K))]
h = [K.one, K.zero, K.zero]
N = int(_ceil(_log(n, 2)))
for i in range(1, N + 1):
a = dup_mul_ground(g, K(2), K)
b = dup_mul(f, dup_sqr(g, K), K)
g = dup_rem(dup_sub(a, b, K), h, K)
h = dup_lshift(h, dup_degree(h), K)
return g
开发者ID:asmeurer,项目名称:sympy,代码行数:32,代码来源:densetools.py
示例10: sample
def sample(self, population, k):
"""Chooses k unique random elements from a population sequence.
Returns a new list containing elements from the population while
leaving the original population unchanged. The resulting list is
in selection order so that all sub-slices will also be valid random
samples. This allows raffle winners (the sample) to be partitioned
into grand prize and second place winners (the subslices).
Members of the population need not be hashable or unique. If the
population contains repeats, then each occurrence is a possible
selection in the sample.
To choose a sample in a range of integers, use xrange as an argument.
This is especially fast and space efficient for sampling from a
large population: sample(xrange(10000000), 60)
"""
# Sampling without replacement entails tracking either potential
# selections (the pool) in a list or previous selections in a set.
# When the number of selections is small compared to the
# population, then tracking selections is efficient, requiring
# only a small set and an occasional reselection. For
# a larger number of selections, the pool tracking method is
# preferred since the list takes less space than the
# set and it doesn't suffer from frequent reselections.
n = len(population)
if not 0 <= k <= n:
raise ValueError("sample larger than population")
random = self.random
_int = int
result = [None] * k
setsize = 21 # size of a small set minus size of an empty list
if k > 5:
setsize += 4 ** _ceil(_log(k * 3, 4)) # table size for big sets
if n <= setsize or hasattr(population, "keys"):
# An n-length list is smaller than a k-length set, or this is a
# mapping type so the other algorithm wouldn't work.
pool = list(population)
for i in xrange(k): # invariant: non-selected at [0,n-i)
j = _int(random() * (n-i))
result[i] = pool[j]
pool[j] = pool[n-i-1] # move non-selected item into vacancy
else:
try:
selected = set()
selected_add = selected.add
for i in xrange(k):
j = _int(random() * n)
while j in selected:
j = _int(random() * n)
selected_add(j)
result[i] = population[j]
except (TypeError, KeyError): # handle (at least) sets
if isinstance(population, list):
raise
return self.sample(tuple(population), k)
return result
开发者ID:zegab,项目名称:diane,代码行数:60,代码来源:random.py
示例11: sample
def sample(self, population: Iterable[T], k: int) -> List[T]:
"""Chooses k unique random elements from a population sequence or set.
Returns a new list containing elements from the population while
leaving the original population unchanged. The resulting list is
in selection order so that all sub-slices will also be valid random
samples. This allows raffle winners (the sample) to be partitioned
into grand prize and second place winners (the subslices).
Members of the population need not be hashable or unique. If the
population contains repeats, then each occurrence is a possible
selection in the sample.
To choose a sample in a range of integers, use range as an argument.
This is especially fast and space efficient for sampling from a
large population: sample(range(10000000), 60)
"""
# Sampling without replacement entails tracking either potential
# selections (the pool) in a list or previous selections in a set.
# When the number of selections is small compared to the
# population, then tracking selections is efficient, requiring
# only a small set and an occasional reselection. For
# a larger number of selections, the pool tracking method is
# preferred since the list takes less space than the
# set and it doesn't suffer from frequent reselections.
if isinstance(population, _Sequence):
populationseq = population
elif isinstance(population, _Set):
populationseq = list(population)
else:
raise TypeError("Population must be a sequence or set. For dicts, use list(d).")
randbelow = self._randbelow
n = len(populationseq)
if not (0 <= k and k <= n):
raise ValueError("Sample larger than population")
result = [cast(T, None)] * k
setsize = 21 # size of a small set minus size of an empty list
if k > 5:
setsize += 4 ** _ceil(_log(k * 3, 4)) # table size for big sets
if n <= setsize:
# An n-length list is smaller than a k-length set
pool = list(populationseq)
for i in range(k): # invariant: non-selected at [0,n-i)
j = randbelow(n-i)
result[i] = pool[j]
pool[j] = pool[n-i-1] # move non-selected item into vacancy
else:
selected = Set[int]()
selected_add = selected.add
for i in range(k):
j = randbelow(n)
while j in selected:
j = randbelow(n)
selected_add(j)
result[i] = populationseq[j]
return result
开发者ID:FlorianLudwig,项目名称:mypy,代码行数:59,代码来源:random.py
示例12: is_prime3
def is_prime3(num):
'''Tests if a given number is prime. Written with reduce.'''
if num == 2:
return True
elif num % 2 == 0 or num <= 1:
return False
root = _ceil(_sqrt(num))
return _reduce(lambda acc, d: False if not acc or num % d == 0 else True,
range(3, root+1, 2), True)
开发者ID:fosskers,项目名称:python-libs,代码行数:9,代码来源:primes.py
示例13: is_prime2
def is_prime2(num):
'''Tests if a given number is prime. Written with a map.'''
if num == 2:
return True
elif num % 2 == 0 or num <= 1:
return False
root = _ceil(_sqrt(num))
return all(map(lambda div: False if num % div == 0 else True,
range(3, root+1, 2)))
开发者ID:fosskers,项目名称:python-libs,代码行数:9,代码来源:primes.py
示例14: execute
def execute(self, target, *args):
# get func source without first 'def func(...):' line
src = getsource(target)
src = '\n'.join( src.splitlines()[1:] )
# extract benchmark title
if target.func_doc is not None:
self.benchtitle = target.func_doc
else:
self.benchtitle = src.splitlines()[0].strip()
# XXX we ignore args
timer = Timer(src, globals=target.func_globals)
if self.name.startswith('timeit_'):
# from IPython.Magic.magic_timeit
repeat = 3
number = 1
for i in range(1,10):
t = timer.timeit(number)
if t >= 0.2:
number *= (0.2 / t)
number = int(_ceil(number))
break
if t <= 0.02:
# we are not close enough to that 0.2s
number *= 10
else:
# since we are very close to be > 0.2s we'd better adjust number
# so that timing time is not too high
number *= (0.2 / t)
number = int(_ceil(number))
break
self.benchtime = min(timer.repeat(repeat, number)) / number
# 'bench_<smth>'
else:
self.benchtime = timer.timeit(1)
开发者ID:101man,项目名称:sympy,代码行数:44,代码来源:benchmarking.py
示例15: dup_zz_hensel_lift
def dup_zz_hensel_lift(p, f, f_list, l, K):
"""
Multifactor Hensel lifting in `Z[x]`.
Given a prime `p`, polynomial `f` over `Z[x]` such that `lc(f)`
is a unit modulo `p`, monic pair-wise coprime polynomials `f_i`
over `Z[x]` satisfying::
f = lc(f) f_1 ... f_r (mod p)
and a positive integer `l`, returns a list of monic polynomials
`F_1`, `F_2`, ..., `F_r` satisfying::
f = lc(f) F_1 ... F_r (mod p**l)
F_i = f_i (mod p), i = 1..r
References
==========
1. [Gathen99]_
"""
r = len(f_list)
lc = dup_LC(f, K)
if r == 1:
F = dup_mul_ground(f, K.gcdex(lc, p**l)[0], K)
return [ dup_trunc(F, p**l, K) ]
m = p
k = r // 2
d = int(_ceil(_log(l, 2)))
g = gf_from_int_poly([lc], p)
for f_i in f_list[:k]:
g = gf_mul(g, gf_from_int_poly(f_i, p), p, K)
h = gf_from_int_poly(f_list[k], p)
for f_i in f_list[k + 1:]:
h = gf_mul(h, gf_from_int_poly(f_i, p), p, K)
s, t, _ = gf_gcdex(g, h, p, K)
g = gf_to_int_poly(g, p)
h = gf_to_int_poly(h, p)
s = gf_to_int_poly(s, p)
t = gf_to_int_poly(t, p)
for _ in range(1, d + 1):
(g, h, s, t), m = dup_zz_hensel_step(m, f, g, h, s, t, K), m**2
return dup_zz_hensel_lift(p, g, f_list[:k], l, K) \
+ dup_zz_hensel_lift(p, h, f_list[k:], l, K)
开发者ID:abhi98khandelwal,项目名称:sympy,代码行数:56,代码来源:factortools.py
示例16: p010
def p010(ceiling):
numbers = list(range(2, ceiling))
i = 0
while i < ceiling - 2:
jump = numbers[i]
numbers[i + jump:ceiling - 2:jump] = _repeat(0, _ceil((len(numbers) - i) / jump) - 1)
i += 1
while i < ceiling - 2 and numbers[i] == 0:
i += 1
return sum(numbers)
开发者ID:tylercrompton,项目名称:project-euler,代码行数:10,代码来源:p010.py
示例17: getrandbits
def getrandbits(self, bitlength):
"""Return a Python long with `bitlength` random bits."""
num_bytes = int(_ceil(bitlength / 8.0))
bits_to_zero = (bitlength % 8)
mask = 0xff if not bits_to_zero else 0xff >> (8 - bits_to_zero)
s = array('B', rand_bytes(num_bytes))
s[0] = s[0] & mask
# Alas, int.from_bytes is only available in Python 3. Calling
# `hexlify` is very slightly faster than b.encode('hex'). Also
# note that on Python 2, long(_) is slightly faster than int(_)
# for large numbers.
return long(hexlify(s), 16)
开发者ID:coruus,项目名称:pottery,代码行数:13,代码来源:_random.py
示例18: _size_estimate
def _size_estimate(self, text=None): #for browsers HTML5Canvas not implemented
if not self.char_size:
self.char_size = self._get_char_size()
self.fontname = ','.join(Font._font_family[0])
self.fontstyle = ''
size = []
for char in text:
try:
size.append(self.char_size[char] * self.fontsize)
except KeyError:
size.append(self.char_size['x'] * self.fontsize)
x = _ceil( sum(size) )
return x
开发者ID:jggatc,项目名称:pyjsdl,代码行数:13,代码来源:font.py
示例19: sample
def sample(self, population, k):
"""Chooses k unique random elements from a population sequence.
Returns a new list containing elements from the population while
leaving the original population unchanged. The resulting list is
in selection order so that all sub-slices will also be valid random
samples. This allows raffle winners (the sample) to be partitioned
into grand prize and second place winners (the subslices).
Members of the population need not be hashable or unique. If the
population contains repeats, then each occurrence is a possible
selection in the sample.
To choose a sample in a range of integers, use xrange as an argument.
This is especially fast and space efficient for sampling from a
large population: sample(xrange(10000000), 60)
"""
n = len(population)
if not 0 <= k <= n:
raise ValueError("sample larger than population")
random = self.random
_int = int
result = [None] * k
setsize = 21
if k > 5:
setsize += 4 ** _ceil(_log(k * 3, 4))
if n <= setsize or hasattr(population, "keys"):
pool = list(population)
for i in xrange(k):
j = _int(random() * (n - i))
result[i] = pool[j]
pool[j] = pool[n - i - 1]
else:
try:
selected = set()
selected_add = selected.add
for i in xrange(k):
j = _int(random() * n)
while j in selected:
j = _int(random() * n)
selected_add(j)
result[i] = population[j]
except (TypeError, KeyError):
if isinstance(population, list):
raise
return self.sample(tuple(population), k)
return result
开发者ID:webiumsk,项目名称:WOT-0.9.12,代码行数:51,代码来源:random.py
示例20: check_resampled
def check_resampled(freq_new):
# resample
resampled = s.resample(freq_new)
# new number of samples
new_samples = _ceil(samples * freq_new / freq)
# length Y
self.assertEqual(len(resampled), new_samples)
# length X
self.assertEqual(len(resampled.get_times()), len(resampled))
# sampling frequency in Hz
self.assertEqual(resampled.get_sampling_freq(), freq_new)
# duration differs less than 1s from the original
self.assertLess(abs(resampled.get_duration() - samples / freq), 1)
# start timestamp
self.assertEqual(resampled.get_start_time(), start)
# end timestamp
self.assertEqual(resampled.get_end_time(), start + resampled.get_duration())
# start time
self.assertEqual(resampled.get_signal_nature(), nature)
开发者ID:MPBA,项目名称:pyHRV,代码行数:20,代码来源:test_general.py
注:本文中的math._ceil函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论