用公式解决问题(GCD 和 LCM)
Solving problems with formulas (GCD and LCM)
我很难找出用于更有效地解决给定问题的公式。
例如,我遇到的一个问题是:
n children are placed in a circle. Every kth child is given chocolate until a child that has already been given chocolate is
selected again. Determine the nr number of children that don't
receive chocolate, given n and k.
Ex: n = 12, k = 9; nr will be 8.
这个问题可以通过两种方式解决:
- 创建一个布尔数组并遍历它,直到选择了一个 child 还没有给巧克力(效率不高);
- 使用公式:n - n / GCD(n, k);
我将如何找出第 2nd 种求解方法(公式)?
另外,我在哪里可以练习这种特定类型的问题,那里有一种明显的、缓慢的解决方法,或者一种需要你找出公式的有效方法?
每个问题都不一样,没有规律可寻。您需要分析情况并对此进行推理。数学训练有很大帮助。
对于这个具体示例,您可以这样进行:将 children 从 0 编号到 n-1。如果从0开始,得到巧克力的children恰好是能被GCD(n,k)整除的数字。有多少人:n / GDC(n, k)
因此,有多少人没有得到巧克力:n -n / GDC(n, k)
.
我很难找出用于更有效地解决给定问题的公式。
例如,我遇到的一个问题是:
n children are placed in a circle. Every kth child is given chocolate until a child that has already been given chocolate is selected again. Determine the nr number of children that don't receive chocolate, given n and k.
Ex: n = 12, k = 9; nr will be 8.
这个问题可以通过两种方式解决:
- 创建一个布尔数组并遍历它,直到选择了一个 child 还没有给巧克力(效率不高);
- 使用公式:n - n / GCD(n, k);
我将如何找出第 2nd 种求解方法(公式)?
另外,我在哪里可以练习这种特定类型的问题,那里有一种明显的、缓慢的解决方法,或者一种需要你找出公式的有效方法?
每个问题都不一样,没有规律可寻。您需要分析情况并对此进行推理。数学训练有很大帮助。
对于这个具体示例,您可以这样进行:将 children 从 0 编号到 n-1。如果从0开始,得到巧克力的children恰好是能被GCD(n,k)整除的数字。有多少人:n / GDC(n, k)
因此,有多少人没有得到巧克力:n -n / GDC(n, k)
.