昨天,我出现在一次采访中.我陷入了其中一个问题,我在这里问的是同样的问题.
有一个给出的数组显示x轴上的点,有N个点.和M币也给了.
Remember N >= M
Run Code Online (Sandbox Code Playgroud)
您必须最大化任意两点之间的最小距离.
Example: Array : 1 3 6 12
3 coins are given.
If you put coins on 1, 3, 6 points Then distance between coins are : 2, 3
So it gives 2 as answer
But we can improve further
If we put coins at 1, 6, 12 points.
Then distances are 5, 6
So correct answer is : 5
Run Code Online (Sandbox Code Playgroud)
请帮帮我,因为我完全陷入了这个问题.
algorithm recursion dynamic-programming greedy number-theory
-----要求修改代码--------
问题:计算具有50个因子的快速三角系列号?
详细说明:让我们说有一系列
1 : 1
3 : 1+2
6 : 1+2+3
10 : 1+2+3+4
15 : 1+2+3+4+5
21 : 1+2+3+4+5+6
28 : 1+2+3+4+5+6+7
Run Code Online (Sandbox Code Playgroud)
这里1,3,6,10,15,21,28是三角形系列下的数字.
让我们看看数字的因素
Number factors Count
1 : 1 1
3 : 1,3 2
6 : 1,2,3,6 4
10 : 1,2,5,10 4
15 : 1,3,5,15 4
21 : 1,3,7,21 4
28 : 1,2,4,7,14,28 6
Run Code Online (Sandbox Code Playgroud)
这里6是第一个具有4个因子的三角形数字.即使10,15,21也有4个因素,但它们不是第1个.就像那样,让一个数字为2,其中2个因子为1,2个数字3相同,也有2个因子为1和3
但根据问题3,答案不是2,因为即使它快于3,2也不会进入三角系列号列表.
如果集合的数字的gcd为1,则存在集合的Frobenius数.给定一组具有最多10个元素的正整数,使得所有元素的gcd为1,我们如何计算集合的Frobenius数?
以下是原始问题的链接:https://icpcarchive.ecs.baylor.edu/external/62/6298.pdf Sylvester的公式可用于查找一组2个元素的Frobenius数.
我正在观看有关计算机架构的视频,我想到了一个问题.添加和基本操作如何在计算机上运行?我的意思是,我知道2 + 2 = 4但我不知道为什么?我只知道,如果我将2个苹果添加到另外2个,那么我看到4,但是有可能证明这一点吗?
我的问题是,计算机如何知道最基本的2 + 2 = 4?我知道有些功能可以添加数字,但在基本级别如何执行添加?
我只想知道这一点,以便更好地了解计算机的工作方式,因为计算机执行的最基本和最常用的操作是总和(我相信)
我正在尝试这个问题一段时间但一次又一次地得到错误的答案.数字可能非常大<= 2 ^ 2014. 22086. Prime Power Test
关于我的算法的说明:
i
直到log (n base 2)
和exit
.这是我的python代码请建议我,如果我做错了我不是很精通python所以我的算法有点冗长.提前致谢.
我的算法:
import math
import sys
import fractions
import random
import decimal
write = sys.stdout.write
def sieve(n):
sqrtn = int(n**0.5)
sieve = [True] * (n+1)
sieve[0] = False
sieve[1] = False
for i in range(2, sqrtn+1):
if sieve[i]:
m = n//i - i
sieve[i*i:n+1:i] = [False] * (m+1) …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种有效的算法来解决以下问题.让d(n)
表示正除数的数n
,其中n
为正整数.我们给了一些 1 <= a <= b <= 10^18
,任务是找到最大值的d
段[a..b]
和(可能我们需要更复杂的算法,这部分)找到最大化值的数字d
.
前段时间我在免费访问中找到了以下代码:http://ideone.com/qvxPj
unsigned long long n, res;
int p, primes[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 51, 53, 59, 61, 67, 71};
unsigned long long mul(unsigned long long a, unsigned long long b){
unsigned long long res = 0;
while (b){
if (b & 1LL) res = …
Run Code Online (Sandbox Code Playgroud) 在SPOJ问题PPATH中,我们给出了两个四位数的素数,我们必须通过一次改变一个数字,在最少步骤中将第一个素数转换为第二个素数,并且在每个步骤中数字应该是素数.如果素数不能以所述方式转换,我们必须输出'不可能'.
然而,已经接受了甚至不考虑不可能情况的问题的解决方案,这导致人们猜测每个四位数的素数可以以指定的方式转换成任何其他四位数的素数.我无法证明这一点.这是真的吗?我们怎样正式证明它?此外,n位素数是否有一般结果?
我开始学习Prolog的,我想给定一个整数程序P
给予整数A
和B
这样P = A² + B²
.如果没有的价值A
和B
满足这个方程,false
应退还
例如:if P = 5
,它应该给A = 1
和B = 2
(或A = 2
和B = 1
)因为1² + 2² = 5
.
我以为这应该工作:
giveSum(P, A, B) :- integer(A), integer(B), integer(P), P is A*A + B*B.
Run Code Online (Sandbox Code Playgroud)
查询:
giveSum(5, A, B).
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.我该怎么办?我对Prolog很新,所以我仍然犯了很多错误.
提前致谢!
我正在寻找一种方法来确定是否存在方程的解,例如: 3n1 + 4n2 + 5n3 = 456,其中n1,n2,n3是正整数.
或者更一般:是零或正整数n1,n2,n3 ......解决方程k1n1 + k2n2 + k3n3 ... = m其中k1,k2,k3 ......和m是已知的正整数.
我不需要找到解决方案 - 只是为了确定是否存在解决方案.
编辑:
关于这个算法的实际使用:
在通信库中,我想在处理消息之前根据其大小决定给定消息是否有效.例如:我知道消息包含零个或多个3字节元素,零个或多个4字节元素和零个或多个5个字节元素.我收到了456字节的消息,我想在进一步检查其内容之前确定其有效性.当然,消息的标题包含每种类型的元素数量,但我想通过传递类似的东西在通信库级别进行第一次检查pair<MsgType,vector<3,4,5>>
.
这是一个面试问题:
给定在[1,5]中生成随机数的函数,我们需要使用此函数生成范围[1,9]中的随机数.我考虑了很多,但我无法写出一个满足ramdomness的等式.人们请回答.这可能在将来的某些采访中有所帮助.