-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
突然想到,若總組合數實在太大,k 無法用 int 表示出來,那這個方法也是不合用的
在此情況,可以使用下列的 code (總組合要遠大於 n ,不然一直沒加成功會很慢)
def gen_n_random_combinations(
entities: List[List[str]],
n: int,
) -> List[List[str]]:
assert all(entities)
ids_set = set()
while len(ids_set) < n:
ids_set.add(
tuple(
random.randint(0, len(e) - 1) for e in entities
)
)
result = [[e[i] for e, i in zip(entities, ids)] for ids in ids_set]
return result
Metadata
Metadata
Assignees
Labels
No labels