找到所有整数p和q的最佳方式,使得2 ^ p * 3 ^ q具有给定的十进制长度

问题描述 投票:-1回答:3
r = 2^p*3^q

找到pq的所有可能组合,使r的小数位数为给定的数字Npq是正整数。

我想到的解决方案是蛮力:P

java algorithm math logic
3个回答
0
投票

对于某些x,[2 ^ p * 3 ^ q = 10 ^ x

10 ^(log10(2)* p)* 10 ^(log10(3)* q)= 10 ^ x

所以

x = log10(2)* p + log10(3)* q

并且您知道x必须在N-1(包括)和N(不包括)之间

因此,您必须找到所有的p,q:

N-1 <= log10(2)* p + log10(3)* q

然后,您需要找到p和q的可能的最小值和最大值,并且如果您分析和过滤不适当的值,则可以使用循环遍历所有p,q或更贪婪的解决方案来进行BF。>


0
投票

[这个问题自然地概括为找到所有p, q使得2^p * 2^qminmax之间的问题。其中min = 10^Nmax = 10^(N+1) - 1


-1
投票

log(N)/ log(3)算法是否足够?

© www.soinside.com 2019 - 2024. All rights reserved.