C#练习题答案: 简单有趣#138:相似性【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

简单有趣#138:相似性【难度:1级】:

答案1:

namespace myjinxin
{
    using System.Linq;
    
    public class Kata
    {
        public double Similarity(int[] a, int[] b){
          return a.Intersect(b).Count() / (double)a.Union(b).Count();
        }
    }
}

答案2:

namespace myjinxin
{
    using System;
    using System.Linq;
    using System.Collections.Generic;
    using System.Text.RegularExpressions;
    public class Kata
    {
public double Similarity(int[] a, int[] b){
  double r=0;
  for(int i=0,j=0,l=0;i<a.Length&amp;&amp;j<b.Length;l++){
    if(a[i]==b[j]){r++;i++;j++;l++;}
    else if(a[i]>b[j]) j++;
    else i++;
  }
  return r/(a.Length+b.Length-r);
} 

    }
}

答案3:

namespace myjinxin
{
    using System.Linq;
    
    public class Kata
    {
        public double Similarity(int[] a, int[] b) {
            return (double)a.Intersect(b).Count() / a.Union(b).Count();
        }
    }
}

答案4:

namespace myjinxin
{
    using System.Linq;
    
    public class Kata
    {
        public double Similarity(int[] a, int[] b) => (double)(a.Intersect(b).Count()) / a.Union(b).Count();
    }
}

答案5:

namespace myjinxin
{
    using System;
    using System.Linq;
    
    public class Kata
    {
        public double Similarity(int[] a, int[] b)
        {
          return a.Intersect(b).Count() / (double) a.Union(b).Count();
        }
    }
}

答案6:

namespace myjinxin
{
    using System;
    using  System.Linq;
    public class Kata
    {
        public double Similarity(int[] a, int[] b){
            var intersection = a.Intersect(b).Count();
            var union = a.Union(b).Count();
            double result = intersection / (double)union;
            return result;
        }
    }
}

答案7:

namespace myjinxin
{
    using System;
    using System.Linq;
    
    public class Kata
    {
        public double Similarity(int[] a, int[] b){
          //coding and coding..
        var aANDb = a.Intersect(b);
        var aORb = a.Union(b);
        int nOR = 0,nAND = 0;
        
        foreach(var v in aANDb)
        {
          ++nAND;
        }
        
        foreach(var v in aORb)
        {
          ++nOR;
        }
        
        double jac = (double)nAND/(double)nOR;
        return jac;
        }
    }
}

答案8:

namespace myjinxin {
    using System.Linq;

    public class Kata {
        public double Similarity( int[] a, int[] b ) {
            var intersect = a.Intersect( b ).Count( );
            var union = a.Union( b ).Count( );
            if ( union == 0 ) {
                return 0;
            }
            return intersect/(double) union;
        }
    }
}

答案9:

using System.Linq;

namespace myjinxin
{
    public class Kata
    {
        public double Similarity(int[] a, int[] b)
        {
            int sameElelmentCount = a.Count(x => b.Any(y => y == x));
            int unionCount = a.Union(b).Count();
            return sameElelmentCount / (double)unionCount;
        }
    }
}

答案10:

namespace myjinxin
{
    using System.Linq;

    public class Kata
    {
        public double Similarity(int[] a, int[] b) => (double)a.Where(b.Contains).Count() / a.Concat(b).Distinct().Count();
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值