Ejercicio: 1Eva2004TI_T3 Sortear parejas para tenis

Propuesta de solución en Python:
La variable n indica el número de parejas o tamaño de los vectores para almacenar la "pareja" y el contador de "veces" que juega cada una.
# INGRESO
n = int(input('cuantas parejas: '))
El ejercicio se divide en dos partes: la primera para seleccionar de forma aleatoria la pareja de la dama (una por una), es decir se sortean los caballeros (quien), y la segunda parte se realiza el proceso para los caballeros.
dama = n+1
while not(dama>(2*n)):
quien = int(rnd.random()*n)+1
pareja[dama] = quien
veces[quien] = veces[quien]+1
dama = dama + 1
En cada sorteo se registra cuántas veces participa cada uno.
Algoritmo en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1Eva_IT2004_T3 Sortear parejas para tenis
import random as rnd
import numpy as np
# INGRESO
n = int(input('cuantas parejas: '))
# PROCEDIMIENTO
pareja = np.zeros(2*n+1,dtype=int)
veces = np.zeros( n+1,dtype=int)
dama = n+1
while not(dama>(2*n)):
quien = int(rnd.random()*n)+1
pareja[dama] = quien
veces[quien] = veces[quien]+1
dama = dama + 1
# SALIDA
print(pareja[n+1:])
print('veces: ')
print(veces)
print('juegan varias veces: ')
caballero = 1
while not(caballero>n):
if (veces[caballero]>1):
print(caballero)
caballero = caballero + 1
print('los que no juegan: ')
caballero = 1
while not(caballero>n):
if (veces[caballero]==0):
print(caballero)
caballero = caballero + 1
con un ejemplo de resultado:
cuantas parejas: 10
[ 6 2 1 8 3 9 10 1 7 9]
veces:
[0 2 1 1 0 0 1 1 1 2 1]
juegan varias veces:
1
9
los que no juegan:
4
5
>>>