这是StackOverflow 问题的衍生产品.
假设您有一个固定数量k的存储位置,以及两个计数器的空间.您将收到ñ随机顺序的项目(的所有排列ň项目也同样可能).收到每个项目后,您可以将其存储在k个位置之一(丢弃之前存储的值之一),或丢弃该项目.您也可以递增或递减任一计数器.无法检索任何丢弃的项目.
问题是
显然,如果k> n/2,我们可以找到中位数.一般来说,试图保持丢弃的高值的数量等于丢弃的低值的数量的相同策略应该是最佳的,但我不确定如何证明它,也不知道如何找出它找到的概率中位数.
同样感兴趣的是我们不知道的情况下ñ但要知道的概率分布ñ.
编辑: 现在假设值是不同的(没有重复.)但是,如果你也可以解决非独特的情况,那将是令人印象深刻的.
当我尝试psql在 Windows 上的 emacs 中运行一个较差的进程时,我似乎没有得到任何响应。这似乎是一个已知问题,解决方案是安装 cygwin 版本psql。不幸的是,cygwinpsql似乎什么也没做,甚至psql -V什么都不做。有谁能解决这些问题,或者有一种简单的方法将查询从 emacs 发送到 postgresql。
我试图实现我自己的霍夫曼编码算法和C++ STL的优先级队列似乎没有正常工作.我从字符串中获取字符并按字符串中频率的顺序将它们插入到优先级队列中.代码编译并运行没有错误,唯一的事情是树似乎没有正确排序.这是代码,
class Node {
public:
int freq;
char data;
Node(int &f, char &d) { freq=f; data=d; }
bool operator<(const Node* &n) const { return n->freq < this->freq; }
};
void Init(priority_queue<Node*> &tree, string input) {
map<char,int> probability;
for(int i=0 ; i<input.size() ; i++) {
probability[input[i]]++;
}
map<char,int>::iterator it = probability.begin();
for(it ; it != probability.end() ; it++) {
Node* blah = new Node(it->second, (char&) it->first);
tree.push(blah);
}
Run Code Online (Sandbox Code Playgroud)
}
我究竟做错了什么?
谢谢
我得到了以下R代码,我需要将它转换为python并在python环境中运行它,基本上我用rpy2模块完成了这个,但是看起来有点沉闷与python做同样的事情,所以有人能找到更好的方法使用rpy2模块将以下R代码重写为等效的python脚本?
mymad <- function (x)
{
center <- median(x)
y <- abs(x - center)
n <- length(y)
if (n == 0)
return(NA)
half <- (n + 1)/2
1.4826 * if (n%%2 == 1) {
sort(y, partial = half)[half]
}
else {
sum(sort(y, partial = c(half, half + 1))[c(half, half +
1)])/2
}
}
Run Code Online (Sandbox Code Playgroud) 我想保存一个网页.我使用python urllib来解析网页.但我找到了保存的文件,其中缺少一些内容.缺少的部分是源网页的阻止,例如此部分 <div
style="display: block;" id="GeneInts">...</div>.我不知道如何在没有阻塞的情况下解析整个页面.你能帮我解决一下吗?谢谢!
这是我的计划
url = 'http://receptome.stanford.edu/hpmr/SearchDB/getGenePage.asp?Param=4502931&ProtId=1&ProtType=Receptor'
f = urllib.urlretrieve(url,'test.html')
Run Code Online (Sandbox Code Playgroud) python ×2
algorithm ×1
c++ ×1
emacs ×1
postgresql ×1
probability ×1
r ×1
rpy2 ×1
stl ×1
windows ×1