コード例 #1
0
def block(source):
    source.check()
    codeMap = CodeMap('Blockcode')
    count = 0
    blockLength = ceil(bb(len(source)))
    for symbol in source.sorted():
        codeMap.mapSymbol(symbol, _paddedBinary(count, blockLength))
        count += 1
    return codeMap
コード例 #2
0
ファイル: algos.py プロジェクト: nathdwek/codegen
def block(source):
    source.check()
    codeMap = CodeMap('Blockcode')
    count = 0
    blockLength = ceil(bb(len(source)))
    for symbol in source.sorted():
        codeMap.mapSymbol(symbol, _paddedBinary(count, blockLength))
        count += 1
    return codeMap
コード例 #3
0
def weaver(source):
    source.check()
    code = ''
    codeMap = CodeMap('Shannon-Weaver')
    cached = source.sorted()
    for symbol in cached[:-1]:
        codeMap.mapSymbol(symbol, code + '0')
        code += '1'
    codeMap.mapSymbol(cached[-1], code)
    return codeMap
コード例 #4
0
ファイル: algos.py プロジェクト: nathdwek/codegen
def weaver(source):
    source.check()
    code = ''
    codeMap = CodeMap('Shannon-Weaver')
    cached = source.sorted()
    for symbol in cached[:-1]:
        codeMap.mapSymbol(symbol, code+'0')
        code += '1'
    codeMap.mapSymbol(cached[-1], code)
    return codeMap