#W016. 数据离散化

数据离散化

背景: 离散化是一种将连续变量转换为离散变量的技术,通常用于将数据划分为若干区间,以便于进一步的分析和处理。常见的离散化方法包括等宽离散化和等频离散化。

任务: 请编写一个Python程序,完成以下任务:

  1. 从标准输入读取一个包含N个浮点数的数组(列表)。
  2. 实现等宽离散化,将数组划分为K个区间。
  3. 实现等频离散化,将数组划分为K个区间。
  4. 输出离散化后的结果。

输入格式:

  • 第一行包含两个整数N和K,分别表示数组的长度和需要划分的区间数量。
  • 第二行包含N个浮点数,表示数组的元素。

输出格式:

  • 第一行输出等宽离散化后的结果,结果用空格分隔。
  • 第二行输出等频离散化后的结果,结果用空格分隔。

样例输入:

10 3
1.5 2.3 3.7 4.1 5.6 6.2 7.8 8.5 9.0 10.2

样例输出:

1 1 1 1 2 2 3 3 3 3
1 1 1 2 2 2 3 3 3 3

要求:

  • 请确保代码的可读性和注释清晰。
  • 考虑边界情况,例如数组中的元素全部相同。

提示:

  • 等宽离散化:区间宽度为 (maxmin)/K(\text{max} - \text{min}) / K
  • 等频离散化:每个区间包含大约 N/KN/K 个元素。