我不想找到给定数字的 GCF。我为此使用欧几里得。我想生成一系列具有给定 GCF 的数字。例如,如果我选择 4,我应该得到 100、72 或 4、8 等,
任何指针将不胜感激。
我不想找到给定数字的 GCF。我为此使用欧几里得。我想生成一系列具有给定 GCF 的数字。例如,如果我选择 4,我应该得到 100、72 或 4、8 等,
任何指针将不胜感激。
N
具有作为 GCF的一系列数对是{N,N}, {N,2N}, {N,3N}, ...
。
事实上,任何由N
和 的 1 个或多个倍数组成的集合N
都具有N
其 GCF。
如果 4 是输入,您需要一个最大公因数为 4 的数字列表。您可以通过将 4 作为整个系列中的唯一因数来确保这一点。因此,您将数字 (4) 乘以所有素数以确保这一点。
素数列表 = 3、5、7、11、13、17
gcf 列表 4 -> (3*4)12, (4*5)20, (4*7)28, (4*11)44, (4*13)52, (4*17)68, . ..
这将为您提供一个列表,其中任意两个数字的 GCF 为 4
1.也许这个问题可以在http://math.stackexchange.com得到更好的回答
2.只需将不属于 GCD 因数的数字相乘,即可构造出您感兴趣的数字。对于给定 GCD=4 的示例,这意味着 $k_1=4$ GCD 本身 $k_2=4 * 2$ 因为 4 不除 2 $k_3=4 * 3$ 因为 4 不除 3 $not k_4=4 * 4$ 因为 4 整除 4 但 $ k_4=4 * 5$ 因为 4 不整除 5 等等。
选择一组成对独立的数字(即对于集合中的每个 x<>y,gcd(x,y) = 1)。将每个数字乘以您的目标 GCD。
我意识到这是一个老问题,但我将提供我自己的答案以及我是如何到达那里的解释。首先,我们称 GCF n。
最初我会建议做一些事情,比如选择随机整数并将它们分别乘以 n 以获得一组数字,这当然会给你能被 n 整除的数字,但不一定是 GCF 为 n 的数字。如果整数碰巧都有一个除“1”之外的 GCF,那么结果集的 GCF 实际上将具有 n 倍于该数字的 GCF,而不是 n。话虽如此,将 n 乘以一组整数似乎是确保集合中的每个数字至少可被 n 整除的最佳方法
一种选择是将这些数字之一设为 1,但这会降低集合的随机性,因为 n 将始终在结果集中。
接下来,您可以使用一些素数并将它们乘以 n 但这也会降低随机性,因为可能的数字会更少,并且这些数字实际上不需要是素数,只需互素(整个集合的 GCF = 1 )
您还可以选择一组数字,其中每对数字都是互质的,但同样,整个集合需要互质而不是成对互质(对于较大的集合,这将是处理器密集型的)。
因此,如果您要获得相当随机的数字,我将首先确定您想要在集合中有多少个数字(无论是随机确定的还是预先确定的),然后完全“随机”生成一个小于该数字的数字。然后我会计算这些数字的共同质因数,然后选择一个没有任何质因数的随机数。仅仅确保它没有相同的 GCF 是不够的,因为 GCF 可能与最终数字有共同因素。它只需要一个集合中的一个数字与该集合中的其他数字不具有任何相同的素因子来使该集合的 GCF 为“1”。然后我会取那组数字并将每个数字乘以 n 以获得你想要的一组数字。