有一組整數資料,全部除以一個整數a,使得餘數是同n種數字,如何計算出這個整數a的全部可能。

总统先生發表於2024-10-17

使用問心一言生成,然後手動修改。

def find_possible_a_values(data_in, num_n, start=100, max_a=1000):
    if max_a is None:
        # 如果沒有指定上限,則使用資料集中的最大值作為上限的一個粗略估計
        max_a = max(data_in)

    possible_a_values = set()
    data_set = set(data_in)  # 去除重複資料

    # 從start開始,檢查每個s的倍數是否滿足條件,s=1.則是按1遞增,s=2,按2遞增。
    a = start
    bei = 5
    while a <= max_a:
        remainder_counts = {}
        for x in data_set:
            remainder = x % a
            if remainder not in remainder_counts:
                remainder_counts[remainder] = 0
            remainder_counts[remainder] += 1

        if len(remainder_counts) == num_n:
            possible_a_values.add(a)

            # 跳到下一個bei的倍數
        a += bei

    return possible_a_values


# 示例資料
data = [2370, 6950, 2460, 1170, 7160, 1310]
n = 4  # 希望餘數只有n種不同的值

# 呼叫函式
possible_a_values_end = find_possible_a_values(data, n)
print(f"Possible a values: {possible_a_values_end}")

輸出

Possible a values: {100, 235, 940, 470, 150, 120}

相關文章