Začněte nyníZačněte zdarma

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í

Zobrazit kurz

Pokyny k cvičení

  • Definuj funkci se signaturou swap_random(a, b), která provede následující kroky.
    • Vytvoř pole swap_inds o stejné délce jako vstupní pole, kde každý prvek bude s pravděpodobností 50/50 True. Nápověda: Použij np.random.random() s klíčovým argumentem size=len(a). Každý prvek výsledku, který je menší než 0.5, by měl být True.
    • Vytvoř kopie a a b pomocí np.copy() a pojmenuj je a_out a b_out.
    • Pomocí booleovského indexování s polem swap_inds prohoď příslušné prvky b do a_out a prvky a do b_out.
    • Vrať a_out a b_out.

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
Upravit a spustit kód