समस्या
An artificial neuron multiplies each input by a weight, adds a bias, and passes the result through an activation function:
z = x₁×w₁ + x₂×w₂ + … + xₙ×wₙ + bias
output = sigmoid(z) = 1 / (1 + e^(-z))
Implement neuron_output(inputs, weights, bias).
Input
inputs: The input values.
weights: One weight per input (same length as inputs).
bias: The neuron's bias.
Output
Return the neuron's output, a decimal number between 0 and 1.
सीमाएँ
1 ≤ length of inputs = length of weights ≤ 100
-10 ≤ each input, weight and bias ≤ 10
उदाहरण
इनपुट:
bias = 0.5
inputs = [1.0, 2.0, 3.0]
weights = [0.2, 0.4, 0.6]
अपेक्षित आउटपुट:
expected = 0.964429
इनपुट:
double bias = 0.5;
std::vector<double> inputs = {1.0, 2.0, 3.0};
std::vector<double> weights = {0.2, 0.4, 0.6};
अपेक्षित आउटपुट:
double expected = 0.964429;
इनपुट:
double bias = 0.5;
double[] inputs = new double[] {1.0, 2.0, 3.0};
double[] weights = new double[] {0.2, 0.4, 0.6};
अपेक्षित आउटपुट:
double expected = 0.964429;
व्याख्या
z = 1×0.2 + 2×0.4 + 3×0.6 + 0.5 = 3.3, and sigmoid(3.3) ≈ 0.964429.
इनपुट:
bias = 0.0
inputs = [0.5, -1.0]
weights = [2.0, 1.0]
अपेक्षित आउटपुट:
expected = 0.5
इनपुट:
double bias = 0.0;
std::vector<double> inputs = {0.5, -1.0};
std::vector<double> weights = {2.0, 1.0};
अपेक्षित आउटपुट:
double expected = 0.5;
इनपुट:
double bias = 0.0;
double[] inputs = new double[] {0.5, -1.0};
double[] weights = new double[] {2.0, 1.0};
अपेक्षित आउटपुट:
double expected = 0.5;
व्याख्या
z = 0.5×2 + (-1)×1 + 0 = 0, and sigmoid(0) = 0.5: the neuron is exactly undecided.
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
This is just a weighted sum of the inputs plus a bias, followed by one sigmoid.
संकेत 2
Pair each input with its corresponding weight and accumulate the products before adding the bias.
संकेत 3
Watch that the final output is passed through sigmoid, not returned as the raw sum.
अपेक्षित जटिलता
O(n) time, O(1) extra space
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।