Exemplo n.º 1
0
 def mean_time_system(self):
     Lsys = self.mean_system()
     a5 = self.pr_infinitesimal_generator()
     p0 = a5[0]
     if (self.M >= self.N + self.r) and (self.M >= self.N
                                         and self.M < self.N + self.r):
         sum1 = sum([
             p0 * (self.M - n) * self.eps * math.perm(self.M, n) *
             ((self.eps * self.theta / self.C)**n)
             for n in range(self.N + 1)
         ])
         sum2 = sum([
             p0 * (self.M - n) * self.eps * math.perm(self.M, n) *
             ((self.theta / self.C)**self.N) * ((self.eps**n) / math.prod([
                 self.C / self.theta + i * self.gama
                 for i in range(1, n - self.N + 1)
             ])) for n in range(self.N + 1, self.M)
         ])
         dominator1 = sum1 + sum2
         Wsys1 = Lsys / dominator1
         return Wsys1
     else:
         dominator2 = sum([
             p0 * (self.M - n) * self.eps * math.perm(self.M, n) *
             ((self.eps * self.theta / self.C)**n) for n in range(self.M)
         ])
         Wsys2 = Lsys / dominator2
         return Wsys2
Exemplo n.º 2
0
def birthdayParadoxNoCollisionProbability(tValue):
    # result = 1
    # for i in range(tValue):
    #     result *= 1 - (i/365)
    # print(result)
    print("Probability that there is no birthday collision",
          perm(365, tValue) / pow(365, tValue))
    print("Probability that there is at least 1 birthday collision",
          1 - (perm(365, tValue) / pow(365, tValue)))
Exemplo n.º 3
0
def nPr(n: int, r: int) -> int:
    """
    Equivalent to:

    math.factorial(n) // math.factorial(n - r)
    """
    return math.perm(n, r)
Exemplo n.º 4
0
def random_perm_generator(
        cards_set: List[Card],
        num_opponent_unknown_cards: int,
        num_permutations_requested: Optional[int],
        seed: Optional[Any] = None) -> List[Permutation[Card]]:
    """
  A simple implementation of a PermutationsGenerator. It generates permutations
  randomly where the first num_opponent_unknown_cards are sorted until it
  manages to generate num_permutations_requested unique examples.
  Advantages: High dispersion. Fast for a small number of permutations.
  Disadvantages: Slow for a high number of permutations requested (e.g., 1000).
  """
    assert num_opponent_unknown_cards <= len(cards_set)
    rng = random.Random(seed)
    permutations = set()
    if num_permutations_requested is None:
        num_unknown_cards = len(cards_set)
        num_permutations_requested = \
          math.comb(num_unknown_cards, num_opponent_unknown_cards) * \
          math.perm(num_unknown_cards - num_opponent_unknown_cards)
    while len(permutations) < num_permutations_requested:
        permutation = [card.copy() for card in cards_set]
        rng.shuffle(permutation)
        # noinspection PyTypeChecker
        permutation = sorted(permutation[:num_opponent_unknown_cards]) + \
                      permutation[num_opponent_unknown_cards:]
        permutations.add(tuple(permutation))
    permutations = list(list(p) for p in permutations)
    return permutations
Exemplo n.º 5
0
    def permutations(self, arg_list):
        """wrapper of math package - return permutation of two number
        """
        if len(arg_list) > 2:
            raise bad_args

        result = math.perm(arg_list[0], arg_list[1])
        return self.convert_int(result)
Exemplo n.º 6
0
def math_solution(nth: int):
    perm = [0] * 10
    digits = list(range(0, 10))
    nth -= 1  # convert to zero-indexed base
    for i in range(0, 10):
        p = math.perm(10 - i - 1)  # number of permutations from n items
        perm[i] = digits[nth // p]
        nth = nth % p
        digits.remove(perm[i])
    return perm
Exemplo n.º 7
0
def find(solution, elements, n, k):
    # print(solution, elements, n, k)
    if not elements:
        return solution
    s = 0
    cnt_p = math.perm(len(elements) - 1)
    for e in elements:
        if s + cnt_p >= k:
            elements.remove(e)
            return find(solution + str(e), elements, n, k - s)
        s += cnt_p
Exemplo n.º 8
0
def pont41(label):
    print(label)
    kiiratas("math.ceil(0)", math.ceil(0))
    kiiratas("math.ceil(-8)", math.ceil(-8))
    kiiratas("math.ceil(13.58)", math.ceil(13.58))
    kiiratas("math.ceil(-13.58)", math.ceil(-13.58))
    print()
    kiiratas("math.comb(90, 5)", math.comb(90, 5))  #3.8. verziótól
    kiiratas("math.comb(45, 6)", math.comb(45, 6))
    kiiratas("math.comb(35, 7)", math.comb(35, 7))
    print()
    kiiratas("math.perm(5, 2)", math.perm(5, 2))  #3.8. verziótól
    kiiratas("math.perm(10, 3)", math.perm(10, 3))
    kiiratas("math.perm(5, 1)", math.perm(5, 1))
    print()
    kiiratas("math.copysign(15, 0.0)", math.copysign(15, 0.0))
    kiiratas("math.copysign(15, -0.0)", math.copysign(15, -0.0))
    kiiratas("math.copysign(13.62, 3.0)", math.copysign(13.62, 3.0))
    kiiratas("math.copysign(13.62, -1.0)", math.copysign(13.62, -1.0))
    print()
    kiiratas("math.fabs(0)", math.fabs(0))
    kiiratas("math.fabs(58)", math.fabs(58))
    kiiratas("math.fabs(-13)", math.fabs(-13))
    kiiratas("math.fabs(-13.5878)", math.fabs(-13.5878))
    print()
    kiiratas("math.factorial(0)", math.factorial(0))
    kiiratas("math.factorial(1)", math.factorial(1))
    kiiratas("math.factorial(5)", math.factorial(5))
    print()
    kiiratas("math.floor(0)", math.floor(0))
    kiiratas("math.floor(-8)", math.floor(-8))
    kiiratas("math.floor(13.58)", math.floor(13.58))
    kiiratas("math.floor(-13.58)", math.floor(-13.58))
    print()
    kiiratas("math.gcd(120, 25)", math.gcd(120, 25))
    kiiratas("math.gcd(24, 60)", math.gcd(24, 60))
    print()
    kiiratas("math.isqrt(68)", math.isqrt(68))  #3.8. verziótól
    kiiratas("math.isqrt(125)", math.isqrt(125))
    print()
Exemplo n.º 9
0
 def mean_service(self):
     a3 = self.pr_infinitesimal_generator()
     p0 = a3[0]
     if (self.M >= self.N + self.r):
         sum1_1 = sum([
             p0 * i * math.perm(self.M, i) *
             ((self.eps * self.theta / self.C)**i)
             for i in range(self.N + 1)
         ])
         sum1_2 = self.N * sum([
             p0 * math.perm(self.M, i) * ((self.theta / self.C)**self.N) *
             ((self.eps)**i / math.prod([
                 self.C / self.theta + j * self.gama
                 for j in range(1, i - self.N + 1)
             ])) for i in range(self.N + 1, self.N + self.r + 1)
         ])
         Lser_1 = sum1_1 + sum1_2
         return Lser_1
     elif (self.M >= self.N and self.M < self.N + self.r):
         sum2_1 = sum([
             p0 * i * ((self.eps * self.theta / self.C)**i) *
             math.perm(self.M, i) for i in range(self.N + 1)
         ])
         sum2_2 = self.N * sum([
             p0 * math.perm(self.M, i) * ((self.theta / self.C)**self.N) *
             ((self.eps)**i / math.prod([
                 self.C / self.theta + j * self.gama
                 for j in range(1, i - self.N + 1)
             ])) for i in range(self.N + 1, self.M + 1)
         ])
         Lser_2 = sum2_1 + sum2_2
         return Lser_2
     else:
         Lser_3 = sum([
             p0 * i * ((self.eps * self.theta / self.C)**i) *
             math.perm(self.M, i) for i in range(self.M + 1)
         ])
         return Lser_3
Exemplo n.º 10
0
    def _math38_():

        prior = 0.8
        likelihoods = [0.625, 0.84, 0.30]
        r = 650320427
        s = r**2
        print("3.8 math")
        print(math.dist([3], [-8]))
        print(math.hypot(1, 1))
        print(math.prod(likelihoods, start=prior))
        print(math.perm(10, 3))
        print(math.comb(10, 3))
        print(math.isqrt(s - 1))
        print("--------")
Exemplo n.º 11
0
 def pr_block(self):
     a2 = self.pr_infinitesimal_generator()
     p0 = a2[0]
     if (self.M >= self.N + self.r):
         prod_1 = ((self.theta / self.C)**(self.N)) * (math.perm(
             self.M, self.N + self.r))
         prod_2 = ((self.eps)**(self.N + self.r)) / (math.prod([
             self.C / self.theta + i * self.gama
             for i in range(1, self.r + 1)
         ]))
         p_block = prod_1 * prod_2 * p0
         return p_block
     else:
         return 0
Exemplo n.º 12
0
 def pr_infinitesimal_generator(self):
     prob = []
     if (self.M >= self.N + self.r):
         p01_1 = sum([
             math.perm(self.M, n) * (((self.eps * self.theta) / self.C)**n)
             for n in range(1, self.N + 1)
         ])
         p01_2 = sum([
             math.perm(self.M, n) * (self.eps**n) /
             (math.prod([(self.C / self.theta + i * self.gama)
                         for i in range(1, n - self.N + 1)]))
             for n in range(self.N + 1, self.N + self.r + 1)
         ])
         p01 = (1 + p01_1 + p01_2)**(-1)
         prob.append(p01)
     elif (self.M >= self.N and self.M < self.N + self.r):
         p02_1 = sum([
             math.perm(self.M, n) * (((self.eps * self.theta) / self.C)**n)
             for n in range(1, self.N + 1)
         ])
         p02_2 = sum([
             math.perm(self.M, n) * (self.eps**n) /
             (math.prod([(self.C / self.theta + i * self.gama)
                         for i in range(1, n - self.N + 1)]))
             for n in range(self.N + 1, self.M + 1)
         ])
         p02 = (1 + p02_1 + p02_2)**(-1)
         prob.append(p02)
     else:
         p03_1 = sum([
             math.perm(self.M, n) * (((self.eps * self.theta) / self.C)**n)
             for n in range(1, self.M)
         ])
         p03 = (1 + p03_1)**(-1)
         prob.append(p03)
     return prob
 def rec(self, n, k):
     if n < k:
         return 0
     if k == 1:
         return factorial(n-1) % 1000000007
     if n == k:
         return 1
     res = 0
     for i in range(1,n+1):
         if n-i < k - 1:
             break
         # delta = (self.rec(n-i, k-1) * comb(n-1,i-1) * factorial(i-1)) % 1000000007
         delta = (self.rec(n-i, k-1) * (perm(n-1,i-1) % 1000000007)) % 1000000007
         res = (res + delta) % 1000000007
     print(n, k, res)
     return res % 1000000007
Exemplo n.º 14
0
 def sortBruteForce(self):
     self.setStatus("Sorted")
     self.algorithm = 'BruteForce'
     print('Running Brute Force Sort')
     bestRoute = []
     bestRouteMiles = 90000
     packageList = self.packageList
     i = 0
     perm = math.perm(len(packageList))
     print("number of perms " + str(perm))
     for x in itertools.permutations(packageList):
         if calculateMileage(x) < bestRouteMiles:
             bestRouteMiles = calculateMileage(x)
             bestRoute = x
         i += 1
         if i % 1000000 == 0:
             print("perm " + str(round((i / perm) * 100, 2)) +
                   "% complete ")
     self.packageList = bestRoute
Exemplo n.º 15
0
"""
Number of possibilities to choose k items from n items without repetition with order
------------------------------------------------------------------------------------
Input:      n   (int)   number of all elements
            k   (int)   number of elements to choose
                        whether k = None, function returns n!

Output:     (int)       number of possibilities
                        n! / (n - k)! when k < n
                        n! when k = None
                        0 when k > n
"""
# This function is available from Python 3.8

from math import perm

# You have a deck contained 52 cards. You should select 5 of them.
# How many ways can 5 cards be chosen?

n = 52  # size of deck
k = 5  # number of selection

# NOTE: Permutation isn't equals to combination. If you want to calculate
# chance, use combination instead of permutation.
# Result of combination: 2,598,960
result = perm(n, k)
print('You can pick {} cards from {} carded deck in {} different ways.'.format(
    k, n, result))
Exemplo n.º 16
0
import math
print(math.perm(3,2))
Exemplo n.º 17
0
print("The factorial of 0 is :", math.factorial(0))  #The factorial of 0 is : 1
print("The factorial of 4 is :",
      math.factorial(4))  #The factorial of 4 is : 24
print("The factorial of 7 is :",
      math.factorial(7))  #The factorial of 7 is : 5040
print("The factorial of 9 is :",
      math.factorial(9))  #The factorial of 9 is : 362880
print("The factorial of 15 is :",
      math.factorial(15))  #The factorial of 15 is : 1307674368000
'''
4- math.perm(n, k=None)
Return the number of ways to choose k items from n items without repetition and with order.
Evaluates to n! / (n - k)! when k <= n and evaluates to zero when k > n.
If k is not specified or is None, then k defaults to n and the function returns n!.
'''
print("math.perm(10, 2) :", math.perm(10, 2))  #math.perm(10, 2) : 90
print("math.perm(5, 3) :", math.perm(5, 3))  #math.perm(5, 3) : 60
'''
5- math.comb(n, k)
Return the number of ways to choose k items from n items without repetition and without order.
Evaluates to n! / (k! * (n - k)!) when k <= n and evaluates to zero when k > n.
Also called the binomial coefficient because it is equivalent to the coefficient 
of k-th term in polynomial expansion of the expression (1 + x) ** n
'''
print("math.comb(10, 2) :", math.comb(10, 2))  #math.comb(10, 2) : 45
print("math.comb(5, 3) :", math.comb(5, 3))  #math.comb(5, 3) : 10
'''
6- math.copysign(x, y)
Return a float with the magnitude (absolute value) of x but the sign of y. 
On platforms that support signed zeros, copysign(1.0, -0.0) returns -1.0.
'''
Exemplo n.º 18
0
def perm(n, k=None):
    return math.perm(n, k=None)
Exemplo n.º 19
0
# Round square root numbers downward to the nearest integer
print(math.isqrt(10))
print(math.isqrt(12))
print(math.isqrt(68))
print(math.isqrt(100))

#Returns x * (2**i). This is also called as inverse of Python frexp()
print(math.ldexp(4, 3))

#Return the fractional and integer parts of x
print(math.modf(100.12))

# Print the number of ways to choose k items from n items
#print (math.perm(n, k))
print(math.perm(7, 5))

#Returns the product of an iterable (lists, array, tuples, etc.)
print(math.prod((1, 2, 3, 4, 5)))

# Find the value n that makes x completely divisible by y
print(math.remainder(9, 2))
print(math.remainder(17, 4))

# Return the truncated integer parts of different numbers
print(math.trunc(2.77))
print(math.trunc(8.32))
print(math.trunc(-99.29))

#find the exponential of the specified value
print(math.exp(65))
Exemplo n.º 20
0
 def get_linspace(self, n: int) -> np.ndarray:
     vectors = list(itertools.permutations(self.domain, r=self.length))
     end = math.perm(len(self.domain), self.length) - 1
     domain_array = self._convert_to_array(vectors)
     index = np.linspace(0, end, n, dtype=int)
     return domain_array[index]
Exemplo n.º 21
0
import math
print(math.factorial(9))
print(math.perm(9))

# Em um grupo de n pessoas, calcule a probabilidade de haver pelo menos duas pessoas que façam aniversário no mesmo dia.
import math
n = int(input("Há quantas pessoas no grupo? "))
prob = (1 - math.perm(365, n) / 365**n)
print(
    f"\n Num grupo de {n} pessoas, a probabilidade de haver pelo menos duas pessoas que tenham o mesmo dia de aniversário é de %.2f."
    % round(prob, 2))
Exemplo n.º 23
0
from sys import argv
import re
from itertools import combinations, permutations
from math import sqrt, perm, ceil

with open(argv[1] if len(argv) > 1 else "input") as f:
    lines = f.readlines()

p1 = re.compile("\-+ scanner (\d+)")
p2 = re.compile("(-?\d+),(-?\d+),(-?\d+)")

scannersInput = dict()
positions = dict()
distancesM = dict()
distancesE = dict()
common_n = perm(12, 2) // 2

final_beacons = dict()

curScanner = None
for line in lines:
    m = p1.match(line)
    if m:
        curScanner = int(m.group(1))
        scannersInput[curScanner] = set()
    else:
        m = p2.match(line)
        if m:
            scannersInput[curScanner].add(tuple(int(x) for x in m.groups()))

final_beacons[0] = scannersInput[0].copy()
    inf = inf
    nan = nan
    pi = 3.141592653589793
    tau = 6.283185307179586

FILE
    /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/math.cpython-39-darwin.so


>>> 10%7
3
>>> math.remainder(10,7)
3.0
>>> math.comb(3,2)
3
>>> math.perm(3,2)
6
>>> math.sqrt(5.43)
2.3302360395462087
>>> 
>>> x=  12.3
>>> y =54.5
>>> x+y
66.8
>>> x-y
-42.2
>>> x**y
2.5108951247437656e+59
>>> #complex Number:
>>> x = 5+7j
>>> x.real
Exemplo n.º 25
0
from math import comb
from math import perm
t = int(input())
for i in range(t):
    n, m = sorted([int(x) for x in input().split()])
    ans = 0
    for j in range(n + 1):
        ans += comb(n, j) * perm(m, j)
        ans %= 10005
    print(ans)
Exemplo n.º 26
0
def main():
    cmp = math.comb(49, 6)  # 49 adet içinde 6 seçilecek loto :) kombinasyon
    print("Kombinasyon 49c6: {:,}".format(cmp))
    prm = math.perm(49,
                    6)  # 49 adet içinde sıralı olarak 6 seçilecek permütasyon
    print("Permutasyon 49p6: {:,}".format(prm))
Exemplo n.º 27
0
import math

print(math.pi)  # 3.141592653589793
print(math.e)  # 2.718281828459045
print(math.sin(23))  # -0.8462204041751706

print(math.perm(3))  #  6 permutations
print(math.perm(4))  # 24 permutations
print(math.perm(4, 2))  # 12 permutations

print(math.lcm(120, 42))  # 840 least common multiple
print(math.gcd(120, 42))  #   6 greatest common divisor
Exemplo n.º 28
0
import math


math.perm(100, -2)
Exemplo n.º 29
0
assert math.gamma(2) == 1.0

# issue 1113
assert math.lgamma(2) == 0.0

# issue 1246
assertRaises(TypeError, math.cos)

# issue 1308
assert math.factorial(69) == 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000

# issue 1312
assert math.comb(5, 2) == 10
assert math.comb(69, 12) == 8815083648488

assert math.perm(69, 12) == 4222439171759589580800

x = math.prod(range(1, 33))
assert x == 263130836933693530167218012160000000

assert math.isqrt(x) == 512962802680363491

y = math.factorial(69)
assert math.isqrt(y) == 13081378078327271990661335578798848847474255303826

assert math.dist([1, 2, 3], [4, 5, 6]) == 5.196152422706632

# issue 1314
assert math.gcd(pow(2, 53) - 2, 2) == 2
assert math.gcd(pow(2, 53) - 1, 2) == 1
Exemplo n.º 30
0
import math
n = int(input("Digite quantos elementos"))
k = int(input("Digite de quanto em quanto"))
print("A permutacao (", n, ",", k, ") é de ", math.perm(n, k))