小编Jam*_*at7的帖子

有效地找到文本文件中的最后一行

我需要从一些非常大(几百兆字节)的文本文件中提取最后一行来获取某些数据.目前,我使用python循环遍历所有行,直到文件为空,然后我处理返回的最后一行,但我确信有一种更有效的方法来执行此操作.

使用python检索文本文件的最后一行的最佳方法是什么?

python text

31
推荐指数
6
解决办法
9万
查看次数

计数排序的时间复杂度

我正在学习算法课程,在那里我看到计数排序的时间复杂度是O(n + k),其中k是数字范围,n是输入大小.我的问题是,当k和n之间的差异太大时,例如当k = O(n 2)或O(n 3)时,我们可以说复杂度是O(n 2)或O(n 3) ?然后在这种情况下计数排序不是一个明智的方法,我们可以使用合并排序.我对吗?

sorting algorithm asymptotic-complexity

11
推荐指数
1
解决办法
1万
查看次数

计算出租车行程

假设我有N辆出租车,N个客户等着被出租车接走.客户和出租车的初始位置是随机/任意的.

现在我想将每辆出租车分配给一个客户.

客户都是固定的,出租车都以相同的速度移动.为简单起见,我们假设没有障碍物,出租车可以直线移动到指定的客户.

我现在想要最小化直到最后一个顾客进入他/她的出租车的时间.

是否有标准算法来解决这个问题?我有成千上万的出租车/客户.解决方案不一定是最佳的,只是'好'.

该问题几乎可以建模为标准的"分配问题",可使用匈牙利算法(Kuhn-Munkres算法或Munkres分配算法)解决.但是,我希望最大限度地降低成本最高的分配成本,而不是最小化分配成本的总和.

algorithm combinatorics

9
推荐指数
1
解决办法
1475
查看次数

未注释未使用的语句时浮点异常?

当运行如下所示的程序时,它会产生ok输出:

 j=         0    9007199616606190.000000 = x
 k=         0    9007199616606190.000000 = [x]
 r=  31443101                   0.000000 = m*(x-[x]) 
Run Code Online (Sandbox Code Playgroud)

但是当注释掉的行( //if (argc>1) r = atol(argv[1]);)被取消注释时,它会产生:

 j=     20000    9007199616606190.000000 = x
 k=     17285    9007199616606190.000000 = [x]
 r=  31443101                   0.000000 = m*(x-[x]) 
Run Code Online (Sandbox Code Playgroud)

即使该行应该没有效果,因为argc>1是假的.有没有人对这个问题有合理的解释?它是否可以在任何其他系统上重现?

 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
 int main(int argc, char *argv[]) {
   int  j, k, m=10000;
   double r=31443101, jroot=sqrt(83), x;
   //if (argc>1) r = atol(argv[1]);
   x = r * r * jroot;
   j = m*(x-floor(x));
   k = floor(m*(x-floor(x))); …
Run Code Online (Sandbox Code Playgroud)

c floating-point gcc compiler-errors

8
推荐指数
1
解决办法
296
查看次数

快速查找是否有2个或更多相等的数字

我有一组N个不同的数字经常变化.每次更改后,两个或更多数字都有可能变得相等,我不希望这样.数字N可以与最大可能整数一样大.知道经常发生变化,我不想在每次更改后将每个数字与其余数字进行比较.

如何快速查找阵列中是否至少有2个相等的数字?

language-agnostic arrays algorithm hashmap binary-search-tree

5
推荐指数
1
解决办法
212
查看次数

根据椭圆与长轴或短轴的角度找到椭圆的半径

我正在使用 UE3 并制作我的 HUD。我已经在画布上完成了它,并且有一个圆形按钮 - 问题是在不是方形的屏幕上,按钮是一个椭圆形。因此,这会导致检测鼠标是否在按钮“上方”的问题。

这是因为围绕整个椭圆的半径并不相同,就像圆的情况一样。

我的下划线问题是:

鉴于我知道,如何计算椭圆相对于点(鼠标位置)的半径:

  • 长轴和短轴的半径
  • 与点(鼠标位置)的轴(长轴和短轴)的角度

algorithm graphics geometry

4
推荐指数
1
解决办法
5753
查看次数

确定2D列表中的列表总和是奇数还是偶数

我是Python的新手,我遇到了一个问题,我在做作业时遇到了问题.作业问题如下:

实现函数evenrow(),它接受一个二维的整数列表,如果表的每一行总和为偶数,则返回True,否则返回False(即,如果某行总和为奇数)

这是结果应该是:

evenrow([[1,3], [2,4], [0,6]])

True

evenrow([[1,3], [3,4], [0,5]])

False
Run Code Online (Sandbox Code Playgroud)

这是我的功能现在的样子:

def evenrow(lst):
    mysum = 0
    for i in lst:
        mysum += sum(i)
        if mysum % 2 == 0:
            return True
        else:
            if mysum %2 ==1:
                return False
Run Code Online (Sandbox Code Playgroud)

出于某种原因,无论我输入什么,我的功能都会让我真实.有什么我可以忽略的吗?任何提示将不胜感激!

python

0
推荐指数
1
解决办法
1444
查看次数