- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经有一段时间没有使用 C++ 了。我被要求参加工作面试,为满足以下接口(interface)的下采样例程创建 C++ 结构:
struct deterministic_sample
{
deterministic_rate( double rate );
bool operator()();
};
-- 具有以下行为:
deterministic_sample s;
s()
N 次,它返回true
,M 次。 M/N大致相等的速率我的解决方案,版本 2:
#include <iostream>
#include <cmath>
#include <climits>
using namespace std;
struct deterministic_sample
{
double sampRate;
int index;
deterministic_sample() {
sampRate = 0.1;
index = 0;
}
void deterministic_rate( double rate ) {
this->sampRate = rate; // Set the ivar. Not so necessary to hide data, but just complying with the interface, as given...
this->index = 0; // Reset the incrementer
};
bool operator()() {
if (this->index == INT_MAX) {
this->index = 0;
}
double multiple = this->index * this->sampRate;
this->index++; // Increment the index
if (fmod(multiple, 1) < this->sampRate) {
return true;
} else {
return false;
}
};
};
int main()
{
deterministic_sample s; // Create a sampler
s.deterministic_rate(0.253); // Set the rate
int tcnt = 0; // Count of True
int fcnt = 0; // Count of False
for (int i = 0; i < 10000; i++) {
bool o = s();
if (o) {
tcnt++;
} else {
fcnt++;
}
}
cout << "Trues: " << tcnt << endl;
cout << "Falses: " << fcnt << endl;
cout << "Ratio: " << ((float)tcnt / (float)(tcnt + fcnt)) << endl; // Show M / N
return 0;
}
面试官说这个 v2 代码“部分”解决了需求。 v1 没有构造函数(我的错误),也没有处理 int
ivar 的溢出。
我在这里错过了什么来使这个类(class)健壮/正确?我认为这是我错过的“工业实力”的某些方面。
附言。对于任何道德类型,我已经提交了我的第二次机会尝试......我只是很困扰知道为什么这是“部分”......
最佳答案
您所拥有的远比必要的复杂。您需要做的就是跟踪当前位置,并在超过阈值时返回 true
。
struct deterministic_sample
{
double sampRate;
double position;
deterministic_sample() : sampRate(0.1), position(0.0) {
}
void deterministic_rate( double rate ) {
assert(rate <= 1.0); // Only one output is allowed per input
sampRate = rate; // Set the ivar. Not so necessary to hide data, but just complying with the interface, as given...
// No need to reset the position, it will work with changing rates
};
bool operator()() {
position += sampRate;
if (position < 1.0)
return false;
position -= 1.0;
return true;
}
};
关于c++ - "Industrial Strength"C++ 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754041/
我已经使用 Google ICS 代码构建了我的代码。安卓模拟器不显示信号强度。有没有办法模拟假信号强度?我们可以显示至少 3 格的信号强度吗?我必须在何处进行哪些更改? 最佳答案 是的,当模拟器运行
注意:这与编程没有明确的关系,但我希望这可以从程序员的角度来解释。 关于当前的“密码强度等级”,有两件事我根本不明白。这一切都与蛮力进入有关。 (如果这些“密码强度等级”与除使用常用/流行密码之外的任
假设您有两组无序的校验和,一组大小为 N,一组大小为 M。根据比较它们的算法,您甚至可能不知道大小,但可以比较 N != M 以快速中止,如果您做。 用于校验和的散列函数有一定的碰撞几率,作为外行,我
GWT 的主要优势之一是用 java 编写代码,所有内容都经过编译并由多个浏览器通过 gwt 延迟绑定(bind)加载?? 除此之外,即仅在单个代码库上工作,与其他现有框架相比,GWT 是否还有其他优
这个问题在这里已经有了答案: Multiple values in single-value context (6 个答案) 关闭 3 年前。 我有函数Strength(): func (g Gro
我有一个富客户端应用程序连接到一组后备网络服务,其中连接由 SSL 保护。我需要确定用于实际 SSL 流的加密的“强度”,以向最终用户显示此信息。 我的理解是,客户端和服务器会在它们之间协商一个具有不
我已经有一段时间没有使用 C++ 了。我被要求参加工作面试,为满足以下接口(interface)的下采样例程创建 C++ 结构: struct deterministic_sample {
设置 Java 不提供对 JCE 无限强度策略文件的开箱即用支持 这会阻止用户使用 AES-256,这是广泛使用的加密标准中最大的 key 长度 不包括政策文件会导致很多问题: Unexpected
我无法检索 Sierre Wireless MC7304 上的信号强度。 通过 mmcli 发送 AT 命令似乎也不起作用。 :~ $ sudo mmcli -m /org/freedesktop/M
最近我发现了一种看似很酷的设备间通信方式,使用Google Nearby API .浏览文档并没有回答我的问题 - 是否可以实时测量连接信号强度,或者我应该发明一些东西,例如测量发送和接收数据或其他东
谁能给我解释一下如何安装 Unlimited Strength Jurisdiction Policy Files。我从 Oracle website 下载了 .jar 文件但我在安装它们时遇到了问题
我需要帮助来实现类似于 linkedIn 的配置文件强度。 这是它在 linkedIn 中如何工作的图片 这是我的代码 .fill { position: absolute;
error: java.lang.IllegalArgumentExeption: Cannot support TLS_RSA_WITH_AES_256_CBC_SHA with currently
我曾以不同的方式使用 Eclipse 和 vim 作为 Android 应用程序的开发环境,发现 Eclipse 插件和命令行 SDK 工具具有相似的功能。 由于我还没有完整地探索过任何一个,但是我想
我已经将JCE Unlimited Strength安装到JAVA_HOME\lib\security 但是,我仍然得到 128 的 Cipher.getMaxAllowedKeyLength("AE
我的程序是一个使用 256 key 长度的模拟加密器。当我在没有安装 JCE(因为没有 key 长度)的计算机上使用它时,它崩溃并出现以下错误: java.security.InvalidKeyExc
谁能告诉我 filter:Glow(Color=#000000, strength=2); 对于 Firefox、Opera、Safari 和 Chrome 的等价物? 最佳答案 我猜你要么在寻找 t
这个问题在这里已经有了答案: Checking if Unlimited Cryptography is available (9 个回答) 关闭8年前。 我确定 JCE Unlimited Stre
我的应用程序是一个纯 Java 包,它集成了一个嵌入式 Web 容器并处理 Oauth 2.0 身份验证流程。 运行跟踪 我已经通过使用 JAVA_OPTS="-Djavax.net.debug=ss
这个问题在这里已经有了答案: How to avoid installing "Unlimited Strength" JCE policy files when deploying an appl
我是一名优秀的程序员,十分优秀!