首页 > 解决方案 > 将浮点数和向量相乘?所以 val scale : float -> float*float -> float*float?

问题描述

如何制作一个函数 scale(),它将浮点数和向量相乘。它必须使用这里显示的这个库吗?我认为它被称为图书馆,如果那是错误的,对不起。

/// Multiplication of a float and a vector
val scale : float -> float * float -> float * float

花了4个小时试图弄清楚。

我的任务(数据科学第 3 周)是,我有一个包含 2D 向量库的签名文件,我需要使用该库从中生成函数。

/// A 2D vector library

/// Vectors are represented as pairs of floats module vec2d

/// The length of a vector
val len : float * float -> float
/// The angle of a vector
val ang : float * float -> float
/// Multiplication of a float and a vector
val scale : float -> float * float -> float * float
/// Addition of two vectors
val add : float * float -> float * float -> float * float
/// Dot product of two vectors
val dot : float * float -> float * float -> float

目前我有:

// LENGTH OF A VECTOR
// val len : float * float -> float
let len (x: float, y: float) =
    sqrt(x**2.0 + y**2.0)

// ANGLE OF A VECTOR
// val ang : float * float -> float
let ang (x: float, y: float) =
    Math.Atan2(y, x)

// MULTIPLICATION OF A FLOAT AND A VECTOR
// val scale : float -> float * float -> float * float
let scale () =
    None

/// ADDITION OF TWO VECTORS
// add : float * float -> float * float -> float * float 
let add (xy1: float, xy2: float) =
    None 

/// DOT PRODUCT OF TWO VECTORS
// dot : float * float -> float * float -> float
let dot (xy1: float, xy2: float) =
    None

在此处输入图像描述

任何形式的帮助/提示都会非常有帮助!我被困住了!

标签: f#

解决方案


这是你要找的吗?

let scale n (x: float, y: float) =
    n*x, n*y

这将向量元组 (x,y) 中的每个值与浮点数 n 相乘。


推荐阅读