开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

[LintCode] Dot Product(点积)

2018年12月14日 939Browse 0Like 0Comments

描述

给出两个数组,求它们的点积。(Wikipedia)

 

如果没有点积则返回-1

样例

Input:A = [1,1,1]
B = [2,2,2]
Output:6

代码

请单击下面链接在 GitHub 上查看最新的源代码:

https://github.com/cwiki-us/java-tutorial/blob/master/src/test/java/com/ossez/lang/tutorial/tests/lintcode/LintCode1480DotProductTest.java

package com.ossez.lang.tutorial.tests.lintcode;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * <p>
 * 1480
 * <ul>
 * <li>@see
 * <a href= "https://www.cwiki.us/display/ITCLASSIFICATION/Dot+Product">https://www.cwiki.us/display/ITCLASSIFICATION/Dot+Product</a>
 * <li>@see<a href= "https://www.lintcode.com/problem/dot-product/">https://www.lintcode.com/problem/dot-product/</a>
 * </ul>
 * </p>
 * 
 * @author YuCheng
 *
 */
public class LintCode1480DotProductTest {

  private final static Logger logger = LoggerFactory.getLogger(LintCode1480DotProductTest.class);

  /**
   * 
   */
  @Test
  public void testMain() {
    logger.debug("BEGIN");
    int[] A = { 1, 1, -1 };
    int[] B = { 2147483647, 1, 3 };

    int retStatus = 0;

    // LENGTH CHECK
    if (A.length == 0 || B.length == 0 || A.length != B.length)
      retStatus = -1;

    // ADDED
    if (retStatus != -1) {
      for (int i = 0; i < A.length; i++) {
        retStatus = retStatus + A[i] * B[i];
      }
    }

    System.out.println(retStatus);
  }

}

 

点评

这个问题的关键是要了解点积是如何进行计算的。

对输入的数组还需要进行 NULL 的校验和计算。

摘录点积的计算方法如下:

向量是由n个实数组成的一个n行1列(n*1)或一个1行n列(1*n)的有序数组;

向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。

点乘公式

对于向量 a 和向量 b:

a和b的点积公式为:

 

 

要求一维向量 a 和向量 b 的行列数相同。

因为要求向量 a 和 b 的行列数相同,因此在程序中需要先进行判断才可以。

Tags: LintCode 算法
Last updated:2024年08月29日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,362)
    • Confluence (663)
    • Gradle (12)
  • U.S. (482)
  • 文化旅游 (145)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1