Imports System
Imports System.Collections.Generic
Module DistinctDigitGenerator
' ------------------------------------------------------------
' Function: generate_number
' Purpose: Create one 3-digit integer with distinct digits,
' drawn from a shared pool of available digits.
' The first digit is never zero, so the result
' is always a true 3-digit integer.
' ------------------------------------------------------------
Function generate_number(available_digits As List(Of Char), Optional length As Integer = 3) As Integer
Dim rng As New Random()
' Choose the first digit from the pool, excluding '0'
Dim non_zero_digits As New List(Of Char)()
For Each d As Char In available_digits
If d <> "0"c Then
non_zero_digits.Add(d)
End If
Next
Dim first_digit As Char = non_zero_digits(rng.Next(non_zero_digits.Count))
available_digits.Remove(first_digit)
' Choose the remaining digits from the updated pool
Dim remaining As New List(Of Char)()
For i As Integer = 1 To length - 1
Dim d As Char = available_digits(rng.Next(available_digits.Count))
remaining.Add(d)
available_digits.Remove(d)
Next
' Build the number as a string, then convert to int
Dim digits_str As String = first_digit & String.Join("", remaining)
Return Integer.Parse(digits_str)
End Function
' ------------------------------------------------------------
' Function: generate_three_distinct_digit_numbers
' Purpose: Produce three integers, each with distinct digits,
' and no digit repeated across all three numbers.
' All numbers are guaranteed to be 3 digits long.
' ------------------------------------------------------------
Function generate_three_distinct_digit_numbers() As Tuple(Of Integer, Integer, Integer)
' Start with all digits 0–9 as strings
Dim digits As New List(Of Char)
For i As Integer = 0 To 9
digits.Add(Convert.ToChar(Convert.ToInt32("0"c) + i))
Next
' Generate three numbers, each 3 digits long
Dim n1 As Integer = generate_number(digits)
Dim n2 As Integer = generate_number(digits)
Dim n3 As Integer = generate_number(digits)
Return Tuple.Create(n1, n2, n3)
End Function
' ------------------------------------------------------------
' Main execution
' ------------------------------------------------------------
Sub Main()
' Run the generator 5 times
For i As Integer = 1 To 5
Dim result = generate_three_distinct_digit_numbers()
Console.WriteLine("(" & result.Item1 & ", " & result.Item2 & ", " & result.Item3 & ")")
Next
End Sub
End Module
' run:
'
' (587, 193, 204)
' (194, 265, 308)
' (234, 170, 895)
' (901, 275, 638)
' (973, 254, 680)
'