我在硬件领域工作。我需要生成从 0 到 n-1 的所有 nCk 数字组合。使用软件很容易做到这一点,但这需要使用 HDL- VHDL来完成。我不能在计算复杂性上花费太多,并且需要以 1 个样本/秒的速率生成(每个组合 1 个 clk 周期)。中间存储器可用。
例如:-假设对于 6C4,我需要生成
(1,2,3,4) (1,2,3,5) (1,2,3,6) (1,2,4,5) (1,2,4,6) (1,2, 5,6) (1,3,4,5) (1,3,4,6) (1,3,5,6) (1,4,5,6) (2,3,4,5) ( 2,3,4,6) (2,3,5,6) (2,4,5,6) (3,4,5,6)
秩序很重要。
编辑:'k' 和 'n' 总是偶数。考虑到这一点,有什么方法可以简化逻辑。
在这种情况下,实体的“n”和“k”输入可能会有所不同(“n”,上限为 16)