求两个数差的平方损失

﹏ヽ暗。殇╰゛Y 2024-02-19 21:36 101阅读 0赞

小张用某种仪器获得了一组观测值A,A长度为n,A中每一个数都是1-255之间的整数。但是观测值A存在一定的误差,现在小张想求得最可能的真实值B,使得:

  • B中的每一个数都是1-255的整数且与A长度相同
  • 0< = B(i+1) -B(i) <= 3( 0 <= i < n-1)
  • A和B之间的L2损失最小(A(i)和B(i)差的平方的和最小)

要求返回最小的L2损失。

输入第一行是数据长度n(0<n<1000)

第二行是n个0-255之间的整数

返回一个整数表示L2损失

例子:

输入:

5

1 2 3 6 10

返回

1

我实现的代码JAVA:

  1. import java.util.Scanner;
  2. public class TwoNumberSquareLoss {
  3. public static void main(String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. while(sc.hasNext()){
  6. int num = sc.nextInt();
  7. int num2[] = new int[num];
  8. int res [] = new int[num];
  9. for (int i = 0 ; i<num; i++){
  10. num2[i] = sc.nextInt();
  11. res[i] = (int)Math.pow((num - num2[i]),2);
  12. }
  13. int minNum = res[0];
  14. for(int n :res){
  15. if(n < minNum){
  16. minNum = n;
  17. }
  18. }
  19. System.out.println(minNum);
  20. }
  21. }
  22. }

python也实现一个

  1. while True:
  2. try:
  3. num1 = int(raw_input())
  4. num2 = list(map(int, raw_input().split()))
  5. res = []
  6. for i in range(num1):
  7. res.append(int((num1 -num2[i])**2))
  8. print(min(res))
  9. except:
  10. break

对于我写的代码中感觉那里不对,欢迎大家评论

发表评论

表情:
评论列表 (有 0 条评论,101人围观)

还没有评论,来说两句吧...

相关阅读

    相关 平方损失函数

    一、简介 **损失函数**是一个非负实数函数,**用来量化模型预测和真实标签之间的差异。** 其中,**平方损失函数**经常用在**预测标签y为实数值**的任务中,...

    相关 Java8 List

    常规做法就是使用两个循环,遍历两个list,然后使用迭代器删除id相等的数据,这种方法比较简单,但是代码层级比较深,不值得推荐;,当这一项的userId不存在于exitL...

    相关 交集

    方法一:使用一个Map将其中一个数组放到map中,循环遍历第二个数组,如果map中存在第二个数组中含有的的值,放到结果集中.时间复杂度O(n) ,空间复杂度O(n)