csharp基础练习题:简单有趣#138:相似性【难度:1级】:
任务
你的任务是找到给定排序数组a
和b
的相似性,定义如下:
获取两个数组中存在的元素数,并将其除以至少一个数组中存在的元素数.
它也可以写成公式相似性(A,B)=#(A∩B)/#(A∪B)
,其中#(C)
是C中元素的数量,∩
是数组的交集,∪
是数组的联合.
这被称为"Jaccard相似性".
结果保证适合任何浮点类型而不进行舍入.
例子
对于’a = [1,2,4,6,7]和
b = [2,3,4,7]`:
元素[2,4,7]存在于两个数组矩阵中;
元件[1,2,3,4,6,7]存在于至少一个数组矩阵中.
因此相似性等于3/6 = 0.5.
输入输出
- [input]
整数数组a
正整数的sorted
数组.
所有元素都是"不同的",并且"小于100".
1≤a.length≤100
- [input]
整数数组b
与a
格式相同的数组.
- [输出]
一个浮点数
数组的相似性.
```haskell
在Haskell中,两个数组作为touple传递.
## 编程目标:
```csharp
namespace myjinxin
{
using System;
public class Kata
{
public double Similarity(int[] a, int[] b){
//coding and coding..
}
}
}
测试样例:
namespace myjinxin
{
using NUnit.Framework;
using System;
[TestFixture]
public class myjinxin
{
var kata=new Kata();
Assert.AreEqual(1,kata.Similarity(new int[]{1, 2, 3},new int[]{1, 2, 3}));
Assert.AreEqual(0,kata.Similarity(new int[]{1, 2, 3},new int[]{4, 5, 6}));
Assert.AreEqual(0.5,kata.Similarity(new int[]{1, 2, 4, 6, 7},new int[]{2, 3, 4, 7}));
最佳答案(多种解法):
更多关联题目:
csharp进阶练习题:简单的乐趣#31:替换密码?【难度:2级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp高级练习题:我完成了我的数独游戏吗?【难度:3级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/simple-fun-number-138-similarity