首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么runkit.com代码返回与本地代码不同的值?

为什么runkit.com代码返回与本地代码不同的值?
EN

Stack Overflow用户
提问于 2019-09-24 17:53:47
回答 1查看 76关注 0票数 0

我反复检查了相同的Node.js版本v12.10.0,相同的npm包版本(javascript-lp-solver 0.4.5),相同的输入,我们得到了不同的结果。

场景A

场景B

  • main.js中克隆的
  • 本地代码如下:

代码语言:javascript
复制
var formulador = require("./src/solver.js");

var modelo = {
  optimize: "custo",
  opType: "min",
  constraints: {
    N: {
      min: 18000.0,
      max: 18800.0
    },
    PCNA: {
      min: 5000.0,
      max: 5800.0
    },
    K: {
      min: 24000.0,
      max: 24800.0
    },
    "I::100268_100328": {
      max: 1.0
    },
    "I::100268_100328_D1": {
      min: 0.0
    },
    "I::100268_100328_D2": {
      min: 0.0
    },
    peso: {
      equal: 1000.0
    }
  },
  variables: {
    "100194": {
      CA: 12.0,
      S: 1.5,
      MG: 6.0,
      peso: 1.0,
      custo: 446.19,
      preco: 446.19
    },
    "100249": {
      K: 60.0,
      peso: 1.0,
      custo: 1964.49,
      preco: 1964.49
    },
    "100268": {
      PCNA: 21.0,
      CA: 18.0,
      S: 10.0,
      PH2O: 16.0,
      peso: 1.0,
      custo: 1192.33,
      preco: 1192.33,
      "I::100268_100328_D1": 1.0,
      "I::100268_100328_D2": -1.0
    },
    "100287": {
      N: 3.0,
      PCNA: 17.0,
      CA: 16.0,
      S: 11.0,
      peso: 1.0,
      custo: 1444.68,
      preco: 1444.68
    },
    "100302": {
      N: 11.0,
      PCNA: 52.0,
      PH2O: 44.0,
      peso: 1.0,
      custo: 2537.45,
      preco: 2537.45
    },
    "100328": {
      N: 34.0,
      peso: 1.0,
      custo: 1428.98,
      preco: 1428.98,
      "I::100268_100328_D1": 1.0,
      "I::100268_100328_D2": -1.0
    },
    D100268: {
      "I::100268_100328_D1": -1.0,
      "I::100268_100328": 1.0,
      "I::100268_100328_D2": 1000.0
    },
    D100328: {
      "I::100268_100328_D1": -1.0,
      "I::100268_100328": 1.0,
      "I::100268_100328_D2": 1000.0
    }
  },
  ints: {
    "100194": 1,
    "100249": 1,
    "100268": 1,
    "100287": 1,
    "100302": 1,
    "100328": 1
  },
  binaries: {
    D100268: 1,
    D100328: 1
  }
};

var resultado = formulador.Solve(modelo);
console.table(resultado);

注意,这是相同的输入。

场景A中,结果是

代码语言:javascript
复制
┌──────────┬────────────┐
│ (index)  │   Values   │
├──────────┼────────────┤
│  100194  │     4      │
│  100249  │    400     │
│  100268  │     -0     │
│  100287  │     1      │
│  100302  │     96     │
│  100328  │    499     │
│ feasible │    true    │
│  result  │ 1745681.66 │
│ bounded  │    true    │
│ D100268  │     1      │
└──────────┴────────────┘

场景B中,结果是:

代码语言:javascript
复制
┌──────────┬────────────┐
│ (index)  │   Values   │
├──────────┼────────────┤
│  100194  │     3      │
│  100249  │    400     │
│  100268  │     3      │
│  100302  │     95     │
│  100328  │    499     │
│ feasible │    true    │
│  result  │ 1744830.33 │
│ bounded  │    true    │
│ D100268  │     1      │
└──────────┴────────────┘

那么,为什么会发生这种情况?我需要从runkit.com返回相同的本地代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-25 17:33:39

最后发现:0.4.5存储库没有版本0.4.5的版本,而且Github中的当前代码不包含以版本0.4.5的形式交付给npm的一些更改。以你为耻,以你为耻.

我是怎么发现的?我使用来自版本Node.js的npm包创建了一个0.4.5项目,并使用了相同的数据输入。结果和预期的一样,与在runkit.com上得到的结果相同。因此,我将node_modules (来自npm包)和jsLPSolver (来自WinMerge )文件夹的内容与WinMerge进行了比较,他向我指出了不同的文件。

实现从Github获得的代码中的差异,一切都变得清晰起来,并返回到相同的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58085792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档