Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

Combinatorics

Tutorials

  • Combinatorics
  • Combinatorics-1
  • Combinatorics-2

Guides

  • Combinatorics
  • Functions I understand in combinatorics

Tech Notes

  • Combinatorics

Symbols

  • CanonicalMultiset
  • CentralBinomialCoefficient
  • ConjugatePartition
  • DescendingSublists
  • DivisorHasseDiagram
  • DominatingIntegerPartitionQ
  • DurfeeSquare
  • EnumerateMultisetPartialDerangements
  • EulerianCatalanNumber
  • EulerianNumber
  • EulerianNumberOfTheSecondKind
  • FerrersDiagram
  • Fibbinary
  • FibonacciEncode
  • FindAscentElements
  • FindAscentPositions
  • FrobeniusSymbolFromPartition
  • FromInversionVector
  • FromPartitionPlusNotation
  • FromPartitionSuperscriptNotation
  • GaussFactorial
  • GrayCode
  • HasseDiagram
  • HookLengths
  • HuffmanCodeWords
  • HuffmanDecode
  • HuffmanEncode
  • IntegerPartitionQ
  • InverseFibonacci
  • InverseGrayCode
  • InversionCount
  • InversionVectorQ
  • LehmerCodeFromPermutation
  • LucasNumberU1
  • LucasNumberV2
  • ModifiedCentralBinomialCoefficient
  • Multichoose
  • MultisetAssociation
  • MultisetPartialDerangements
  • MultisetStrictDescentElements
  • MultisetStrictDescents
  • NarayanaNumber
  • NextPermutation
  • NumberOfTableaux
  • OrderedTupleFromIndex
  • OrderedTupleIndex
  • OrderlessCombinations
  • OrderlessCombinationsOfUnmarkedElements
  • PartialOrderGraphQ
  • PartitionCrank
  • PartitionFromFrobeniusSymbol
  • PartitionPlusNotation
  • PartitionRank
  • PartitionSuperscriptNotation
  • PermutationAscents
  • PermutationCountByInversions
  • PermutationDescents
  • PermutationFromIndex
  • PermutationGraph
  • PermutationIndex
  • PermutationMajorIndex
  • PermutationToTableaux
  • Phitorial
  • PosetQ
  • PosetToTableau
  • Primorial
  • QExponential
  • QMultinomial
  • RandomYoungTableau
  • RationalNumberRepeatingDecimalPeriod
  • ReflexiveGraphQ
  • SecantNumber
  • SelectPermutations
  • SelectSubsets
  • SelectTuples
  • SelfConjugatePartitionQ
  • SignedLahNumber
  • StandardYoungTableaux
  • StrictIntegerPartitions
  • SubsetFromIndex
  • SubsetIndex
  • TableauQ
  • TableauToPoset
  • TableauxToPermutation
  • TangentNumber
  • ToInversionVector
  • TransitiveGraphQ
  • TransposeTableau
  • TupleFromIndex
  • TupleIndex
  • UnsignedLahNumber
  • YoungDiagram
  • ZeckendorfRepresentation
PeterBurbery`Combinatorics`
HuffmanCodeWords
​
HuffmanCodeWords
[list]
gives optimal binary Huffman code words corresponding to probabilities in list.
​
Details and Options

Examples  
(2)
Basic Examples  
(2)
Generate a list of code words:
In[1]:=
HuffmanCodeWords
[{1/2,1/4,1/8,1/8}]
Out[1]=
{{0},{1,0},{1,1,0},{1,1,1}}
​
Get code words from a Wikipedia article for letter frequency of the whole alphabet:
In[1]:=
KeyTake[LetterCounts[WikipediaData["computer"]],Alphabet[]]
Out[1]=
a3667,b622,c2141,d1582,e5620,f872,g935,h1695,i3326,j29,k225,l1978,m1715,n3226,o3578,p1337,q62,r3345,s2895,t4118,u1549,v446,w534,x96,y719,z41
In[2]:=
HuffmanCodeWords
[Values[%]]
Out[2]=
{{1,1,1,1},{0,1,0,0,0,1},{0,0,1,1},{1,0,0,0,1},{0,1,1},{1,0,1,0,0,1},{1,1,0,1,1,1},{1,0,1,0,1},{1,0,1,1},{1,1,0,1,1,0,1,1,1,1,0},{1,1,0,1,1,0,1,0},{0,0,1,0},{1,1,0,1,0},{1,0,0,1},{1,1,1,0},{0,1,0,0,1},{1,1,0,1,1,0,1,1,1,0},{1,1,0,0},{0,1,0,1},{0,0,0},{1,0,0,0,0},{1,1,0,1,1,0,0},{0,1,0,0,0,0},{1,1,0,1,1,0,1,1,0},{1,0,1,0,0,0},{1,1,0,1,1,0,1,1,1,1,1}}
In[3]:=
AssociationThread[Alphabet[]%]
Out[3]=
a{1,1,1,1},b{0,1,0,0,0,1},c{0,0,1,1},d{1,0,0,0,1},e{0,1,1},f{1,0,1,0,0,1},g{1,1,0,1,1,1},h{1,0,1,0,1},i{1,0,1,1},j{1,1,0,1,1,0,1,1,1,1,0},k{1,1,0,1,1,0,1,0},l{0,0,1,0},m{1,1,0,1,0},n{1,0,0,1},o{1,1,1,0},p{0,1,0,0,1},q{1,1,0,1,1,0,1,1,1,0},r{1,1,0,0},s{0,1,0,1},t{0,0,0},u{1,0,0,0,0},v{1,1,0,1,1,0,0},w{0,1,0,0,0,0},x{1,1,0,1,1,0,1,1,0},y{1,0,1,0,0,0},z{1,1,0,1,1,0,1,1,1,1,1}
SeeAlso
HuffmanEncode
 
▪
HuffmanDecode
 
▪
Compress
RelatedGuides
▪
Combinatorics
RelatedLinks
HuffmanEncode
Huffman Coding—Wolfram MathWorld
HuffmanDecode
HuffmanCodeWords
Resource Function contributed by Wolfram Staff (original content by Stephen Wolfram)
""

© 2025 Wolfram. All rights reserved.

  • Legal & Privacy Policy
  • Contact Us
  • WolframAlpha.com
  • WolframCloud.com