Generování permutačních vzorků
Jak jsi zjistil/a v předchozím cvičení, musíme vygenerovat permutační vzorek tak, že náhodně prohodíme odpovídající prvky v polích semi_times a final_times. Napiš funkci se signaturou swap_random(a, b), která vrátí pole, v nichž jsou na náhodných indexech prvky a a b vzájemně prohozeny.
Toto cvičení je součástí kurzu
Případové studie ve statistickém myšlení
Pokyny k cvičení
- Definuj funkci se signaturou
swap_random(a, b), která provede následující kroky.- Vytvoř pole
swap_indso stejné délce jako vstupní pole, kde každý prvek bude s pravděpodobností 50/50True. Nápověda: Použijnp.random.random()s klíčovým argumentemsize=len(a). Každý prvek výsledku, který je menší než 0.5, by měl býtTrue. - Vytvoř kopie
aabpomocínp.copy()a pojmenuj jea_outab_out. - Pomocí booleovského indexování s polem
swap_indsprohoď příslušné prvkybdoa_outa prvkyadob_out. - Vrať
a_outab_out.
- Vytvoř pole
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
def ____(____, ____):
"""Randomly swap entries in two arrays."""
# Indices to swap
swap_inds = ____ < ____
# Make copies of arrays a and b for output
a_out = ____
b_out = ____
# Swap values
____[____] = ____[____]
____[____] = ____[____]
return a_out, b_out