Создать случайную строку символов, с правилами - PullRequest
1 голос
/ 11 сентября 2011

Я хотел бы знать, как лучше создать случайную строку символов, но с некоторыми простыми правилами.

например: (Определяемая пользователем длина, может содержать только один E, может содержать только 2-4 'S')

Это будет частью приложения Mac OSX, а определенные пользователем элементы будут отображаться в пользовательском интерфейсе. Пользователь устанавливает параметры и нажимает кнопку «Создать». Вывод отображается в NSTextField. Конечно, я думаю, что могу справиться с частью пользовательского интерфейса, только отмечу, что кто-то хочет включить пример кода. Спасибо.

1 Ответ

2 голосов
/ 11 сентября 2011

Это работает, но имейте в виду, что теоретически это может не завершиться.Возможно, вы захотите заменить посторонние Es и S другими буквами, чтобы принудительно завершить его.

Это определенно зациклится навсегда, если введенная пользователем длина будет 2!

        BOOL canQuit = NO;
        while (!canQuit)
        {
            NSMutableString *output = [[[NSMutableString alloc] init] autorelease];
            while ([output length] < userDefinedLength)
            {
                //Generates a random character between a and z;
                char c = ((arc4random() % (122 - 96)) + 97);
                [output appendFormat:@"%c", c];
            }
            NSLog(@"%@", output);
            int numberOfE = [output replaceOccurrencesOfString:@"e" withString:@"e" options:NSCaseInsensitiveSearch range:NSMakeRange(0, output.length)];
            int numberOfS = [output replaceOccurrencesOfString:@"s" withString:@"s" options:NSCaseInsensitiveSearch range:NSMakeRange(0, output.length)];

            canQuit = (numberOfE <= 1 && numberOfS >= 2 && numberOfS <= 4);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...