小编moo*_*eep的帖子

在最后一分钟内计算活跃用户的最快捷/最简单的方法是什么?

你为Zynga工作,想要计算不同游戏当前活跃玩家的数量.您的Web服务器处理来自许多不同游戏的ping,每个用户都有一个唯一的GUID.必须能够一次查询一个游戏的活跃用户数.活跃用户是那些在最后一刻获得ping的用户.

日志行连续进入Web服务器:

10.1.12.13 - - "http://zynga.com/ping?guid=<guid>&game=<gameID>" -
Run Code Online (Sandbox Code Playgroud)

计算活跃用户的最快捷/最简单的方法是什么?请使用一些代码建议45分钟的答案.


我的版本

// web server interface, every time ping comes in count() will be called
// void count(String gameId, String guid)
// int getNumberActivePlayers(String gameId)

struct Record{
  String gameID;
  String guid;
};

class PingStorage{
private:
  max_heap<long, Record> storage;
public:
  //    O(log(n))
  //  n = total number of elements in storage
  void count(String gameId, String guid){
    long currentTimeStamp = getUnixTimeStamp();
    Record rec ;
    rec.gameId = gameId;
    rec.guid = guid;
    storage.add(currentTimeStamp, rec);
  }
  //N = …
Run Code Online (Sandbox Code Playgroud)

algorithm time-series data-structures

15
推荐指数
2
解决办法
1242
查看次数

通过第三方Web服务获取客户端IP地址

我想从下面的页面(http://l2.io/ip或其他)中读取我的IP地址,使用javascript将他保存在我的变量"myIp"中.

function getMyIP() {
  var myIp;
  ...
  return myIp;
}
Run Code Online (Sandbox Code Playgroud)

你怎么办?

javascript ip

15
推荐指数
3
解决办法
12万
查看次数

python os.environ,os.putenv,/ usr/bin/env

我想确保os.system('env')不包含一些myname 导出~/.bashrc为的特定变量export myname=csj

因此,我在下面写了python代码:

import os

def print_all():
    print "os.environ['myname']=%s" % os.environ.get('myname')
    print "os.getenv('myname')=%s" % os.getenv('myname')
    os.system('env | grep myname')
    print

def delete_myname():
    if 'myname' in os.environ: os.environ.pop('myname')
    if os.getenv('myname'): os.unsetenv('myname')

print_all()

os.putenv('myname', 'csj2')
print "---------------------"
delete_myname()
print_all()

os.putenv('myname', 'csj3')
print "---------------------"
delete_myname()
print_all()
Run Code Online (Sandbox Code Playgroud)

我认为检查两者os.environ['myname'],os.getenv('myname') 然后删除它们,如果存在,可以确保os.system('env | grep myname')什么都得不到.

但结果是:

os.environ['myname']=csj
os.getenv('myname')=csj
myname=csj

---------------------
os.environ['myname']=None
os.getenv('myname')=None

---------------------
os.environ['myname']=None
os.getenv('myname')=None
myname=csj3
Run Code Online (Sandbox Code Playgroud)

我不明白为什么还要csj3上车os.system('env | grep myname')

python

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

当一个类成员影响其父类的成员时,C++会生成警告?

当派生类成员变量名称影响其父类之一时,有没有办法生成警告,例如

class Mother 
{
public:
  Mother() : i(0) {}
  virtual ~Mother() {}
protected:
  int i;
};

class Child : public Mother
{
public:
  Child() : Mother(), i(0) {}
  virtual ~Child() {}
protected:
  int i; /* NOK Expecting warning : declaration of 'int Child::i' shadows 'int Mother::i' */
};
Run Code Online (Sandbox Code Playgroud)

-Wshadow使用g ++ 编译时,上面的代码不会生成警告.

c++ gcc

14
推荐指数
1
解决办法
3847
查看次数

将点的最大曼哈顿距离最小化为一组点

对于2D中的3个点:

P1(x1,y1), 
P2(x2,y2), 
P3(x3,y3) 
Run Code Online (Sandbox Code Playgroud)

我需要找到一个点P(x,y),这样曼哈顿距离的最大值

max(dist(P,P1), 
    dist(P,P2), 
    dist(P,P3))
Run Code Online (Sandbox Code Playgroud)

将是最小的.

关于算法的任何想法?

我真的更喜欢精确的算法.

algorithm math geometry mathematical-optimization

14
推荐指数
1
解决办法
4045
查看次数

函数错误从数字列表返回3个最大值

我有这个数据文件,我必须找到它包含的3个最大数字

24.7    25.7    30.6    47.5    62.9    68.5    73.7    67.9    61.1    48.5    39.6    20.0
16.1    19.1    24.2    45.4    61.3    66.5    72.1    68.4    60.2    50.9    37.4    31.1
10.4    21.6    37.4    44.7    53.2    68.0    73.7    68.2    60.7    50.2    37.2    24.6
21.5    14.7    35.0    48.3    54.0    68.2    69.6    65.7    60.8    49.1    33.2    26.0
19.1    20.6    40.2    50.0    55.3    67.7    70.7    70.3    60.6    50.7    35.8    20.7
14.0    24.1    29.4    46.6    58.6    62.2    72.1    71.7    61.9    47.6    34.2    20.4
8.4     19.0    31.4    48.7    61.6    68.1    72.2 …
Run Code Online (Sandbox Code Playgroud)

python numbers max

14
推荐指数
3
解决办法
658
查看次数

准确的二进制图像分类

我正试图从游戏板中提​​取一个项目的信件.目前,我可以检测游戏板,将其分割成各个方块并提取每个方块的图像.

我得到的输入是这样的(这些是单独的字母):

在此输入图像描述在此输入图像描述在此输入图像描述在此输入图像描述在此输入图像描述在此输入图像描述

起初,我正在计算每个图像的黑色像素数,并将其用作识别不同字母的方法,这对于受控输入图像效果较好.但是,我遇到的问题是,对于与这些图像略有不同的图像,我无法做到这一点.

我每个字母大约有5个样本用于培训,这应该足够好了.

有谁知道什么是一个好的算法用于此?

我的想法是(在图像标准化后):

  • 计算图像和每个字母图像之间的差异,以查看哪一个产生最少的错误.但是,这不适用于大型数据集.
  • 检测角落并比较相对位置.
  • ???

任何帮助,将不胜感激!

python ocr opencv image-processing simplecv

12
推荐指数
2
解决办法
3957
查看次数

如何获得间隔的绝对值

请考虑以下声明:

select interval '-1 hours'
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何获得间隔的绝对值,即如果为负则切换或移除符号.我想到的唯一一件事是:

select abs(extract(epoch from interval '-1 hours'))
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有一种更优雅的方式(一种保留间隔类型的方式)?

postgresql

12
推荐指数
3
解决办法
5017
查看次数

实现作为仿函数的功能的优点和缺点

我正在和一位同事讨论一个只有一个公共方法的简单类的API.我最初去了:

class CalculateSomething
{
public:
  void operator()(const SomeObject &obj) const;

private:
  // ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我的同事反对使用operator(),并且为了清楚起见,希望简单地将方法命名为'calculate'.虽然我没有发现这个论点令人信服,但它让我想到了利弊.

优势运营商()

  • 这门课程很精简,有一个明确的目的.一旦实例化,它基本上充当自由函数.
  • 它是一个仿函数,可以很容易地使用(例如STL算法).
  • 当使用范围算法时,可以直接传递对象而不是通过函数指针,这使编译器能够内联代码.虽然不能保证,但通过函数指针完全禁止这种可能性.

缺点operator()

  • 如果不查看类名,该方法的作用就不太清楚了.(我个人不同意,因为班级只有一种方法,因此从班级名称中明确其含义)
  • 预计STL中的大多数算子都是无国籍的.我认为这是阻碍我的主要原因......

我很惊讶地看到我对此的搜索并没有带来太大的影响,因为我认为这是一个非常常见的情况(一类,一类责任).因此,我真的很想听听其他人对此的看法.

c++ oop functor design-guidelines

12
推荐指数
1
解决办法
427
查看次数

朋友类对象可以在派生类对象上访问基类私有成员吗?

我很惊讶下面的代码编译.

似乎一个与(公共继承)基类成为朋友的类可以访问基类的成员,提供派生类的实例.

如果继承被更改为private则编译失败.

总之,内部如何d.b_var有效F::func(D& d)

#include <iostream>
#include <string>
using namespace std;

class B{
    int b_var;
    friend class F;
};

class D: public B{
    int d_var;
};

class F{
    public:
        void func(D &d){
            d.b_var = 5; 
        }
};

int main()
{
    cout<<"fine";
}
Run Code Online (Sandbox Code Playgroud)

c++ inheritance private friend

12
推荐指数
2
解决办法
2332
查看次数