视觉是大多数程序员认为理所当然的感官之一.大多数程序员会花几个小时看电脑显示器(特别是在他们在区域的时候),但我知道有盲人程序员(例如目前在谷歌工作的电视拉曼).
如果您是一个盲人(或者慢慢变得盲目),您将如何设置开发环境来帮助您进行编程?
(请回答一个建议.这个问题的目的是将好的想法带到最顶层.此外,屏幕阅读器可以更早地阅读好的想法.)
我在接受采访时被问到这个问题.他们都是O(nlogn),但大多数人使用Quicksort而不是Mergesort.这是为什么?
任何人都可以给我一个LL解析与LR解析的简单例子吗?
#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.有人可以帮忙吗?
有没有人曾经实施过Fibonacci-Heap?几年前我这样做了,但它比使用基于阵列的BinHeaps要慢几个数量级.
那时候,我认为这是一个很有价值的教训,研究的结果并不像它声称的那样好.然而,许多研究论文声称他们的算法的运行时间基于使用Fibonacci-Heap.
你有没有设法产生有效的实施?或者你使用的数据集如此之大,以至于Fibonacci-Heap效率更高?如果是这样,一些细节将不胜感激.
language-agnostic algorithm performance data-structures fibonacci-heap
在用C/C++编写的小应用程序中,我遇到了一个问题 rand函数也许是种子:
我想生成一系列具有不同顺序的随机数,即具有不同的对数值(基数为2).但似乎所有产生的数字都是相同的顺序,波动在2 ^ 25到2 ^ 30之间.
是因为rand()用Unix时间播种,现在是一个相对较大的数字?我忘记了什么?我rand()只在一开始播种一次main().
假设我有一个n侧加载的模具,当我滚动它时,每个侧面k都有一些概率p k.我很好奇是否存在静态存储此信息的良好算法(即,对于一组固定的概率),以便我可以有效地模拟模具的随机滚动.
目前,我有一个针对此问题的O(lg n)解决方案.想法是存储所有k的前k个边的累积概率的表,它们生成范围[0,1)中的随机实数并且对表执行二元搜索以获得其累积的最大索引值不大于所选值.我更喜欢这个解决方案,但运行时没有考虑概率似乎很奇怪.特别是,在一方总是出现或值均匀分布的极端情况下,可以使用朴素的方法在O(1)中生成滚动的结果,尽管我的解决方案仍然需要采用多个步骤的对数.
有没有人对如何以某种方式在运行时"自适应"的方式解决这个问题有任何建议?
编辑:基于这个问题的答案,我写了一篇文章,描述了这个问题的许多方法,以及他们的分析.看起来Vose的别名方法的实现给出了Θ(n)预处理时间和每次掷骰的O(1)时间,这确实令人印象深刻.希望这是对答案中包含的信息的有用补充!
language-agnostic random algorithm probability data-structures
我试图理解为什么Dijkstra的算法不适用于负权重.阅读最短路径上的示例,我试图找出以下场景:
2
A-------B
\ /
3 \ / -2
\ /
C
Run Code Online (Sandbox Code Playgroud)
来自网站:
假设边缘全部从左向右指向,如果我们从A开始,Dijkstra算法将选择最小化d(A,A)+长度(边缘)的边(A,x),即(A,B).然后设置d(A,B)= 2并选择另一个边(y,C),使d(A,y)+ d(y,C)最小化; 唯一的选择是(A,C),它设置d(A,C)= 3.但它从未找到从A到B的最短路径,通过C,总长度为1.
我无法理解为什么使用Dijkstra的以下实现,d [B]将不会更新为1(当算法到达顶点C时,它将在B上运行放松,看到d [B]等于2,因此更新它的价值1).
Dijkstra(G, w, s) {
Initialize-Single-Source(G, s)
S ? Ø
Q ? V[G]//priority queue by d[v]
while Q ? Ø do
u ? Extract-Min(Q)
S ? S U {u}
for each vertex v in Adj[u] do
Relax(u, v)
}
Initialize-Single-Source(G, s) {
for each vertex v ? V(G)
d[v] ? ?
?[v] …Run Code Online (Sandbox Code Playgroud) 此早期问题解决了可能导致算法具有O(log n)复杂性的一些因素.
什么会导致算法具有时间复杂度O(log log n)?
algorithm ×7
big-o ×2
random ×2
bash ×1
blind ×1
c ×1
c++ ×1
dijkstra ×1
directory ×1
ll-grammar ×1
logarithm ×1
lr-grammar ×1
math ×1
mergesort ×1
parsing ×1
performance ×1
probability ×1
quicksort ×1
sorting ×1
workflow ×1