今天我读了一篇有趣的DailyWTF帖子,"Out of All the Possible Answers ...",我对它感兴趣,足以挖掘提交它的原始论坛帖子.这让我想到如何解决这个有趣的问题 - 最初的问题是在Project Euler上提出的:
2520是可以除以1到10中的每个数字而没有任何余数的最小数字.
可以被1到20的所有数字整除的最小数字是多少?
要将此作为一个编程问题进行改革,您将如何创建一个能够为任意数字列表找到最小公倍数的函数?
尽管我对编程很感兴趣,但我对纯数学的表现非常糟糕,但是我可以通过一些谷歌搜索和一些实验来解决这个问题.我很好奇SO用户可能采取的其他方法.如果你这么倾向,请在下面发布一些代码,希望还有一个解释.请注意,虽然我确定存在用于以各种语言计算GCD和LCM的库,但我更感兴趣的是比调用库函数更直接地显示逻辑的东西:-)
我最熟悉Python,C,C++和Perl,但您喜欢的任何语言都是受欢迎的.奖励积分,用于解释像我一样的其他数学挑战的人的逻辑.
编辑:提交后我确实发现这个类似的问题3个或更多数字的最小公倍数,但它回答了我已经想出的相同的基本代码,并没有真正的解释,所以我觉得这是不同的,足以让我们开放.
我正在尝试从电子邮件的纯文本脚本中提取电子邮件地址.我拼凑了一些代码来查找地址本身,但我不知道如何区分它们; 现在它只是吐出文件中的所有电子邮件地址.我想这样做它只会吐出前面有"From:"和一些通配符的地址,并以">"结尾(因为电子邮件设置为From [name] <[email]> ).
这是现在的代码:
import re #allows program to use regular expressions
foundemail = []
#this is an empty list
mailsrch = re.compile(r'[\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{1,4}')
#do not currently know exact meaning of this expression but assuming
#it means something like "[stuff]@[stuff][stuff1-4 letters]"
# "line" is a variable is set to a single line read from the file
# ("text.txt"):
for line in open("text.txt"):
foundemail.extend(mailsrch.findall(line))
# this extends the previously named list via the "mailsrch" variable
#which was named before
print …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种从Windows C/C++ API中的文件夹创建ZIP文件的方法.我可以使用Shell32.Application CopyHere方法找到在VBScript中执行此操作的方法,我找到了一个教程,解释了如何在C#中执行此操作,但C API没有任何内容(C++也很好,项目已经使用了MFC).
如果有人可以分享一些可以在Windows XP/2003上成功创建zip文件的示例C代码,我将非常感激.如果失败了,如果有人可以找到可靠的文档或教程,那将是很好的,因为MSDN搜索不会出现太多问题.我真的希望避免为此运送第三方库,因为功能显然存在,我只是无法弄清楚如何访问它.谷歌的搜索没有任何用处,只是引人入胜的信息.这里希望社区中有人对此进行整理,并为后人分享!
我需要能够列出传递给其他正在运行的进程的命令行参数(如果有的话).我已经在系统上运行了进程的PID,所以基本上我需要确定传递给给定PID XXX的进程的参数.
我正在研究用于管理流程的Python模块的核心部分.代码在C中编写为Python扩展,并将由更高级别的Python库包装.这个项目的目标是避免依赖于第三方库,例如pywin32扩展,或者在命令行上调用'ps'或taskkill等丑陋的黑客,所以我正在寻找一种在C代码中执行此操作的方法.
我已经用Google搜索了一些,并找到了一些简短的建议,使用CreateRemoteThread()将自己注入其他进程,然后运行GetCommandLine(),但我希望有人可能有一些工作代码示例和/或更好的建议.
更新:我在CodeProject上找到了使用NtQueryProcessInformation的完整工作演示代码和解决方案:http://www.codeproject.com/KB/threads/GetNtProcessInfo.aspx - 这是不理想的,因为"不支持"直接从中剔除信息NTDLL结构,但我会忍受它.感谢大家的建议.
更新2:我通过更多谷歌搜索来挖掘不使用C++代码的C版本,并且更直接/更简洁地指出了这个问题.有关详细信息,请参见http://wj32.wordpress.com/2009/01/24/howto-get-the-command-line-of-processes/.
谢谢!
我意识到"快"有点主观所以我会用一些背景来解释.我正在研究一个名为psutil的Python模块,用于以跨平台的方式读取流程信息.其中一个功能是pid_exists(pid)
用于确定PID是否在当前进程列表中的功能.
现在我这样做是显而易见的,使用EnumProcesses()来拉动进程列表,然后通过列表进行交互并查找PID.但是,一些简单的基准测试显示,这比基于UNIX的平台(Linux,OS X,FreeBSD)上的pid_exists函数要慢得多,我们使用kill(pid, 0)
0信号来确定PID是否存在.额外的测试表明它的EnumProcesses几乎一直在占据.
任何人都知道比使用EnumProcesses更快的方法来确定PID是否存在?我尝试了OpenProcess()并检查是否有错误打开不存在的进程,但结果比通过EnumProcesses列表迭代慢了4倍,所以也是如此.还有其他(更好的)建议吗?
注意:这是一个Python库,旨在避免第三方lib依赖项,如pywin32扩展.我需要一个比我们当前代码更快的解决方案,它不依赖于pywin32或标准Python发行版中没有的其他模块.
编辑:澄清 - 我们很清楚,阅读过程中存在固有的竞争条件.如果在数据收集过程中进程消失或者遇到其他问题,我们会引发异常.pid_exists()函数无意替换正确的错误处理.
更新:显然我早期的基准测试存在缺陷 - 我用C语言编写了一些简单的测试应用程序,EnumProcesses的编写速度一直较慢,OpenProcess(与PID有效但过程已经停止时一起使用GetProcessExitCode)实际上要快得多而且速度慢.
我希望能够在没有任何GUI交互的情况下在Mac OS X中切换声音输出源.
有一些工具可以控制声音输出,例如SoundSource和一个AppleScript来打开首选项对话框.
我正在寻找的是立即切换首选项的东西,比如SoundSource,但它必须是可编写脚本的.目标是通过一次击键在我的数字和模拟输出之间切换.我有一个帮助应用程序,将在一个按键上启动程序或AppleScript.我现在需要的只是在没有任何用户交互的情况下快速切换声源的applescript或应用程序.
如果需要的话,我愿意写一些Objective-C,但我几乎是Cocoa开发的新手.
您是否有一键式解决方案或者可以指导我从Cocoa应用程序或命令行控制声音系统首选项的好教程?
编辑:我创建了一个命令行应用程序来完成这个.您可以在http://code.google.com/p/switchaudio-osx/downloads下载.源代码也可以在项目网站上找到.