小编nz_*_*_21的帖子

Kotlin:如何创建可运行的 jar?

我正在尝试使用 Kotlin 创建一个可运行的 jar。

我的 gradle.build 是这样的:



plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.11'

}

group 'com.github.dynamik'
version '1.0-SNAPSHOT'
apply plugin: 'application'
apply plugin: 'kotlin'
mainClassName = "interpreter.Repl"





repositories {
    mavenCentral()
    maven { setUrl("https://dl.bintray.com/hotkeytlt/maven") }

}
configurations {
    ktlint
}
dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    compile 'com.github.h0tk3y.betterParse:better-parse-jvm:0.4.0-alpha-3'
    // https://mvnrepository.com/artifact/junit/junit
    testCompile group: 'junit', name: 'junit', version: '4.4'
    ktlint "com.github.shyiko:ktlint:0.31.0"




    implementation 'com.github.ajalt:clikt:1.7.0'


    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.0'



}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

run {
    standardInput = System.in
}

jar …
Run Code Online (Sandbox Code Playgroud)

jar kotlin

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

理解 C++ 中的引用

我有以下代码:

int main() {
    int x = 3;
    int &ref = x;
    int &ref2 = ref;
    ref = 100;
    std::cout <<ref;
    std::cout <<ref2;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这打印出来100100。我觉得很混乱。我的理解是,refref2都是对底层对象 ( x=3) 的引用。然后我们改变 的值ref。因此,我预期1003

c++ reference

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

为什么&Option &lt;T&gt;上的模式匹配会产生Some(&T)类型的东西?

我这里有一个很小的操场例子

fn main() {
    let l = Some(3);
    match &l {
        None => {}
        Some(_x) => {} // x is of type &i32
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在进行模式匹配&Option,如果Some(x)用作分支,为什么是xtype &i32

reference optional rust

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

Django csrf 中间件令牌显示在 url 中安全吗?

当发出 GET 请求时,我注意到我的 csrf 令牌被附加到我的 url 中。这安全吗?

django csrf

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

如何在opencv C++中合并重叠的矩形?

我正在尝试合并重叠的矩形,表示为vector<Rect>

我正在查看此处的文档https://docs.opencv.org/3.4/d5/d54/group__objdetect.html ,但groupRectangles不清楚参数是什么(什么是eps?)。

在 opencv c++ 中合并矩形的最简单方法是什么?

举个例子会很有帮助。

c++ opencv

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

算法难题:球堆叠问题

我正在尝试解决这个问题:https : //www.urionlinejudge.com.br/judge/en/problems/view/1312

XYZ 电视频道正在开发一个新的游戏节目,参赛者必须做出一些选择才能获得奖品。游戏由一堆三角形的球组成,每个球都有一个整数值,如下例所示。

在此处输入图片说明

参赛者必须选择他要拿的球,他的奖金是这些球价值的总和。但是,只有当参赛者也直接将球拿在它上面时,他才能拿走任何给定的球。这可能需要使用相同的规则来获取额外的球。请注意,参赛者可以选择不拿任何球,在这种情况下,奖品为零。

电视节目导演关心参赛者可以为给定的筹码获得的最高奖金。由于他是你的老板,他不知道如何回答这个问题,所以他把这个任务交给了你。

输入

每个测试用例都使用多行描述。第一行包含一个整数N,表示堆栈的行数(1 ? N ? 1000)。接下来N行的第i 个包含i 个整数B ij (?105 ? B ij ? 105 for 1 ? j ? i ? N );数字B ij是堆栈中第行中j 个球的值(第一行是最上面的一个,如果最左边的是每行内的第一个球)。

最后一个测试用例后面跟着一行包含一个零。

输出

Sample Input  | Sample Output
4             |   7 
3             |   0
-5 3          |   6
-8 2 -8       |
3 9 -2 7      |
2             |
-2            | …
Run Code Online (Sandbox Code Playgroud)

algorithm dynamic-programming

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

C++2a 函数内的递归 lambda

我正在尝试编译它:

#include <algorithm>
#include <climits>
#include <iostream>
#include <iterator>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
using namespace std;


bool isInterleave(string &s1, string &s2, string &s3) {
  auto dfs = [&](int i, int j, int k) {
    if (k > s3.length()) {
      return true;
    }
    if (s1[i] == s3[k]) {
      auto res = dfs(i + 1, j, k + 1);

    }
  };

  dfs(0, 0);
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:


x86-64 gcc 9.3

-pedantic -Wall -O2 -std=c++2a
Could not execute the program

Compiler …
Run Code Online (Sandbox Code Playgroud)

c++ lambda

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

GHCI:如何在 Prelude repl 上保存状态?

我试图在 prelude repl 上执行 fibonacci,但我遇到了一个无限循环:

Prelude> fib 0 = 1
Prelude> fib 1 = 1
Prelude> fib n = fib(n-1) + fib(n-2)
Prelude>
Prelude> fib 3
<loops infinitely...>
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

haskell

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

SGD 分类器精确率-召回率曲线

我正在研究二元分类问题,我有一个 sgd 分类器,如下所示:

sgd = SGDClassifier(
    max_iter            = 1000, 
    tol                 = 1e-3,
    validation_fraction = 0.2,
    class_weight = {0:0.5, 1:8.99}
)
Run Code Online (Sandbox Code Playgroud)

我将它安装在我的训练集上并绘制了精确召回曲线:

from sklearn.metrics import plot_precision_recall_curve
disp = plot_precision_recall_curve(sgd, X_test, y_test)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

假设scikit-learn中loss="hinge"默认使用sgd分类器,那么如何绘制这条曲线呢?我的理解是 sgd 的输出不是概率性的——它要么是 1/0。因此,不存在“阈值”,但 sklearn 精确回忆曲线绘制了具有不同类型阈值的锯齿形图。这里发生了什么?

python machine-learning scikit-learn precision-recall stochastic-gradient

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

TCP 侦听器的有限并发

我有一个 TCP 监听器,如下所示:

pub async fn run(port: i32) -> Result<(), Box<dyn std::error::Error>> {
    let addr = format!("127.0.0.1:{}", port);
    info!("Listening on address: {}", addr);

    let listener = TcpListener::bind(addr).await?;
    loop {
        let (socket, _) = listener.accept().await?;
        tokio::spawn(async move {
            _ = handle_connection(socket).await;
        });
    }
}

Run Code Online (Sandbox Code Playgroud)

我们假设handle_connections这是一个昂贵的 IO 绑定操作。

我想说的是,服务器一次只运行 运行中nhandle_connections任务。

实现这一目标的惯用方法是什么?

FuturesOrder我的第一个想法是在侦听器中创建一个列表,用于收集handle_connection任务。我们定期 collect()在此列表上运行n任务并从列表中清除这些任务。

但这感觉太hacky了。好奇是否有更惯用的方法?

concurrency rust

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