蛤玮准备礼物

1878: 蛤玮准备礼物

Description


蛤玮的妹子要过生日了,经过千挑万选,蛤玮决定给妹子买一盒水彩铅笔,然而卖多少个才合适呢.机智的蛤玮决定数一数今天是妹子出生的第多少天,然后就买那么多根铅笔.

给出蛤玮妹子的生日和今天的日期,求蛤玮一共需要买多少.

注意:生日当天算第0天.

Input


T(1<=T<=1000),表示数据组数.

每组数据一行y1,m1,d1,y2,m2,d2,其中y1,m1,d1表示妹子生日的年月日,y2,m2,d2表示蛤玮所在时空的当前天的年月日.

(1900<=y<=1000000, 1<=m<=12, 1<=d<=当月应有天数).输入保证当前天在妹子生日之后.

Output


每组数据输出一行,蛤玮要买多少根铅笔.

Sample Input

2
1995 10 24 1995 10 25
1996 1 9 1996 3 7

Sample Output

1
58

AC代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
bool year(int x){
    if(x%400==0||(x%4==0&&x%100!=0))
	return 1;
	else return 0;
}
int math(int y,int m){
    if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
        return 31;
    else if(m==2)
        return year(y)?29:28;
    else
        return 30;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int y1,m1,d1,y2,m2,d2;
        int num1,num2,sum;
        scanf("%d %d %d %d %d %d",&y1,&m1,&d1,&y2,&m2,&d2);
        num1=0;num2=0;sum=0;
        for(int i=1; i<m1; i++)
            num1+=math(y1,i);
        num1+=d1;
        for(int i=1; i<m2; i++)
            num2+=math(y2,i);
        num2+=d2;
        if(y1==y2)
        {
            printf("%d\n",num2-num1);
            continue;
        }
        else
        {
            sum+=year(y1)?366-num1+num2:365-num1+num2;
            if((y2-1-(y1+1))>400)//400年一个循环
            {
                int flag_num=(y2-1-(y1+1))/400;//循环次数
                int flag_sum=0;//循环数值
                for(int i=y1+1; i<=y1+400; i++)
                    flag_sum+=year(i)?366:365;
                sum+=flag_num*flag_sum;
                for(int i=y1+flag_num*400+1; i<y2; i++)
                    sum+=year(i)?366:365;
            }
            else//不足400年
            {
                for(int i=y1+1; i<y2; i++)
                    sum+=year(i)?366:365;
            }
            printf("%d\n",sum);
        }
    }
    return 0;
}


你可能是想问“逻辑回归中的损失函数”,即 **Logistic Regression Loss Function**。 逻辑回归中常用的损失函数是 **交叉熵损失(Cross-Entropy Loss)**,也称为对数损失(Log Loss)。它用于衡量模型预测的概率与真实标签之间的差异。 --- ### 1. 基本形式 对于一个样本 $ (x^{(i)}, y^{(i)}) $,其中: - $ x^{(i)} $ 是输入特征向量 - $ y^{(i)} \in \{0, 1\} $ 是标签(1 表示正例,0 表示反例) - $ h_\theta(x^{(i)}) = \sigma(\theta^T x^{(i)}) $ 是模型输出(预测为正类的概率) 单个样本的损失函数定义为: $$ L(\theta) = -y^{(i)} \log(h_\theta(x^{(i)})) - (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) $$ 这个损失函数来源于对数似然函数的最大化转换成最小化问题。 --- ### 2. 向量化整体损失函数(多个样本) 对于 $ m $ 个训练样本,总损失函数为: $$ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] $$ --- ### 3. Python 实现逻辑回归损失函数 ```python import numpy as np def sigmoid(z): return 1 / (1 + np.exp(-z)) def logistic_loss(X, y, theta): m = len(y) h = sigmoid(X @ theta) epsilon = 1e-15 # 防止 log(0) h = np.clip(h, epsilon, 1 - epsilon) # 避免 log(0) loss = -1/m * np.sum(y * np.log(h) + (1 - y) * np.log(1 - h)) return loss # 示例数据 X = np.array([[1, 2], [1, 3], [1, 4], [1, 5]]) # 添加了偏置项 1 y = np.array([0, 0, 1, 1]) theta = np.array([0.5, -0.1]) print("Logistic Loss:", logistic_loss(X, y, theta)) ``` #### 解释: - `sigmoid` 函数计算模型输出概率。 - 使用 `np.clip` 防止出现 `log(0)` 的情况。 - 损失函数使用所有样本的平均交叉熵。 --- ### 4. 加入正则化的损失函数(可选) 为了防止过拟合,可以加入 L2 正则化项: $$ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] + \frac{\lambda}{2m} \sum_{j=1}^{n} \theta_j^2 $$ 其中 $ \lambda $ 是正则化强度参数。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值