在这段代码中:
function Cls() {
this._id = 0;
Object.defineProperty(this, 'id', {
get: function() {
return this._id;
},
set: function(id) {
this._id = id;
},
enumerable: true
});
};
var obj = new Cls();
obj.id = 123;
console.log(obj);
console.log(obj.id);
Run Code Online (Sandbox Code Playgroud)
我想得到{_id:123,id:123}但是得到{_id:123,id:[Getter/Setter]}
有没有办法让console.log函数使用getter值?
我正在尝试为游戏算法创建一个可解决性函数.基本上是一个函数,如果可以解决,它会为给定的游戏返回true或false.
该游戏是Buttonia.com(尚未实现该算法),这是一种熄灯游戏.基本上你有一个按钮网格,按下时,每个按钮都会改变它的某些邻居的状态.目前我生成随机游戏配置,然后尽可能应用启发式.其余的是由强力搜索决定的.
到目前为止,我的进步是建立一个方程系统来模拟游戏.由于每个按钮需要改变状态奇数次才能以向下状态结束,因此它的等式是这样的:
button_A = 1 - (button_1 + button_2 + ... + button_X)%2
其中button_1到button_X是按钮状态,对button_A有效.如果某些按钮不依赖于其他按钮,则可以立即解决这些按钮.其余的,我尝试一个配置,直到我遇到冲突,然后回溯.
目前,该算法适用于较小的游戏配置.我已经从3x3游戏测试了它,尺寸为10x10.其中6x6接近实际游戏的上限.
这些方程式大大减少了蛮力的搜索空间,使其变得实用.可能存在解决方程组的纯粹数学方法.
ascii中的3x3游戏示例(来自buttonia.com/?game=2964):
||#
-o-
+#|
Legend:
o = affect only self
- = affect left and right neighbors
| = affect above and below neighbors
+ = affect left, right, above and below neighbors
# = affect all 8 surrounding neighbors
Run Code Online (Sandbox Code Playgroud)
解决方案,按下这些:(0,0),(2,0),(1,2),(0,1),(1,1),(2,1)
这个游戏的等式:
Button_0_0 = 1 - (0) % 2
Button_1_0 = 1 - (Button_2_0) % 2
Button_2_0 = 1 - (0) …Run Code Online (Sandbox Code Playgroud) 我目前正在从restified切换到Express,我注意到Express中res.send({})的输出具有漂亮的JSON和白色空间,而Restify输出在没有空格的情况下缩小.
由于JSON不适合人类消费,我更喜欢缩小的输出.是否有一种简单的方法可以让Express输出缩小的JSON,而无需单独更改所有res.send()调用?出于性能原因,我还希望设置更多的中间件.
当运算符是自定义运算符而不是标准算术运算符时,实现高斯消元法的好方法是什么?
以下是运营商:
加成:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0
Run Code Online (Sandbox Code Playgroud)
减法:
0 - 0 = 0
0 - 1 = 1
1 - 1 = 0
Run Code Online (Sandbox Code Playgroud)
乘法:
0 * 0 = 0
0 * 1 = 0
1 * 1 = 1
Run Code Online (Sandbox Code Playgroud)
师:
0 / 0 = illegal
0 / 1 = 0
1 / 1 = 1
Run Code Online (Sandbox Code Playgroud)
以下是作为增广矩阵的一组示例方程,其中RHS位于最右侧列:
1, 1, 0, 1, 0, 0, 0, 0, 0, 1
0, 1, 0, …Run Code Online (Sandbox Code Playgroud) 我有一个问题让Mercurial认出我的编辑器.我有一个文件,c:\windows\notepad.exe并在命令提示符下键入"notepad"工作.我可以通过使用" -m"参数来提交提交标题.但是一个简单的" hg commit"会带来错误.
致电" hg --traceback commit"会出现:
Traceback (most recent call last):
File "mercurial\dispatch.pyc", line 47, in _runcatch
File "mercurial\dispatch.pyc", line 466, in _dispatch
File "mercurial\dispatch.pyc", line 336, in runcommand
File "mercurial\dispatch.pyc", line 517, in _runcommand
File "mercurial\dispatch.pyc", line 471, in checkargs
File "mercurial\dispatch.pyc", line 465, in <lambda>
File "mercurial\util.pyc", line 401, in check
File "mercurial\commands.pyc", line 708, in commit
File "mercurial\cmdutil.pyc", line 1150, in commit
File "mercurial\commands.pyc", line 706, in commitfunc
File "mercurial\localrepo.pyc", …Run Code Online (Sandbox Code Playgroud) 如何反转二进制方程,以便我可以找到哪些输入将产生给定的输出.
例:
Inputs: i0 through i8
Outputs: o0 through o8
Operators: ^ = XOR, & = AND
Run Code Online (Sandbox Code Playgroud)
二元方程:
(1&i0) ^ (1&i1) ^ (0&i2) ^ (1&i3) ^ (0&i4) ^ (0&i5) ^ (0&i6) ^ (0&i7) ^ (0&i8) = o0
(0&i0) ^ (1&i1) ^ (0&i2) ^ (1&i3) ^ (1&i4) ^ (0&i5) ^ (0&i6) ^ (0&i7) ^ (0&i8) = o1
(0&i0) ^ (1&i1) ^ (1&i2) ^ (0&i3) ^ (0&i4) ^ (1&i5) ^ (0&i6) ^ (0&i7) ^ (0&i8) = o2
(1&i0) ^ (0&i1) ^ (0&i2) …Run Code Online (Sandbox Code Playgroud) 这是假的:
(0xffffffff << 31 << 1) === (0xffffffff << 32)
Run Code Online (Sandbox Code Playgroud)
看起来应该是真的.添加>>> 0任何地方都不会改变这一点
为什么这样,我怎样才能正确编写处理的代码<< 32?
javascript unsigned bit-manipulation integer-overflow bit-shift