Я знаю, что подобные вопросы задавались довольно много раз раньше, но во всех исследованиях, которые я проводил в Интернете, все, что я смог найти, это вопросы о получении уникальных комбинаций из одного массива и так далее, но что я могу сделать, но то, что яя ищу немного по-другому.
У меня есть скрипт, который генерирует имена, получая имена из txt.file и фамилии из другого, а затем случайным образом создает имя, скрипт также генерирует дубликаты, поэтому ябыло интересно, как я могу получить количество всех возможных уникальных комбо?Учитывая, что каждый text.file имеет 20 элементов (файл фамилий содержит 20 элементов.
, это мой сценарий:
$FirstName = Import-Csv C:\Users\myuser\Desktop\Firstname.txt -Delimiter ';' -Header Name, Gender
$LastName = Get-Content C:\Users\myuser\Desktop\Lastnames.txt
[array]$FirstNameMan = $null
[array]$FirstNameWoman = $null
[int]$NumberOfCombinations = Read-Host 'Enter the number of combinations you wish'
[string]$Gender = Read-Host 'Gender: Enter "M" for "man" or "W" for "woman"'
# here i split the names by gender
for ($i = 0; $i -lt $FirstName.Count; $i++) {
if ($FirstName[$i].Gender -like 'mann') {
$FirstNameMan += $FirstName[$i].Name
}
else {
$FirstNameWoman += $FirstName[$i].Name
}
}
#random join
For ($j = 0; $j -lt $NumberOfCombinations; $j++) {
if ($Gender -like 'm') {
$FirstNameMan[(Get-Random $FirstNameMan.Count)] + ', ' + $Lastname[(Get-Random $Lastname.Count)]
}
else {
$FirstNameWoman[(Get-Random $FirstNameWoman.Count)] + ', ' + $Lastname[(Get-Random $Lastname.Count)]
}
}
результат будет примерно таким (в зависимости от выбранного пола):
Katja, Schult
Mary, Krüger
Ruth, Meier
Ruth, Bauer
Katja, Bauer
Katja, Schneider
Mascha, Möller
Ruth, Schröder
Sara, Meier
теперь, как я могу узнать, сколько возможных уникальных комбинаций может быть? ( не уникальным будет, если вы дважды получаете одно и то же имя, в противном случае оно уникально)я думаю, что просто не могу найти логику, чтобы выяснить алгоритм
извините, если это слишком субъективно