keep笔试

keep的最小二乘调了1个多小时还是AC为0。emmmmm。求大佬回帖
题目分别是差值中位数、密码校验、最小二乘。AC:90%,100%,0%😥
import sys
X = []
Y = []
for line in sys.stdin:
    x, y = list(map(int, line.split(" ")))
    X.append(x)
    Y.append(y)

s1 = s2 = s3 = s4 = 0
n = len(X)

for i in range(n):
    s1 = s1 + X[i] * Y[i]
    s2 = s2 + X[i]
    s3 = s3 + Y[i]
    s4 = s4 + X[i] * X[i]
b = (s2 * s3 - n * s1) / (s2 *s2-s4*n)
a = (s3 - b * s2) / n

print(str(b), str(a), sep="\t")

def get_two_float(f_str, n):
    f_str = str(f_str)      # f_str = '{}'.format(f_str) 也可以转换为字符串
    a, b, c = f_str.partition('.')
    c = (c+"0"*n)[:n]       # 如论传入的函数有几位小数,在字符串后面都添加n为小数0
    return ".".join([a, c])


#笔试题目##Keep#
全部评论
我是自测的时候,给的输出为1.5 1.666666666667,而我的是1.5 1.6667,我用的C++,设置为long double 。哪里问题,求大佬指点
点赞 回复 分享
发布于 2019-09-07 17:38
同样是输入输出迷的懵圈
点赞 回复 分享
发布于 2019-09-07 17:37
我跟你一样,兄弟,一道题调了一小时,输入分组是没法区分的,输出也没给精度
点赞 回复 分享
发布于 2019-09-07 17:35
# import sys # # n = int(sys.stdin.readline().strip()) # arr = list(map(int, sys.stdin.readline().strip().split(" "))) # n = arr.pop(0) # # class Solution: #     def getMediandiff(self, arr, n): #         arr.sort() #         l = 0 #         r = arr[n-1] - arr[0] #         ans = 0 #         while l <= r: #             mid = (l + r) // 2 #             if self.judge(arr,mid, n): #                 ans = mid #                 r = mid - 1 # #             else: #                 l = mid + 1 #         print(ans) # # # #     def judge(self, arr, mid, n): #         j = 0 #         num = 0 #         for i in range(1, n): #             while arr[i] - arr[j] > mid: #                 j += 1 #             num += i - j #         m = n * (n-1) // 2 #         m = (m + 1) // 2 #         if num >= m: #             return True #         else: #             return False # # # Solution().getMediandiff(arr, n) 这个差10%,emmmmm
点赞 回复 分享
发布于 2019-09-07 17:34

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务