Chương trình sinh ra dãy số ngẫu nhiên trong Python

Bạn cần thiết kế slide

Bài toán: Chương trình sinh ra dãy số ngẫu nhiên

Yêu cầu:

– Dòng thứ nhất là một số n ngẫu nhiên

– Dòng thứ 2 là dãy số với n phần tử, mỗi số cách nhau một dấu cách

Dưới đây là đoạn code tham khảo theo yêu cầu trên, đoạn code sinh ra các dãy số ngẫu nhiên:

import random

def generate_random_sequence(n):
    sequence = []
    for _ in range(n):
        sequence.append(random.randint(1, 100))
    return sequence

def sort_sequences_by_difficulty(sequences):
    return sorted(sequences, key=lambda x: sum(x))

def print_sequence(sequence):
    print(' '.join(map(str, sequence)))

# Sinh ra 10 dãy số ngẫu nhiên và sắp xếp theo độ khó từ dễ đến khó
sequences = []
for _ in range(10):
    n = random.randint(5, 10)  # Số phần tử của dãy số từ 5 đến 10
    sequence = generate_random_sequence(n)
    sequences.append(sequence)

sorted_sequences = sort_sequences_by_difficulty(sequences)

# In ra 10 dãy số
for sequence in sorted_sequences:
    print_sequence(sequence)

Dưới đây là code tham khảo cho việc thiết lập các dãy số ngẫu nhiên theo yêu cầu của đề bài, bạn có thể thay đổi số lượng phần tử để bài toán, nội dung này sẽ giúp bạn tạo ra các bộ test ngẫu nhiên theo mức độ khó dần:

import random

def generate_random_sequence(n):
    sequence = []
    for _ in range(n):
        sequence.append(random.randint(1, 100))
    return sequence

def sort_sequences_by_difficulty(sequences):
    return sorted(sequences, key=lambda x: sum(x))

# Sinh ra 10 dãy số ngẫu nhiên và sắp xếp theo độ khó từ dễ đến khó
sequences = []
for _ in range(10):
    n = random.randint(5, 10)  # Số phần tử của dãy số từ 5 đến 10
    sequence = generate_random_sequence(n)
    sequences.append(sequence)

sorted_sequences = sort_sequences_by_difficulty(sequences)

# In ra 10 dãy số
for sequence in sorted_sequences:
    print(len(sequence))  # In số phần tử của dãy số
    print(' '.join(map(str, sequence)))  # In các phần tử của dãy số cách nhau bởi dấu cách
    print()  # In dòng trống để phân tách giữa các dãy số

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *