Tạo mẫu hoán vị (permutation samples)
Như bạn đã phân tích ở bài trước, ta cần tạo một mẫu hoán vị bằng cách hoán đổi ngẫu nhiên các phần tử tương ứng trong hai mảng semi_times và final_times. Hãy viết một hàm với chữ ký swap_random(a, b) trả về các mảng trong đó một số chỉ số ngẫu nhiên đã được hoán đổi giá trị giữa a và b.
Bài tập này là một phần của khóa học
Các nghiên cứu tình huống về tư duy thống kê
Hướng dẫn bài tập
- Định nghĩa một hàm với chữ ký
swap_random(a, b)thực hiện các bước sau.- Tạo một mảng
swap_indscó cùng độ dài với các mảng đầu vào, trong đó mỗi phần tử làTruevới xác suất 50/50. Gợi ý: Dùngnp.random.random()với tham sốsize=len(a). Mỗi phần tử của kết quả nhỏ hơn 0.5 sẽ làTrue. - Tạo bản sao của
avàb, lần lượt gọi làa_outvàb_out, bằng cách dùngnp.copy(). - Dùng chỉ mục Boolean với mảng
swap_indsđể hoán đổi các phần tử phù hợp: đưa các phần tử củabvàoa_outvà các phần tử củaavàob_out. - Trả về
a_outvàb_out.
- Tạo một mảng
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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