CPallini
Предполагая пять гласных (то есть учитывая 'Y
- согласный), вы могли бы
10 ^ 3 * 21 ^ 3 * 9 = 83349000
разные тарелки.
Таким образом, вы можете выбрать случайное число в
[0..83348999]
диапазон и генерировать строку пластин с его помощью. Я собираюсь показать вам код:
import java.util.Random;
class Plate
{
static final int PLATES = 83349000;
static String plate(int n)
{
char [] dgt = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
char [] letter = { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z' };
String [] cc = { "CA", "ZN", "MP", "EC", "L", "GP", "NC", "FS", "NW" };
String p = "";
if ( n<0 || n >= PLATES) return p;
int rem;
for ( int i = 0; i<3; i++)
{
rem = n % 10;
p += dgt[rem];
n = (n - rem) / 10;
}
p += "-";
for ( int i = 0; i<3; i++)
{
rem = n % 21;
p += letter[rem];
n = (n - rem) / 21;
}
p += "-";
rem = n % 9;
p += cc[rem];
return p;
}
public static void main(String arg[])
{
int n;
Random rand = new Random();
// generate and show 10 random plates (repetition is allowed)
for (n=0; n<10; ++n)
{
int r = rand.nextInt(PLATES);
System.out.printf( "%3d %s\n", (n+1), plate( r) );
}
}
}
Теперь вам нужно сгенерировать 1000000 таких пластин (и я предполагаю), избегая повторений.
Вы можете использовать (если ваш программный блок имеет достаточно памяти) алгоритм, показанный здесь:
Случайное извлечение 5 карт из колоды[
^] чтобы сделать трюк.
Наконец, вы должны создать
GUI
для этого, возможно, используется, как и предполагалось, Swing Framework. Этот художественный шаг очень зависит от вас.