Вы можете использовать random
модуль Python, который предварительно включен как math
(поэтому вам не нужно устанавливать его, используя pip et c.). Сначала определите набор, из которого вы хотите выбрать k элементов случайным образом, в вашем примере это набор целых чисел от 1 до 10, поэтому я использую S=[i for i in range(1,11)]
(помните, что последний элемент в диапазоне - это элемент перед целым числом, которое вы даете это как окончание диапазона). Затем для получения k
элементов с заменой используйте команду choices
в пакете random
, а для случая без замены используйте команду sample
. Коды приведены ниже.
import random
S=[i for i in range(1,11)]
A=random.choices(S,k=5)
B=random.sample(S,5)
Например, когда я запустил вышеуказанный код после запроса python показать мне S, A и B соответственно, я получил следующий результат.
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[8, 3, 2, 6, 8]
[3, 9, 6, 1, 10]
Вы также можете использовать модуль numpy
, чтобы объединить два этапа определения S с диапазоном, а затем использовать numpy.random.choice
. Но обратите внимание, что у вас будет k вариантов из набора из 10 целых чисел, начинающегося с 0, а не 1. Чтобы выбрать из набора, не определенного как n целых чисел сиквела, начиная с 0, вы должны определить его снова так же, как наш первый метод, и дать ему к этой команде вместо только числа, такого как 10. Чтобы сделать выбор, который будет сделан без замены, вы должны добавить опцию replace=False
. См. Следующий код.
import numpy
C=numpy.random.choice(10,5)
D=numpy.random.choice(10,5,replace=False)
S=[i for i in range(1,11)]
A=numpy.random.choice(S,5)
B=numpy.random.choice(S,5,replace=False)
После выполнения этого и запроса наборов C, D, A и B соответственно я получил следующее.
array([5, 5, 1, 4, 7])
array([0, 7, 4, 6, 1])
array([10, 5, 7, 1, 7])
array([6, 5, 7, 8, 1])