P1038 测试数据 #5 有误

题目总版

user100566 @ 2024-11-15 16:54:46

参考原文

P1038 [NOIP2003 提高组] 神经网络

在兰兰的模型之中,神经网络中的神经元分为几层;称为输入层、输出层,和若干个中间层。

非输入层的神经元开始时状态必然为 0

若输出层的神经元最后状态均小于等于 0,则输出 NULL

数学证明

C_i^0 表示神经元 i 的初始状态,C_i^1 表示神经元 i 的最终状态。

\text{定理}\ 1: \forall \text{神经元}\ i\in\text{输出层},C_i^0=0 \text{证明}: \because \text{非输入层的神经元开始时状态必然为}\ 0,\text{输出层是非输入层} \therefore \text{输出层的神经元开始时状态必然为}\ 0 \therefore \forall \text{神经元}\ i\in\text{输出层},C_i^0=0 \text{定理}\ 2: \forall p=0\ \text{的神经网络},\forall \text{神经元}\ i\in \text{神经网络},C_i^1=C_i^0 \text{证明}: \because p=0 \therefore \text{神经网络不存在信号传送} \therefore \forall \text{神经元}\ i\in\text{神经网络},C_i\text\ {不发生变化} \therefore \forall \text{神经元}\ i\in \text{神经网络},C_i^1=C_i^0 \text{定理}\ 3: \forall p=0\ \text{的神经网络},\text{答案为}\ \texttt{NULL} \text{证明}: \text{假设存在反例答案不为}\ \texttt{NULL} \therefore\neg \text{输出层的神经元最后状态均小于等于}\ 0 \therefore\exists\text{神经元}\ i\in\text{输出层},C_i^1>0 \therefore\text{由定理}\ 2,\exists\text{神经元}\ i\in\text{输出层},C_i^0>0 \text{与定理}\ 1\ \text{矛盾},\text{假设不成立}

测试点问题

测试点 #5:

## 更正 这是 #5 输出 `NULL` 的部分[代码](https://www.luogu.com.cn/record/188853102): ```cpp if(C==0){ output[i] = true; val[i] = -U; }else{ output[i] = false; val[i] = C; } ``` 这是 #5 输出测试点答案的部分[代码](https://www.luogu.com.cn/record/188854546): ```cpp output[i] = true; if(C==0){ val[i] = -U; }else{ val[i] = C; } ``` 根据原文和数学证明,上面的代码才是正确的:**开始时状态不为 $0$ 的神经元不为输出层神经元**。 ## 结论 建议修正 #5 的测试数据,正确的测试数据应该能让[正确的代码](https://www.luogu.com.cn/record/188853102) AC,让[错误的代码](https://www.luogu.com.cn/record/188854546) WA。

by user100566 @ 2024-11-15 16:57:39

5 数据:

P1038_5.in

1 0
2 10

P1038_5.out

1 2

by 5k_sync_closer @ 2024-11-15 17:10:19

@user100566

定理一证明里面:

输出层是非输入层

谁告诉你的


by user100566 @ 2024-11-15 17:16:36

@5k_sync_closer

神经网络中的神经元分为几层;称为输入层、输出层,和若干个中间层。

原文中的这句话就说明了输入层、输出层、和中间层涵盖了神经网络,且这三层是互斥的,既然一个神经元在输出层,那么它就不能在输入层。


by 5k_sync_closer @ 2024-11-15 17:32:51

@user100566

并不是互斥的


by gaoyuxiang10086 @ 2024-11-24 10:28:41

@[user100566]n=1呢


|