问题引入
小学生林朝夕和党爱民备战奥数夏令营,做练习题时遇到以下问题:
问题:工人为你工作七天的总报酬是一根金条,你每天晚上必须为工人结一次账,不能赊账也不能多付,请问金条最少切割多少次才能实现。
聪明的林朝夕同学快速给出了答案:两次,策略如下:将金条按照1:2:4的比例分成3分,第一天给1,第二天给2收回1,第三天再给1,第四天给4收回1和2,第五天再给1,第6天给2收回1,第七天给1。
思考:如果将本问题中的7天改成n天,其他条件不变呢?
问题描述
问题:工人为你工作n天的总报酬是一根金条,你每天晚上必须为工人结一次账,不能赊账也不能多付,请问金条最少切割多少次才能实现。
分析:假设将金条切割成k份是一种可行切割,对于可行切割的定义如下:
定义:若切割k次以后每一份的占比分别为 a 0 , a 1 , . . . a k a_0,a_1,...a_k a0,a1,...ak, a i ∈ N ∗ a n d 1 ≤ a i ≤ n a_i\in N* and\quad 1\le a_i \le n ai∈N∗and1≤ai≤n,且 ∑ 0 k a i = n \sum_0^k a_i=n ∑0kai=n, 若对任意在区间[1,n]之间的正整数 m m m都存在 x 0 ≤ i ≤ k ∈ { 0 , 1 } x_{0\le i \le k} \in \{0, 1\} x0≤i≤k∈{
0,1},s.t. m = ∑ 0 k x i a i m =\sum_0^k x_ia_i m=∑0kxiai,则成该分隔为一种k阶可行分隔。
可行分割存在以下性质:
性质1:若 a 0 , a 1 , . . . a k a_0,a_1,...a_k a0,a1,...ak是n的一种k阶可行分割,当 1 ≤ a k + 1 ≤ n + 1 1\le a_{k+1} \le n+1 1≤a