Implement k-means clustering from scratch in Python (no sklearn, no ML libraries — only numpy allowed).

Write /tmp/kmeans.py that:
1. Generates a 2D dataset with 3 obvious clusters:
   - Cluster 1: 50 points centered at (0, 0) with std=0.5
   - Cluster 2: 50 points centered at (5, 5) with std=0.5
   - Cluster 3: 50 points centered at (10, 0) with std=0.5
   Use numpy.random.seed(42) for reproducibility.

2. Implements k-means with:
   - Random initialization (pick k random data points as initial centroids)
   - Assignment step (assign each point to nearest centroid using Euclidean distance)
   - Update step (recompute centroids as mean of assigned points)
   - Convergence check (stop when centroids move less than 1e-4 total, or after 100 iterations)

3. Runs k-means with k=3, numpy.random.seed(42) for centroid init

4. Outputs:
   - Final centroid positions (should be close to (0,0), (5,5), (10,0))
   - Number of iterations to converge
   - Number of points per cluster
   - Inertia (sum of squared distances to assigned centroid)

5. Validates:
   - Each cluster should have approximately 50 points (40-60 range acceptable)
   - Centroids should be within 1.0 of true centers
   - Inertia should be less than 100

Run: python3 /tmp/kmeans.py
Install numpy first if not available: pip3 install numpy