Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Golang library which provide an algorithm to generate all combinations out of a given string array.

License

NotificationsYou must be signed in to change notification settings

mxschmitt/golang-combinations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoDocGoCoverage StatusGo Report CardLicense

This package provides a method to generate all ordered combinations out of a given generic array.This essentially creates the powerset of the given array except that the empty set is disregarded.

Examples

Take a look at thegodoc for examples.

In general when you have e.g.[]string{"A", "B", "C"} you will get:

[    ["A"],    ["B"],    ["A","B"],    ["C"],    ["A","C"],    ["B","C"],    ["A","B","C"]]

Background

The algorithm iterates over each number from1 to2^length(input), separating it by binary components and utilizes the true/false interpretation of binary 1's and 0's to extract all unique ordered combinations of the input slice.

E.g. a binary number0011 means selecting the first and second index from the slice and ignoring the third and fourth. For input{"A", "B", "C", "D"} this signifies the combination{"A", "B"}.

For input slice{"A", "B", "C", "D"} there are2^4 - 1 = 15 binary combinations, so mapping each bit position to a slice index and selecting the entry for binary1 and discarding for binary0 gives the full subset as:

1=0001=>---A=>{"A"}2=0010=>--B-=>{"B"}3=0011=>--BA=>{"A", "B"}4=0100=>-C--=>{"C"}5=0101=>-C-A=>{"A", "C"}6=0110=>-CB-=>{"B", "C"}7=0111=>-CBA=>{"A", "B", "C"}8=1000=>D---=>{"D"}9=1001=>D--A=>{"A", "D"}10=1010=>D-B-=>{"B", "D"}11=1011=>D-BA=>{"A", "B", "D"}12=1100=>DC--=>{"C", "D"}13=1101=>DC-A=>{"A", "C", "D"}14=1110=>DCB-=>{"B", "C", "D"}15=1111=>DCBA=>{"A", "B", "C", "D"}

About

Golang library which provide an algorithm to generate all combinations out of a given string array.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors7

Languages


[8]ページ先頭

©2009-2025 Movatter.jp