小编dir*_*lik的帖子

找到不满足条件的最小非负整数

我有f接受int和返回的功能bool.我想找到的最小非负整数x,对于这f(x)False.我怎么能用大多数pythonic方式(理想情况下一行)?


我现在就是这样做的:

x = 0
while f(x):
    x += 1
print(x)
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

x = <perfect one line expression>
print(x)
Run Code Online (Sandbox Code Playgroud)

python algorithm python-3.x

6
推荐指数
1
解决办法
109
查看次数

为什么 Range.getBoundingClientRect() 对于文本区域内的范围返回 0?

我有<textarea>元素并在其中创建范围:

  • 通过创建新范围document.createRange()
  • <textarea>获取via的唯一子节点textarea.childNodes[0]
  • range.setStart通过和设置范围开始和范围结束range.setEnd

然后我打电话range.getBoundingClientRect()

let textarea = document.querySelector('textarea');
let node = textarea.childNodes[0];

let range = document.createRange();
range.setStart(node, 3);
range.setEnd(node, 5);
console.log(range.getBoundingClientRect());
Run Code Online (Sandbox Code Playgroud)
<textarea>aa bb cc</textarea>
Run Code Online (Sandbox Code Playgroud)

但我收到ClientRect全零字段的对象,即left = top = width = height = 0. 为什么这些字段为零?


<textarea>请注意,如果我用普通的 div替换,一切正常:

let textarea = document.querySelector('div');
let node = textarea.childNodes[0];

let range = document.createRange();
range.setStart(node, 3);
range.setEnd(node, 5);
console.log(range.getBoundingClientRect());
Run Code Online (Sandbox Code Playgroud)
<div>aa bb cc</div>
Run Code Online (Sandbox Code Playgroud)

html javascript css range getboundingclientrect

6
推荐指数
1
解决办法
2482
查看次数

用另一个模板参数的模板模板

我有类Foo,它有两个模板参数,AB:

template<typename A, typename B>
struct Foo {};
Run Code Online (Sandbox Code Playgroud)

我也有类Base,它有一个模板模板参数:

template<template<typename B> typename Foo>
struct Base {};
Run Code Online (Sandbox Code Playgroud)

Derived假设以下内容我想编写类:

  • Derived有一个模板参数(A)
  • Derived 扩展课程 Base
  • Derived作为模板参数传递给类BaseFoo,但有一个参数"currying"(A)

我怎样才能做到这一点?


这是我的(不工作)解决方案:

template<template<typename B> typename Foo>
struct Base {};

template<typename A, typename B>
struct Foo {};

template<template<typename A, typename B> typename Foo, typename A>
struct BindFirst {
    template<typename B>
    using Result = Foo<A, B>;
};

template<typename A> …
Run Code Online (Sandbox Code Playgroud)

c++ templates metaprogramming currying

6
推荐指数
1
解决办法
111
查看次数

在没有慢速差异列表的情况下获取 git status boolean

如果我的 git 目录更改,我有一个 bash PS1 会显示红色,如果没有更改,我会显示绿色。

if [ $? -eq 0 ]; then \
   echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \
   if [ "$?" -eq "0" ]; then \
     # @4 - Clean repository - nothing to commit
     echo "\n'$Green'"$(__git_ps1 "(%s)"'$Color_Off'); \
   else \
     # @5 - Changes to working tree
     echo "\n'$IRed'"$(__git_ps1 "(%s)"'$Color_Off'); \
   fi)\$ "; \
 fi)'
Run Code Online (Sandbox Code Playgroud)

这工作正常!但问题是在某些工作目录中非常慢,因为存在许多变化和很大的差异。

在没有完整的情况下获得 git status boolean (yes changed or no changed) 的更好方法是什么?

我试过git status --short …

git

5
推荐指数
1
解决办法
1456
查看次数

为什么.offsetParent返回非定位元素的最近表

MDN文档到Element.offsetParent:

HTMLElement.offsetParent只读属性返回到位于含有元件,其是最接近的(最近的在包含层次结构)的对象的引用.如果元素未定位,则offsetParent返回最近的表,表格单元格或根元素

.offsetParent如果元素未定位(即position: static),为什么返回最近的表?为什么不.offsetParent总是返回最近的定位元素?

我知道我的问题的答案是because standard says so,但为什么标准的开发人员决定,该解决方案的目的是什么?

html javascript css

5
推荐指数
1
解决办法
159
查看次数

在CLion中生成文件时关闭“创建者”标题

在CLion中创建文件时,以下标头位于文件顶部:

//
// Created by <username> on 14.01.18.
//
Run Code Online (Sandbox Code Playgroud)

有人可以通过转到删除此标头SettingsEditorFile and Code TemplatesIncludesC File Header。将会有文字:

#if ($HEADER_COMMENTS)
//
// Created by $USER_NAME on ${DATE}.
#if ($ORGANIZATION_NAME && $ORGANIZATION_NAME != "")
// Copyright (c) $YEAR ${ORGANIZATION_NAME}#if (!$ORGANIZATION_NAME.endsWith(".")).#end All rights reserved.
#end
//
#end
Run Code Online (Sandbox Code Playgroud)

我可以删除此文本,标题将被删除。但是,如果我将$HEADER_COMMENTS变量设置为,false则标题也将被删除。所以我的问题是:

什么是$HEADER_COMMENTS变量,如何更改?

clion

5
推荐指数
2
解决办法
1024
查看次数

如何使玩笑不区分负零和正零?

使Jest通过以下测试的最佳方法是什么:

test('example', () => {
  expect(0).toEqual(-0);
});
Run Code Online (Sandbox Code Playgroud)

我不想区分负零和正零。


也许我应该使用其他功能代替.toEqual?或者我应该像这样替换所有块:

expect(a).toEqual(b);
Run Code Online (Sandbox Code Playgroud)

expect(a === 0 ? +0 : a).toEqual(b === 0 ? +0 : b);
Run Code Online (Sandbox Code Playgroud)

javascript jestjs

5
推荐指数
1
解决办法
474
查看次数

同时使用“ d3.event.preventDefault”和“ d3.event.which”

该代码可以完美运行-Internet Explorer 11中除外。该deleteNode(d)如果仅调用mousedown句柄注释掉。

circle.enter().append('circle')
  .on('contextmenu', function (d) {
    deleteNode(d);
  })
  .on('mousedown', function (d) {
    setNode(d);
  });
Run Code Online (Sandbox Code Playgroud)

这就是为什么我尝试使用捕捉右键单击的原因mousedown,但是上下文菜单仍然出现。

circle.enter().append('circle')
  .on('mousedown', function (d) {
    d3.event.preventDefault();
    if (d3.event.which == 3) {
      deleteNode(d);
    }
    setNode(d);
  });
Run Code Online (Sandbox Code Playgroud)

如何解决不显示上下文菜单或同时捕获contextmenumousedown事件的问题?

javascript d3.js

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

获得n个独立几何随机变量之和的最快方法

我有很大的整数n和几何分布:

n = 1000000
distribution = scipy.stats.geom(0.53284, loc=-1)
Run Code Online (Sandbox Code Playgroud)

我想计算n此分布的独立随机变量的总和。我可以这样做:

distribution.rvs(size=n).sum()
Run Code Online (Sandbox Code Playgroud)

但这需要很长时间。什么是更快的方法呢?

python statistics scipy

2
推荐指数
1
解决办法
302
查看次数

按 2d 张量中的值索引 pytorch 4d 张量

我有两个 pytorch 张量:

  • X 有形状 (A, B, C, D)
  • I 有形状 (A, B)

中的值I是范围内的整数[0, C)


获得Yshape张量的最有效方法是什么(A, B, D),例如:

Y[i][j][k] = X[i][j][ I[i][j] ][k]
Run Code Online (Sandbox Code Playgroud)

python pytorch

2
推荐指数
1
解决办法
1196
查看次数