A pesar del comentario de Michael Lamar, probé una implementación simple de Python solo dando los vectores de asignación de cualquier grupo.
def pick(n, users, beg=0):
end = len(users)
if n < 0 or end - beg < n:
return [] if n == 0:
return [[]] if end - beg == n:
return [users[beg : end]] result = pick(n, users, beg + 1)
for sub_result in pick(n - 1, users, beg + 1):
sub_result.insert(0, users[beg])
result.append(sub_result)
return result if __name__ == '__main__':
n = 3
users = range(1, 2 * n + 1) i = 1
for result_item in pick(n, users):
print "%d: %s" % (i, str(result_item))
i = i + 1
def pick(n, users, beg=0):
end = len(users)
if n < 0 or end - beg < n:
return [] if n == 0:
return [[]] if end - beg == n:
return [users[beg : end]] result = pick(n, users, beg + 1)
for sub_result in pick(n - 1, users, beg + 1):
sub_result.insert(0, users[beg])
result.append(sub_result)
return result if __name__ == '__main__':
n = 3
users = range(1, 2 * n + 1) i = 1
for result_item in pick(n, users):
print "%d: %s" % (i, str(result_item))
i = i + 1
- ¿Cuáles son los mejores consejos y prácticas para el desarrollo de aplicaciones móviles para crear buenas aplicaciones en poco tiempo?
- ¿Alguien ve un problema de privacidad con Snapchat Spectacles?
- ¿Por qué ciertas aplicaciones de terceros solo se pueden descargar después de cambiar el reloj del sistema (hace unos años)?
- Cómo encontrar errores en las aplicaciones
- ¿Cuál es una mejor opción: escribir aplicaciones de Android en Python o en Java?
def pick(n, users, beg=0):
end = len(users)
if n < 0 or end - beg < n:
return [] if n == 0:
return [[]] if end - beg == n:
return [users[beg : end]] result = pick(n, users, beg + 1)
for sub_result in pick(n - 1, users, beg + 1):
sub_result.insert(0, users[beg])
result.append(sub_result)
return result if __name__ == '__main__':
n = 3
users = range(1, 2 * n + 1) i = 1
for result_item in pick(n, users):
print "%d: %s" % (i, str(result_item))
i = i + 1
def pick(n, users, beg=0):
end = len(users)
if n < 0 or end - beg < n:
return [] if n == 0:
return [[]] if end - beg == n:
return [users[beg : end]] result = pick(n, users, beg + 1)
for sub_result in pick(n - 1, users, beg + 1):
sub_result.insert(0, users[beg])
result.append(sub_result)
return result if __name__ == '__main__':
n = 3
users = range(1, 2 * n + 1) i = 1
for result_item in pick(n, users):
print "%d: %s" % (i, str(result_item))
i = i + 1
def pick(n, users, beg=0):
end = len(users)
if n < 0 or end - beg < n:
return [] if n == 0:
return [[]] if end - beg == n:
return [users[beg : end]] result = pick(n, users, beg + 1)
for sub_result in pick(n - 1, users, beg + 1):
sub_result.insert(0, users[beg])
result.append(sub_result)
return result if __name__ == '__main__':
n = 3
users = range(1, 2 * n + 1) i = 1
for result_item in pick(n, users):
print "%d: %s" % (i, str(result_item))
i = i + 1
def pick(n, users, beg=0):
end = len(users)
if n < 0 or end - beg < n:
return [] if n == 0:
return [[]] if end - beg == n:
return [users[beg : end]] result = pick(n, users, beg + 1)
for sub_result in pick(n - 1, users, beg + 1):
sub_result.insert(0, users[beg])
result.append(sub_result)
return result if __name__ == '__main__':
n = 3
users = range(1, 2 * n + 1) i = 1
for result_item in pick(n, users):
print "%d: %s" % (i, str(result_item))
i = i + 1
Salida de muestra cuando n == 3 es
1: [4, 5, 6]
2: [3, 5, 6]
3: [3, 4, 6]
4: [3, 4, 5]
5: [2, 5, 6]
6: [2, 4, 6]
7: [2, 4, 5]
8: [2, 3, 6]
9: [2, 3, 5]
10: [2, 3, 4]
11: [1, 5, 6]
12: [1, 4, 6]
13: [1, 4, 5]
14: [1, 3, 6]
15: [1, 3, 5]
16: [1, 3, 4]
17: [1, 2, 6]
18: [1, 2, 5]
19: [1, 2, 4]
20: [1, 2, 3]