可能重复:
查询是否数字是2的幂
如何检查数字是否为2的幂
我需要这个原型的函数体:
bool isPOT(int x);
Run Code Online (Sandbox Code Playgroud)
所以它将返回例如isPOT(3)= FALSE,但isPOT(8)= TRUE
什么是最漂亮/简洁的算法?什么是最有效的?
PS:我很惊讶我在SO上找不到这个问题,所以我完全期待有人发现一些重复.
PPS:有人可以创建POT,NPOT,Power-Of-Two标签吗?
我正在构建一个音叉应用程序.前叉应允许最多12个预设音高.
此外,我希望允许用户选择一个主题.每个主题都将加载一组预设(不必使用所有预设).
我的配置文件看起来像这样*:
theme: "A3"
comment: "An octave below concert pitch (ie A4 440Hz)"
presets: {
A3 220Hz=220.0
}
// http://en.wikipedia.org/wiki/Guitar_tuning
theme: "Guitar Standard Tuning"
comment:"EADGBE using 12-TET tuning"
presets: {
E2=82.41
A2=110.00
D3=146.83
G3=196.00
B3=246.94
E4=329.63
}
theme: "Bass Guitar Standard Tuning"
comment: "EADG using 12-TET tuning"
presets: {
E1=41.204
A2=55.000
D3=73.416
G3=97.999
}
Run Code Online (Sandbox Code Playgroud)
...需要提取到这样的结构:
@class Preset
{
NSString* label;
double freq;
}
@class Theme
{
NSString* label;
NSMutableArray* presets;
}
NSMutableArray* themes;
Run Code Online (Sandbox Code Playgroud)
如何使用JSON编写文件?(我想在用户方面创建一个最小的打字 - 我可以如何简洁地获得它?有人可以给我一个第一个主题的例子吗?)
如何使用https://github.com/johnezang/JSONKit将其解析为结构?
我想在C应用程序中使用基于事件的Python库.我使用官方C-API嵌入Python:http://docs.python.org/2/c-api/index.html#c-api-index
从C调用方法并收集返回值是没有问题的.但是,我不知道如何做到以下几点:
几个python库函数采用我认为是python函数指针作为参数.
从C调用这些方法时,是否可以传递C函数指针,以便Python函数使用C函数作为回调?
如果没有,如何让Python使用C回调?
假设我们有一家香水店,有100种不同的香水.
假设有10,000个顾客,每个香水都有一到五颗星.
让我们说问题是:"如何最好地构建一包5种香水,以便95%的顾客至少给其中一种香水评价4+"
怎么做这个算法?
注意:我可以看到即使问题没有正确形成; 不能保证这种结构甚至存在.在两个参数之间进行权衡.
注意:此外,(这使得香水类比变得有点人为),无论我们得到一个好的比赛还是三个好比赛都没关系.所以{4.3,0,0,0,0}相当于{4.3,4.2,4.2,4.2,4.2} - 在这两种情况下得分均为4.3.
让我们说为了论证的目的,香水0-19是甜的,香水20-39是酸的,等等(sim.盐,苦,unami)
因此0-19之间会有很高的互相关.
如果你用空间中的100个点建模,那么0-19将非常强烈地相互吸引,它们将组成一个簇.
同样地,对于其他四种口味,您将获得另外4个群集.
因此,从一个指标,我们已经分离出5种不同的口味.
但这种技术是否会扩展?
π
PS只是提供相关技术的名称将非常有用,因为这将允许我向谷歌提供进一步的信息.所以任何回答只是在业界公认的术语中重申这个问题会有用!
我需要解析MIDI文件并在适当的时刻生成note-on消息.
我目前正在使用http://csharpsynthproject.codeplex.com/的端口 (这是这里的端口)
这个端口的问题在于,音序器和合成器彼此如此密集,以至于试图将它们分开是一个很大的问题.
因此,我正在寻找另一种方法.
π
假设我们有一群10人,彼此距离不到20米.每个人都有一部手机(iPhone/android/Windows手机).
一个人点击屏幕发送消息.
这是其他人立即注册的.同步是关键.它必须在几毫秒内击中所有目标设备.
我怎么能这样做?
我在Unity3D工作,虽然它允许移动插件我可以按平台单独实现.
只有iphone的解决方案仍然会引起人们的兴趣.
编辑:请不要只说"使用蓝牙"
编辑:改写问题的一种方法:是否可以设置一堆手机,以便可以在它们之间发送UDP数据包?(Ad-Hoc网络?)
任务是创建一个单参数函数,该函数转发除了一个(Foo)之外的所有类型(它转换为Bar).
(我们假设存在从Foo到Bar的转换).
以下是使用场景:
template<typename Args...>
void f( Args... args )
{
g( process<Args>(args)... );
}
Run Code Online (Sandbox Code Playgroud)
(我试图提取/从原来的背景下简化它在这里 -如果我犯了一个错误,请有人告诉我!)
以下是两种可能的实现:
template<typename T>
T&& process(T&& t) {
return std::forward<T>(t);
}
Bar process(Foo x) {
return Bar{x};
}
Run Code Online (Sandbox Code Playgroud)
和...
template <typename T, typename U>
T&& process(U&& u) {
return std::forward<T>(std::forward<U>(u));
}
template <typename T>
Bar process(Foo x) {
return Bar{x};
}
Run Code Online (Sandbox Code Playgroud)
我有良好的权威(这里),第二个是更好的.
但是,我无法理解给出的解释.我认为这是深入研究C++中一些最黑暗的角落.
我想我缺少理解正在发生的事情所需的机器.有人可以详细解释一下吗?如果挖掘太多,是否有人可以推荐用于学习必要的先决条件概念的资源?
编辑:我想补充一点,在我的特定情况下,函数签名将匹配此页面上的typedef-s之一.也就是说,每一个论点将是要么PyObject*(与PyObject作为一个普通的C结构)或一些基本的C类一样const char*,int,float.所以我的猜测是轻量级实现可能是最合适的(我不是过度推广的粉丝).但我真的很想获得正确的思维方式来解决这些问题.
OSX现在已经为多个版本内置了连续语音识别功能.
现在非常好.
OSX 10.10是否有这种连续语音识别引擎的API?
谷歌搜索告诉我,大约在2009年只有NSSpeechRecogniser(OSX上的MS SAPI sdk等价物)
谁能确认是否仍然如此?
我问的是因为我正在构建自己的集成UI,这将是Leap控制器和语音输入的混合.
如果我只能使用OSX的引擎,那就太棒了.否则我认为我没有任何其他好/可行的选择.
这个问题来自如何在 OSX 上挂接/重新映射任意键盘事件?
到目前为止,我可以使用以下方式点击修饰键和大多数其他键:
_eventTap = CGEventTapCreate( kCGHIDEventTap,
kCGHeadInsertEventTap,
kCGEventTapOptionDefault,
CGEventMaskBit( kCGEventKeyDown )
| CGEventMaskBit( kCGEventFlagsChanged )
,
(CGEventTapCallBack)_tapCallback,
(__bridge void *)(self));
Run Code Online (Sandbox Code Playgroud)
值得注意的是,在采取行动之前F3正确报告键码 (160) 。即我可以通过让事件处理程序返回 NULL 来禁用该操作(从而无法传播事件)。
但是,F7 到 F12 和弹出/电源不会触发回调。
如果我添加:
| CGEventMaskBit( NSSystemDefined )
Run Code Online (Sandbox Code Playgroud)
...现在剩余的 Fx 键确实会触发回调(尽管 Power/Eject 仍然不会),但我无法访问事件的 keyCode 方法。
它会产生一个错误:
2015-05-21 12:30:02.044 tap_k[16532:698660] NSSystemDefined: 0 2015-05-21 12:30:02.044 tap_k[16532:698660] * 在 -[NSEvent keyCode]、/SourceCache/AppKit/ 中断言失败AppKit-1347.57/AppKit.subproj/NSEvent.m:2471 2015-05-21 12:30:02.045 tap_k[16532:698660] *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“发送到事件“NSEvent 的消息无效” : 类型=SysDefined loc=(882,687) 时间=118943.3 标志=0 win=0x0 winNum=0 ctxt=0x0 子类型=8 data1=2560 data2=-1"'
所以要么:
(1)我需要一些其他方式从 …
我一直在尝试(从事件处理程序中)确定哪个键盘触发了该事件。我一直在使用这两篇文章:
在第二篇文章中,作者使用Carbon技术成功地分离了键盘,但是使用Cocoa尝试相同的技巧失败了。
在我自己的系统上,两者都失败了,可能是因为我的无线键盘也是苹果制造的,所以可能报告的标识符与内置键盘相同。
在第一篇文章中,有人提出了一种解决方案,该方案在较低级别(可以区分键盘)上监视键盘事件,并将此数据存储在队列中,然后让事件处理程序检索信息。
这看起来有些毛茸茸,所以我只是在这里检查是否有人发现了更好的东西。
这是我的代码,展示了在事件处理程序中区分键盘的失败:
// compile and run from the commandline with:
// clang -fobjc-arc -framework Cocoa -framework Carbon ./tap_k.m -o tap_k
// sudo ./tap_k
#import <Foundation/Foundation.h>
#import <AppKit/NSEvent.h>
//#import <CarbonEventsCore.h>
#include <Carbon/Carbon.h>
typedef CFMachPortRef EventTap;
// - - - - - - - - - - - - - - - - - - - - -
@interface KeyChanger : NSObject
{
@private
EventTap _eventTap;
CFRunLoopSourceRef _runLoopSource;
CGEventRef _lastEvent;
}
@end
// - - - …Run Code Online (Sandbox Code Playgroud)