排列组合测试

import os
from itertools import combinations, permutations
import numpy as np



def EveError(func):
    def In():
        try :
            return func (),
        except Exception as e :
            import cgitb
            cgitb.enable ( format = 'text' )
            return func (),
        #return In
    return In

def search(name, mytype='any', trajectory_filename=r"/"):
    file_list = []
    for roots, dirs, files in os.walk(trajectory_filename):
        for file in files:
            if name in file:
                file_list.append(roots + '/' + file)
    if mytype == 'any':
        return [e for e in file_list if mytype]
    else:
        return [e for e in file_list if mytype == e.split('.')[-1]]

@EveError
def RunAmm():
    coders = 'url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'
    def Amm(data, step):
        if len(data) == step + 1:
            print(data)
            return
        else:
            for i in range(step, len(data)):
                data[step], data[i] = data[i], data[step]  # 让当前首位依次为后面的每一个数
                Amm(data, step + 1)  # 递归后面的情况
                data[step], data[i] = data[i], data[step]
    data = [code for code in coders.split(',')]
    return Amm(data, 0)
print(RunAmm())

coders = 'url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'
def Amm(Range1=len(coders.split(',')), NumberOfCombinations=5):
    m = Range1 - NumberOfCombinations + 1
    p = 1
    for i in range(1, NumberOfCombinations):
        m *= (i + m)
        p *= (i + 1)
    return m / p
#字符串排列计算^^^^如果是做代码排列,明显有些不合适,排列数越大越不可能单机完成
constant_of_strings_length = len(coders.split(','))
for i in range(constant_of_strings_length):
    print(Amm(constant_of_strings_length,i))

def element_per_com(Range):
    return list(permutations(list(range(Range)),Range))
    #or list(combinations(example_list, 2) # 组合枚举计算
print(element_per_com(8))

import os
from itertools import combinations, permutations
import numpy as np
import time



def EveError(func):
    def In(*vars):
        try :
            return func(*vars)
        except Exception as e :
            import cgitb
            cgitb.enable ( format = 'text' )
            return func (*vars)
    return In


def CallTime(func):
    def In(*varc):
        start = time.clock()
        func(*varc)
        print ( time.clock() - start )
        return func(*varc),
    return In

#@EveError
@CallTime
def search(name, mytype='any', trajectory_filename=r"/"):
    file_list = []
    for roots, dirs, files in os.walk(trajectory_filename):
        for file in files:
            if name in file:
                file_list.append(roots + '/' + file)
    if mytype == 'any':
        return [e for e in file_list if mytype]
    else:
        return [e for e in file_list if mytype == e.split('.')[-1]]
#print(search('PyPyCoder'))

@EveError
def RunAmm():
    coders = 'url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'
    def Amm(data, step):
        if len(data) == step + 1:
            print(data)
            return
        else:
            for i in range(step, len(data)):
                data[step], data[i] = data[i], data[step]  # 让当前首位依次为后面的每一个数
                Amm(data, step + 1)  # 递归后面的情况
                data[step], data[i] = data[i], data[step]
    data = [code for code in coders.split(',')]
    return Amm(data, 0)
#print(RunAmm())

coders = 'url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'
@CallTime
def Amm(Range1=len(coders.split(',')), NumberOfCombinations=5):
    m = Range1 - NumberOfCombinations + 1
    p = 1
    for i in range(1, NumberOfCombinations):
        m *= (i + m)
        p *= (i + 1)
    return m / p

@CallTime
def Permutations(Range):
    return [np.array(list(permutations(list(range(Range)),i))) for i in range(Range)]


@CallTime
@EveError
def Combinations(Range):
    return [np.array(list(combinations(list(range(Range)),i))) for i in range(Range)][1:]
c = []
for i in Combinations(len(coders.split(',')))[0]:
    c.append(len ( i ))
    print(sum(c),i)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值