fork download
  1. # Replace with your favourite proper binomial implementation.
  2. def binom(n, k):
  3. product = 1
  4.  
  5. for i in range(k):
  6. product *= n-i
  7.  
  8. for i in range(1,k+1):
  9. product //= i
  10.  
  11. return product
  12.  
  13. def encoding(nums):
  14. nums = sorted(nums)
  15.  
  16. x = binom(nums[-1]+len(nums), len(nums))
  17. last = nums.pop()
  18.  
  19. while nums:
  20. x -= nums[-1] and binom(nums[-1]-1+len(nums), len(nums))
  21. last = nums.pop()
  22.  
  23. return x-1
  24.  
  25.  
  26. import itertools
  27. L = sorted([x for x in itertools.product(range(6), repeat=5) if sorted(x) == list(x)], key=lambda x:x[::-1])
  28.  
  29. for x in L:
  30. print(x, encoding(x))
Success #stdin #stdout 0.04s 9984KB
stdin
Standard input is empty
stdout
(0, 0, 0, 0, 0) 0
(0, 0, 0, 0, 1) 5
(0, 0, 0, 1, 1) 4
(0, 0, 1, 1, 1) 3
(0, 1, 1, 1, 1) 2
(1, 1, 1, 1, 1) 1
(0, 0, 0, 0, 2) 20
(0, 0, 0, 1, 2) 19
(0, 0, 1, 1, 2) 18
(0, 1, 1, 1, 2) 17
(1, 1, 1, 1, 2) 16
(0, 0, 0, 2, 2) 15
(0, 0, 1, 2, 2) 14
(0, 1, 1, 2, 2) 13
(1, 1, 1, 2, 2) 12
(0, 0, 2, 2, 2) 11
(0, 1, 2, 2, 2) 10
(1, 1, 2, 2, 2) 9
(0, 2, 2, 2, 2) 8
(1, 2, 2, 2, 2) 7
(2, 2, 2, 2, 2) 6
(0, 0, 0, 0, 3) 55
(0, 0, 0, 1, 3) 54
(0, 0, 1, 1, 3) 53
(0, 1, 1, 1, 3) 52
(1, 1, 1, 1, 3) 51
(0, 0, 0, 2, 3) 50
(0, 0, 1, 2, 3) 49
(0, 1, 1, 2, 3) 48
(1, 1, 1, 2, 3) 47
(0, 0, 2, 2, 3) 46
(0, 1, 2, 2, 3) 45
(1, 1, 2, 2, 3) 44
(0, 2, 2, 2, 3) 43
(1, 2, 2, 2, 3) 42
(2, 2, 2, 2, 3) 41
(0, 0, 0, 3, 3) 40
(0, 0, 1, 3, 3) 39
(0, 1, 1, 3, 3) 38
(1, 1, 1, 3, 3) 37
(0, 0, 2, 3, 3) 36
(0, 1, 2, 3, 3) 35
(1, 1, 2, 3, 3) 34
(0, 2, 2, 3, 3) 33
(1, 2, 2, 3, 3) 32
(2, 2, 2, 3, 3) 31
(0, 0, 3, 3, 3) 30
(0, 1, 3, 3, 3) 29
(1, 1, 3, 3, 3) 28
(0, 2, 3, 3, 3) 27
(1, 2, 3, 3, 3) 26
(2, 2, 3, 3, 3) 25
(0, 3, 3, 3, 3) 24
(1, 3, 3, 3, 3) 23
(2, 3, 3, 3, 3) 22
(3, 3, 3, 3, 3) 21
(0, 0, 0, 0, 4) 125
(0, 0, 0, 1, 4) 124
(0, 0, 1, 1, 4) 123
(0, 1, 1, 1, 4) 122
(1, 1, 1, 1, 4) 121
(0, 0, 0, 2, 4) 120
(0, 0, 1, 2, 4) 119
(0, 1, 1, 2, 4) 118
(1, 1, 1, 2, 4) 117
(0, 0, 2, 2, 4) 116
(0, 1, 2, 2, 4) 115
(1, 1, 2, 2, 4) 114
(0, 2, 2, 2, 4) 113
(1, 2, 2, 2, 4) 112
(2, 2, 2, 2, 4) 111
(0, 0, 0, 3, 4) 110
(0, 0, 1, 3, 4) 109
(0, 1, 1, 3, 4) 108
(1, 1, 1, 3, 4) 107
(0, 0, 2, 3, 4) 106
(0, 1, 2, 3, 4) 105
(1, 1, 2, 3, 4) 104
(0, 2, 2, 3, 4) 103
(1, 2, 2, 3, 4) 102
(2, 2, 2, 3, 4) 101
(0, 0, 3, 3, 4) 100
(0, 1, 3, 3, 4) 99
(1, 1, 3, 3, 4) 98
(0, 2, 3, 3, 4) 97
(1, 2, 3, 3, 4) 96
(2, 2, 3, 3, 4) 95
(0, 3, 3, 3, 4) 94
(1, 3, 3, 3, 4) 93
(2, 3, 3, 3, 4) 92
(3, 3, 3, 3, 4) 91
(0, 0, 0, 4, 4) 90
(0, 0, 1, 4, 4) 89
(0, 1, 1, 4, 4) 88
(1, 1, 1, 4, 4) 87
(0, 0, 2, 4, 4) 86
(0, 1, 2, 4, 4) 85
(1, 1, 2, 4, 4) 84
(0, 2, 2, 4, 4) 83
(1, 2, 2, 4, 4) 82
(2, 2, 2, 4, 4) 81
(0, 0, 3, 4, 4) 80
(0, 1, 3, 4, 4) 79
(1, 1, 3, 4, 4) 78
(0, 2, 3, 4, 4) 77
(1, 2, 3, 4, 4) 76
(2, 2, 3, 4, 4) 75
(0, 3, 3, 4, 4) 74
(1, 3, 3, 4, 4) 73
(2, 3, 3, 4, 4) 72
(3, 3, 3, 4, 4) 71
(0, 0, 4, 4, 4) 70
(0, 1, 4, 4, 4) 69
(1, 1, 4, 4, 4) 68
(0, 2, 4, 4, 4) 67
(1, 2, 4, 4, 4) 66
(2, 2, 4, 4, 4) 65
(0, 3, 4, 4, 4) 64
(1, 3, 4, 4, 4) 63
(2, 3, 4, 4, 4) 62
(3, 3, 4, 4, 4) 61
(0, 4, 4, 4, 4) 60
(1, 4, 4, 4, 4) 59
(2, 4, 4, 4, 4) 58
(3, 4, 4, 4, 4) 57
(4, 4, 4, 4, 4) 56
(0, 0, 0, 0, 5) 251
(0, 0, 0, 1, 5) 250
(0, 0, 1, 1, 5) 249
(0, 1, 1, 1, 5) 248
(1, 1, 1, 1, 5) 247
(0, 0, 0, 2, 5) 246
(0, 0, 1, 2, 5) 245
(0, 1, 1, 2, 5) 244
(1, 1, 1, 2, 5) 243
(0, 0, 2, 2, 5) 242
(0, 1, 2, 2, 5) 241
(1, 1, 2, 2, 5) 240
(0, 2, 2, 2, 5) 239
(1, 2, 2, 2, 5) 238
(2, 2, 2, 2, 5) 237
(0, 0, 0, 3, 5) 236
(0, 0, 1, 3, 5) 235
(0, 1, 1, 3, 5) 234
(1, 1, 1, 3, 5) 233
(0, 0, 2, 3, 5) 232
(0, 1, 2, 3, 5) 231
(1, 1, 2, 3, 5) 230
(0, 2, 2, 3, 5) 229
(1, 2, 2, 3, 5) 228
(2, 2, 2, 3, 5) 227
(0, 0, 3, 3, 5) 226
(0, 1, 3, 3, 5) 225
(1, 1, 3, 3, 5) 224
(0, 2, 3, 3, 5) 223
(1, 2, 3, 3, 5) 222
(2, 2, 3, 3, 5) 221
(0, 3, 3, 3, 5) 220
(1, 3, 3, 3, 5) 219
(2, 3, 3, 3, 5) 218
(3, 3, 3, 3, 5) 217
(0, 0, 0, 4, 5) 216
(0, 0, 1, 4, 5) 215
(0, 1, 1, 4, 5) 214
(1, 1, 1, 4, 5) 213
(0, 0, 2, 4, 5) 212
(0, 1, 2, 4, 5) 211
(1, 1, 2, 4, 5) 210
(0, 2, 2, 4, 5) 209
(1, 2, 2, 4, 5) 208
(2, 2, 2, 4, 5) 207
(0, 0, 3, 4, 5) 206
(0, 1, 3, 4, 5) 205
(1, 1, 3, 4, 5) 204
(0, 2, 3, 4, 5) 203
(1, 2, 3, 4, 5) 202
(2, 2, 3, 4, 5) 201
(0, 3, 3, 4, 5) 200
(1, 3, 3, 4, 5) 199
(2, 3, 3, 4, 5) 198
(3, 3, 3, 4, 5) 197
(0, 0, 4, 4, 5) 196
(0, 1, 4, 4, 5) 195
(1, 1, 4, 4, 5) 194
(0, 2, 4, 4, 5) 193
(1, 2, 4, 4, 5) 192
(2, 2, 4, 4, 5) 191
(0, 3, 4, 4, 5) 190
(1, 3, 4, 4, 5) 189
(2, 3, 4, 4, 5) 188
(3, 3, 4, 4, 5) 187
(0, 4, 4, 4, 5) 186
(1, 4, 4, 4, 5) 185
(2, 4, 4, 4, 5) 184
(3, 4, 4, 4, 5) 183
(4, 4, 4, 4, 5) 182
(0, 0, 0, 5, 5) 181
(0, 0, 1, 5, 5) 180
(0, 1, 1, 5, 5) 179
(1, 1, 1, 5, 5) 178
(0, 0, 2, 5, 5) 177
(0, 1, 2, 5, 5) 176
(1, 1, 2, 5, 5) 175
(0, 2, 2, 5, 5) 174
(1, 2, 2, 5, 5) 173
(2, 2, 2, 5, 5) 172
(0, 0, 3, 5, 5) 171
(0, 1, 3, 5, 5) 170
(1, 1, 3, 5, 5) 169
(0, 2, 3, 5, 5) 168
(1, 2, 3, 5, 5) 167
(2, 2, 3, 5, 5) 166
(0, 3, 3, 5, 5) 165
(1, 3, 3, 5, 5) 164
(2, 3, 3, 5, 5) 163
(3, 3, 3, 5, 5) 162
(0, 0, 4, 5, 5) 161
(0, 1, 4, 5, 5) 160
(1, 1, 4, 5, 5) 159
(0, 2, 4, 5, 5) 158
(1, 2, 4, 5, 5) 157
(2, 2, 4, 5, 5) 156
(0, 3, 4, 5, 5) 155
(1, 3, 4, 5, 5) 154
(2, 3, 4, 5, 5) 153
(3, 3, 4, 5, 5) 152
(0, 4, 4, 5, 5) 151
(1, 4, 4, 5, 5) 150
(2, 4, 4, 5, 5) 149
(3, 4, 4, 5, 5) 148
(4, 4, 4, 5, 5) 147
(0, 0, 5, 5, 5) 146
(0, 1, 5, 5, 5) 145
(1, 1, 5, 5, 5) 144
(0, 2, 5, 5, 5) 143
(1, 2, 5, 5, 5) 142
(2, 2, 5, 5, 5) 141
(0, 3, 5, 5, 5) 140
(1, 3, 5, 5, 5) 139
(2, 3, 5, 5, 5) 138
(3, 3, 5, 5, 5) 137
(0, 4, 5, 5, 5) 136
(1, 4, 5, 5, 5) 135
(2, 4, 5, 5, 5) 134
(3, 4, 5, 5, 5) 133
(4, 4, 5, 5, 5) 132
(0, 5, 5, 5, 5) 131
(1, 5, 5, 5, 5) 130
(2, 5, 5, 5, 5) 129
(3, 5, 5, 5, 5) 128
(4, 5, 5, 5, 5) 127
(5, 5, 5, 5, 5) 126