Obrigado a @ComradeSparklePony pelo título.
Esse desafio deve ser muito simples. Você recebe três listas.
O primeiro é uma lista dos primeiros nomes, em maiúsculas.
O segundo é uma lista de adjetivos, em minúsculas.
O terceiro é uma lista de substantivos, em minúsculas.
Selecione aleatoriamente um nome, adjetivo opcional e substantivo e saída <Name>'s <adjective> <noun>
. No entanto, cada palavra deve começar com a mesma letra. Você pode assumir que todas as palavras começam com uma letra. Você também pode supor (mas anote na sua resposta, se o fizer):
- que todas as palavras são compostas apenas por caracteres alfabéticos
- que existe pelo menos um substantivo para cada nome
- que existe pelo menos um nome para cada substantivo
No entanto, não é possível supor que exista um adjetivo para um par específico de nome e substantivo, pois o adjetivo é opcional, portanto a saída ainda será válida.
Você não precisa selecionar a letra compartilhada de maneira uniforme, embora todas as letras disponíveis devam ter uma chance diferente de zero. Você deve, no entanto, garantir que todas as saídas para uma determinada letra tenham a maior chance possível de ocorrer dentro dos limites do gerador de números aleatórios do seu idioma. No caso do adjetivo, isso equivale a ter uma entrada extra que significa "nenhum adjetivo para esta carta", que tem a mesma chance que todos os outros adjetivos para essa carta.
Exemplos de listas de entrada:
Joan Neil Nicola Oswald Sherman Stephanie
new novel old original second silent
jeep noun novel output second sheep snake
Exemplo de saídas para essas entradas (cada linha é um exemplo separado):
Stephanie's second second
Sherman's silent snake
Oswald's original output
Nicola's novel novel
Neil's noun
Joan's jeep
Observe que não há espaço extra entre as palavras nos dois últimos exemplos.
Isso é código-golfe , então o código mais curto que não quebra brechas padrão vence!
No caso improvável de ajudar, você pode inserir tudo em maiúsculas, mas ainda precisará produzir em maiúsculas.
j
adjetivos, a chance seria de 4 em 9? Pode valer a pena colocar probabilidades em relação às saídas ou enumerar todas as saídas - como eu entendo não apenas "todas as saídas para uma determinada letra ...", mas também todas as saídas distintas devem ter a mesma probabilidade (dados distintos em cada lista).