shortcut formula
20151015
Combinations of array elements
Suppose you want to know how many unique combinations of the elements of an array there are.
The scenic tour:
a=list('abcdefghijklmnopqrstuvwxyz')
n=len(a)
stack=[]
for i in xrange(n):
for j in xrange(i+1,n):
stack.append( (a[i],a[j]) )
print len(stack)
The shortcut:
print (math.factorial(n)/2)/math.factorial(n-2)
From the more general formula:
n! / r! / (n-r)! with r=2.
(see itertools.combinations(iterable, r) on docs.python.org/2/library/itertools.html )
Add up from 1 to n
Add up all numbers from 1 to n.
The straight-n-simple solution:
result = 0
for i in xrange(n):
result += (i + 1)
print (result)
The fast solution:
result = n * (n+1) / 2
print (result)
Here's the explanation (thanks codility)
|