- Executors
-
Learn
Learn Python Runnable examples, NumPy, pandas, and more Learn AINeural networks, ML and LLMs from scratch Learn C & C++ Pointers, memory, STL, and modern C++ Learn C#C# basics, OOP, LINQ, async, and .NET exercises Learn MatplotlibLine, bar, scatter and pie charts with live visualizers Python Algorithms Search, sorting, recursion, and visualizers O(n) C & C++ Algorithms Compare algorithms implemented in C and C++ Coding for Kids Learn to code by playing!
- ChallengesNew
- For TeachersNew
- Updates
- Buy me a coffee
Backpropagation applies the chain rule layer by layer, from the output back to the inputs. The network has n inputs, h hidden neurons and one output, all with sigmoid activation (σ(z) = 1 / (1 + e^(-z))):
- hidden: a_j = σ(inputs · hidden_weights[j] + hidden_biases[j])
- output: y = σ(a · output_weights + output_bias)
- loss: L = (y - target)²
Gradients:
- delta_out = 2 × (y - target) × y × (1 - y)
- Output layer: dL/doutput_weights[j] = delta_out × a_j and dL/doutput_bias = delta_out
- delta_j = delta_out × output_weights[j] × a_j × (1 - a_j)
- Hidden layer: dL/dhidden_weights[j][i] = delta_j × inputs[i] and dL/dhidden_biases[j] = delta_j
Implement backprop_gradients(inputs, hidden_weights, hidden_biases, output_weights, output_bias, target).
Output
Return a matrix with h + 1 rows:
- Row j (for each hidden neuron j, in order): the n gradients of
hidden_weights[j], then the gradient ofhidden_biases[j]. - Last row: the h gradients of
output_weights, then the gradient ofoutput_bias.
Constraints
1 ≤ n, h ≤ 20
-5 ≤ each input, weight and bias ≤ 5
0 ≤ target ≤ 1
Examples
Example 1
Input:
inputs = [1.0]
hidden_weights = [
[0.0]
]
hidden_biases = [0.0]
output_weights = [0.0]
output_bias = 0.0
target = 1.0
Expected output:
[
[0.0, 0.0],
[-0.125, -0.25]
]
Explanation
a = σ(0) = 0.5 and y = σ(0) = 0.5. delta_out = 2 × (0.5 - 1) × 0.25 = -0.25. Output row: [-0.25 × 0.5, -0.25] = [-0.125, -0.25]. delta_1 = -0.25 × 0 × 0.25 = 0, so the hidden row is [0, 0]: a zero output weight blocks the gradient.
Example 2
Input:
inputs = [1.0, 0.0]
hidden_weights = [
[0.0, 1.0],
[0.0, -1.0]
]
hidden_biases = [0.0, 0.0]
output_weights = [1.0, 1.0]
output_bias = -1.0
target = 0.0
Expected output:
[
[0.0625, 0.0, 0.0625],
[0.0625, 0.0, 0.0625],
[0.125, 0.125, 0.25]
]
Explanation
Both hidden values are σ(0) = 0.5, so y = σ(0.5 + 0.5 - 1) = 0.5 and delta_out = 2 × 0.5 × 0.25 = 0.25. Output row: [0.125, 0.125, 0.25]. Each delta_j = 0.25 × 1 × 0.25 = 0.0625, giving hidden rows [0.0625, 0, 0.0625] (the second input is 0).
References
-
Example 1 Not runInput:
inputs = [1.0] hidden_weights = [ [0.0] ] hidden_biases = [0.0] output_weights = [0.0] output_bias = 0.0 target = 1.0Expected output:[ [0.0, 0.0], [-0.125, -0.25] ]Your output -
Example 2 Not runInput:
inputs = [1.0, 0.0] hidden_weights = [ [0.0, 1.0], [0.0, -1.0] ] hidden_biases = [0.0, 0.0] output_weights = [1.0, 1.0] output_bias = -1.0 target = 0.0Expected output:[ [0.0625, 0.0, 0.0625], [0.0625, 0.0, 0.0625], [0.125, 0.125, 0.25] ]Your output
4 hidden tests also run when you submit. If your code fails one, you'll see that test. Solve the challenge to see them all.
Online Kotlin Compiler
Write, compile, run, and debug Kotlin code online in a full-featured browser IDE. Work with multiple files, save your workspace, and collaborate in real time.
🚀 71,457 total executions (576 this month)
Practice Kotlin with coding challenges
Solve hands-on problems right in this editor: run the sample tests, submit, and get an AI code review.
🧩 About This Kotlin Online Executor
The CodeUtility Kotlin Executor lets you write, compile, and run Kotlin code directly in your browser - no installation, IDE, or SDK setup required. It uses real Kotlin compilers running in isolated sandboxes for a safe and authentic execution experience.
This tool supports multiple Kotlin versions - 1.6, 1.9, and 2.1 - so you can explore syntax updates, test code compatibility, and experiment with modern language features like coroutines, data classes, and sealed interfaces.
It’s ideal for students learning Kotlin basics, Android developers experimenting with snippets, or backend engineers testing logic in a JVM environment without leaving the browser.
The environment runs each snippet inside a secure containerized runtime, ensuring consistent performance and safe code execution.
More than a code runner
Use a multi-file editor, an isolated execution terminal, runtime-specific libraries, persistent workspaces, sharing, and real-time collaboration from the same executor.
How to use this executor?
Choose a runtime, open or create a file, write your code, and select Run. Output appears in the terminal, while signed-in users can keep files in a workspace, install libraries, and collaborate through shares.
- Select a version and edit the current file or open another workspace file.
- Run the code, provide input in the terminal when requested, and review saved run history.
- Use libraries, workspace tools, sharing, and chat when your task needs more than one snippet.
💡 Kotlin Basics Guide for Beginners
1. Declaring Variables and Constants
Kotlin uses val for immutable variables and var for mutable ones.
val name: String = "Alice"
var age: Int = 30
val pi = 3.14 // type inferred
// Constants
const val MAX_USERS = 100
2. Conditionals (if / when)
Use if expressions or when for multiple branches.
val x = 2
if (x == 1) {
println("One")
} else if (x == 2) {
println("Two")
} else {
println("Other")
}
when (x) {
1 -> println("One")
2 -> println("Two")
else -> println("Other")
}
3. Loops
Use for, while, and do-while for iteration.
for (i in 0..2) {
println(i)
}
var n = 3
while (n > 0) {
println(n)
n--
}
4. Arrays
Kotlin supports arrays using the arrayOf() function.
val numbers = arrayOf(10, 20, 30)
println(numbers[1])
5. List Manipulation
Use mutableListOf for dynamic lists.
val nums = mutableListOf(1, 2, 3)
nums.add(4)
nums.removeAt(0)
for (n in nums) {
print("$n ")
}
6. Console Input/Output
Use readLine() for input and println() for output.
print("Enter your name: ")
val name = readLine()
println("Hello, $name")
7. Functions
Functions use fun keyword with optional return type.
fun add(a: Int, b: Int): Int {
return a + b
}
println(add(3, 4))
8. Maps
mutableMapOf stores key-value pairs.
val ages = mutableMapOf("Alice" to 30)
println(ages["Alice"])
9. Exception Handling
Use try, catch, and finally to handle errors.
try {
val result = 10 / 0
} catch (e: ArithmeticException) {
println("Error: ${e.message}")
}
10. File I/O
Use File from java.io for file operations.
import java.io.File
File("file.txt").writeText("Hello File")
val text = File("file.txt").readText()
println(text)
11. String Manipulation
Kotlin strings support many methods and interpolation.
val text = "Hello World"
println(text.length)
println(text.substring(0, 5))
println(text.contains("World"))
12. Classes & Objects
Kotlin classes are concise and support default constructors.
class Person(val name: String) {
fun greet() = println("Hi, I'm $name")
}
val p = Person("Alice")
p.greet()
13. Null Safety
Kotlin distinguishes nullable and non-nullable types. Use ? and ?: for safety.
val name: String? = null
println(name?.length ?: 0)