小编Mor*_*ire的帖子

优化非丰富和算法

我正在尝试解决这个项目欧拉问题:

完美数字是一个数字,其正确除数的总和恰好等于数字.例如,28的适当除数之和为1 + 2 + 4 + 7 + 14 = 28,这意味着28是一个完美数.

如果n的适当除数之和小于n,则数n被称为不足,如果该和超过n,则称其为n.

由于12是最小的有限数,1 + 2 + 3 + 4 + 6 = 16,可以写成两个有限数之和的最小数是24.通过数学分析,可以显示所有整数大于28123可以写成两个数字的总和.然而,即使已知不能表示为两个充裕数的总和的最大数量小于该限制,也不能通过分析进一步减小该上限.

找到所有正整数的总和,这些正整数不能写为两个数字的总和.

我的解决方案

#returns a list of the divisors of a given number
def Divs(Number):
    Divisors = []

    for i in range(2 , int(Number**0.5) + 1):
        if Number % i == 0:
            Divisors.append(i)

    for q in range(len(Divisors)):
        if Divisors[q] != (Number / Divisors[q]):
            Divisors.append(Number / Divisors[q])

    Divisors.insert(0,1)
    return Divisors

#returns a list of abundant numbers …
Run Code Online (Sandbox Code Playgroud)

python

9
推荐指数
2
解决办法
3518
查看次数

Linux x86 NASM - 子程序:从EAX打印双字

所以我正在学习使用NASM语法的x86 Linux程序集(哦,上帝,不是这个,你们都在考虑).我正在尝试创建一个子程序,只需将EAX中的值打印到stdout即可.代码运行并退出而没有错误,但没有打印.我无法弄清楚为什么.首先,这是我正在处理的文件:

segment .bss
    to_print:   resd 1

segment .text
    global print_eax_val

print_eax_val:                  ;       (top)
    push    dword ebx           ;Stack:  edx
    push    dword ecx           ;        ecx
    push    dword edx           ;        ebx
                                ;       (bot)

    mov     ecx,eax             ;ecx = eax

    mov     [to_print],ecx      ;to_print = ecx

    mov     eax, 4              ;sys_write
    mov     ebx, 1              ;to stdout
    add     ecx, 47             ;add 47 for ASCII numbers
    mov     edx, 2              ;double word = 2 bytes
    int     0x80

    mov     eax, [to_print]     ;eax = original val
    pop     edx                 ;pop …
Run Code Online (Sandbox Code Playgroud)

linux x86 assembly nasm

6
推荐指数
1
解决办法
3664
查看次数

PySide-QtWebKit:CSS 字体系列无效

在 QWebView 中,我使用 QWebView.setHtml() 动态创建和加载 HTML。在我传递给此方法的 HTML 字符串中,有一个<style>部分可以从外部文件注入 CSS 字符串。除了字体系列之外,CSS 运行良好。字体始终回退到 QWebView 默认的无衬线字体。我可以使用 更改默认字体QWebView.settings().setFontFamily(QtWebKit.QWebSettings.StandardFont, "serif"),但这只会使页面上的所有内容都成为衬线字体,而不是遵循 CSS 字体系列值。

我的 CSS 文件中的相关部分:

.page-title {
    color:#BBBBBB;
    font-family:"Times New Roman",Garamond,serif;
}
Run Code Online (Sandbox Code Playgroud)

这不会按预期呈现为衬线字体,而是呈现为通用无衬线字体。但是,颜色显示没有问题。

有一次,为了进行调试,我在调用 QWebView.setHtml() 之前打印了完整的 HTML 字符串,并将输出重定向到一个文件。当我在 Chromium 中打开该文件时,它按预期呈现,这让我相信问题不是HTML /CSS 问题。如果您感兴趣的话,这是该输出。

编辑:因为我在这里设置了赏金,所以这里有一个快速的tl;dr,它应该总结所有重要的内容:

使用 PySide,如何使 QWebView 在通过 QWebView.setHtml() 加载的 HTML 页面中遵循 CSS 字体系列设置?具体来说,是否有一些秘密的隐藏设置可以打开和关闭这种行为?或者我应该将其报告为框架中的错误?

如果您想亲自测试一下,这里是我正在开发的项目的 GitHub 存储库的链接。自述文件中列出了依赖项。

css python qt qtwebkit pyside

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

Pygame:key.get_pressed()与事件队列不一致

我试图在Python中使用pygame为应用程序设计简单的控件.我已经掌握了基础知识,但我正在碰到一个奇怪的墙:我正在使用箭头键来控制我的角色.如果我按住一个箭头键,然后按住另一个箭头键(对角线移动),角色会按预期移动.但是,如果我释放我按下的第二个键(同时仍然按住第一个键),即使我仍然按住第一个键,角色也会停止移动.这是我的简单动作代码:

for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
        sys.exit()
    elif event.type == KEYDOWN:
        if pygame.key.get_pressed()[K_LEFT]:
            player.pos = (player.pos[0] - 2, player.pos[1])
        if pygame.key.get_pressed()[K_RIGHT]:
            player.pos = (player.pos[0] + 2, player.pos[1])
        if pygame.key.get_pressed()[K_UP]:
            player.pos = (player.pos[0], player.pos[1] - 2)
        if pygame.key.get_pressed()[K_DOWN]:
            player.pos = (player.pos[0], player.pos[1] + 2)
Run Code Online (Sandbox Code Playgroud)

现在,我自然很困惑.所以我试着打印一些线来调试.在主控制循环的顶部,我写道:

print (pygame.key.get_pressed()[K_DOWN], pygame.key.get_pressed()[K_RIGHT])
print pygame.event.get()
Run Code Online (Sandbox Code Playgroud)

...输出显示向下和向右箭头键状态的元组,然后显示pygame事件队列.我的结果让我更加困惑.如果我角色的移动对角线向下和向右,按向下键,然后再右键,然后松开右键,使其简单地向下移动,字符停止为移动之前......但是这是印到shell:

(1, 0)
[]
Run Code Online (Sandbox Code Playgroud)

也就是说,当我释放右箭头键并仍然按住向下箭头键时,pygame.key.get_pressed()知道向下箭头键仍然被按下,但事件队列中没有任何内容.

此外,在代码的早期(在控制循环之前)我正在调用

pygame.key.set_repeat(1, 2)
Run Code Online (Sandbox Code Playgroud)

在按住键的同时使角色继续移动.

任何帮助将不胜感激!谢谢 :)

python pygame game-physics

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

使用类型类访问Haskell中类似数据类型的字段

我正在处理Haskell中的一些图形问题.在我的工作中,我决定我希望能够在图形数据类型中表示边缘颜色.所以我从边缘开始:边缘可以是彩色的也可以是未着色的.这是我正在思考的一个快速模型.请记住,我知道此代码中存在可怕的缺陷.

data BasicEdge v w = BasicEdge { b_endpoints :: (v,v), b_weight :: w}
data ColoredEdge v w c = ColoredEdge { c_endpoints :: (v,v), c_weight :: w, color :: c}

class Edge e where
    endpoints :: e -> (v,v)
    weight :: e -> w

instance Edge (BasicEdge v w) where
    endpoints = b_endpoints
    weight = b_weight

instance Edge (ColoredEdge v w c) where
    endpoints = c_endpoints
    weight = c_weight
Run Code Online (Sandbox Code Playgroud)

问题1:vw在BasicEdge比不同类型的变量vw在ColoredEdge.因此,试图以多态方式访问它们是荒谬的.

问题2:在边缘类定义的返回值是游离型的变量,所以他们不能用的返回值进行匹配 …

polymorphism haskell graph typeclass

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

标签 统计

python ×3

assembly ×1

css ×1

game-physics ×1

graph ×1

haskell ×1

linux ×1

nasm ×1

polymorphism ×1

pygame ×1

pyside ×1

qt ×1

qtwebkit ×1

typeclass ×1

x86 ×1