AI Native 分级编程挑战

第3级 · 进阶 · 结构与效率

排列向量检索结果

验证余弦相似度、零向量和并列排序。

题目说明

编写 function solution(documents, query, limit)。输入输出均为 JSON 值,不要修改输入数组或对象。不支持外部库、网络访问及异步函数。 documents:{id:string,vector:integer[]}[], query:integer[], limit:nonnegative integer. Vectors share dimension 1–32 with values -100…100. Cosine=dot/(product of magnitudes); use zero if either vector is zero. score=Math.round(cosine*1_000_000). Sort by rounded score descending, preserving input order on ties. Return top limit {id,score}; limit may exceed document count. 输入范围:每个输入数组最多50,000项,每个字符串最多1,000个字符。数字必须有限,整数及整数累计结果在JavaScript安全整数范围内。其他类型和有效性遵循上述规则。

输入输出示例

示例 1

函数参数

[
  [
    {
      "id": "a",
      "vector": [
        1,
        0
      ]
    },
    {
      "id": "b",
      "vector": [
        0,
        1
      ]
    }
  ],
  [
    1,
    0
  ],
  2
]

返回值

[
  {
    "id": "a",
    "score": 1000000
  },
  {
    "id": "b",
    "score": 0
  }
]
示例 2

函数参数

[
  [
    {
      "id": "a",
      "vector": [
        1,
        1
      ]
    },
    {
      "id": "b",
      "vector": [
        2,
        2
      ]
    }
  ],
  [
    1,
    1
  ],
  1
]

返回值

[
  {
    "id": "a",
    "score": 1000000
  }
]
示例 3

函数参数

[
  [
    {
      "id": "a",
      "vector": [
        1,
        0
      ]
    },
    {
      "id": "b",
      "vector": [
        0,
        1
      ]
    },
    {
      "id": "c",
      "vector": [
        1,
        0
      ]
    }
  ],
  [
    1,
    0
  ],
  2
]

返回值

[
  {
    "id": "a",
    "score": 1000000
  },
  {
    "id": "c",
    "score": 1000000
  }
]
Practice has no points, deadline or submission cap. Use AI and search freely. Sign in to run public examples, or verify locally.

74 / 20,000字符

Add your test · optional

Enter a JSON argument array in documents, query, limit order. Your test runs alongside the three examples.

Save both files in one folder and run this command with Node.js. Read the checks field for individual example results.

node verify-retrieval-ranking.mjs
문의하기

서비스명: 포트포올
문의는 운영자에게 이메일로 전송됩니다.

이메일과 문의 내용은 답변을 위해 운영자 및 메일 발송 서비스로 전송됩니다. 비밀번호·결제정보·민감한 개인정보는 입력하지 마세요.