我将开始学习抽象代数组,环等.我有兴趣了解任何编程语言,如果有的话可以帮助我学习/尝试我在理论上学到的概念.
编辑:我并不是在考虑实施我学到的东西.我有兴趣知道任何已经支持它们的语言.
众所周知,幺半群在编程中无处不在.它们无处不在,非常有用,作为一个"爱好项目",我正在开发一个完全基于其属性的系统(分布式数据聚合).为了使系统有用,我需要有用的monoids :)
我已经知道了这些:
现在,让我们将操作的准属性定义为保持等价关系的属性.例如,如果我们考虑相等长度或相同内容直到排列的列表是等效的,则列表串联是准可交换的.
这里有一些准幺半群和准交换幺半群和半群:
其他哪些确实存在?
language-agnostic math computer-science monoids abstract-algebra
我知道无符号,两个补码,一个补码和符号幅度,以及它们之间的区别,但我很好奇的是:
确定1到N范围内缺失值的常见访谈问题已经完成了一千多次.变化包括2个缺失值,最多K个缺失值.
示例问题:范围[1,10](1 2 4 5 7 8 9 10)= {3,6}
以下是各种解决方案的示例:
简单的面试问题变得更难:给出数字1..100,找到丢失的数字
我的问题是,看到一个缺失值的简单情况是O(n)复杂性,并且较大情况的复杂性收敛于大于O(nlogn)的大小:
通过对范围进行排序(mergesort)并迭代它来观察缺失的元素,难道只是更容易回答这个问题吗?
该解决方案应该不超过O(nlogn),并且能够解决1到N之外的范围的问题,例如10到1000或-100到+100等......
是否有理由相信上述SO链接中的给定解决方案将比基于排序的解决方案更好地存在大量缺失值?
注意:对于这个问题,似乎有很多常见的解决方案,假设只有一个数论的方法.如果在S/E采访中被问到这样一个问题,使用更多的计算机科学/算法方法是不谨慎的,假设该方法与数论解决方案的复杂性相同......
更多相关链接:
来自NP-Complete的维基百科条目:
"证明一些新问题是NP完全的最简单的方法是首先证明它是在NP中,然后减少一些已知的NP完全问题"
我很确定我理解这一点:如果我有问题,我可以证明它是NP-Complete如果我:
表明它在NP中(可以在非确定性图灵机上的多项式时间内验证问题的解决方案)
表明已知为NP-Complete的问题可以"减少"到新问题
所以,我的问题是,第一个NP完全问题"被证明"是NP完全的吗?同时,已知NP完全问题的集合必须为零,这将使得在上述过程中不可能采用步骤2.
这让我觉得有一种不同的证明方法,我不知道.由于缺少已知的多项式时间解决方案,或者可能由于缺少已知的多项式时间解而对某些问题"假设"整个NP完全属性.(实际上,写完这篇文章后,如果是这样的话,我不会感到惊讶,但无论如何我都喜欢一些古茹反馈).
由于Hex(基数16)使用0-9A-F,并且(我假设在这里)基数17使用0-9A-G,依此类推.一旦0-9A-Z用完,将使用什么符号.
升级到 VirtualBox 6.1.28 后尝试运行时vagrant up,收到以下错误消息
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["hostonlyif", "ipconfig", "vboxnet0", "--ip", "192.168.33.1", "--netmask", "255.255.255.0"]
Stderr: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
Run Code Online (Sandbox Code Playgroud) 有没有特别好的大学讲座可以在线下载MP3(或其他一些音频格式)?我特别感兴趣的是听一些我在工程学位上没有学到的更高级的课程,比如编译器,操作系统,AI,加密等.
关于CS视频讲座还有另外一个问题,但我想听MP3播放器上的讲座.
JUMP和CALL指令有何不同?它与GOTO或程序调用等更高级别的概念有什么关系?(我在比较中是否正确?)
这就是我的想法:
JUMP或GOTO是控件转移到另一个位置,控件不会自动返回到调用它的位置.
另一方面,CALL或过程/函数调用返回到调用它的位置.由于它们的性质不同,语言通常使用堆栈,并且推送堆栈帧以"记住"为每个被调用的过程返回的位置.此行为也适用于递归过程.在尾递归的情况下,不需要为每个调用"推"一个堆栈帧.
非常感谢您的回答和评论.
computer-science ×10
math ×2
algebra ×1
binary ×1
c++ ×1
helper ×1
monoids ×1
np-complete ×1
podcast ×1
recursion ×1
security ×1
vagrant ×1
virtualbox ×1