生成式对抗网络,通俗点说,就是一对买卖家在博弈,卖家(生成器)生成假数据想“以次充好”,买家(判别器)判断数据是真是假。 在本题中,生成器通过将真实数据和噪声相加,得到生成数据。判别器通过sigmoid函数生成一个概率来判断数据是真实的还是生成的。

标准代码

import numpy as np
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

def discriminator(sample):
    return sigmoid(sample)

if __name__ == '__main__':
    n = int(input())
    real_data = [float(input()) for _ in range(n)]
    noise = [float(input()) for _ in range(n)]
    generated_data = np.add(real_data,noise)
    for sample in generated_data:
        print(f"{discriminator(sample):.2f}")