from random import choice
from random import randrange

def norse_male_name():
    """Генерирует норвежское имя из типичных начал и окончаний."""

    start = ("ас","ауд","атли","арн","аль","аг",
             "барди","берси","бёд","болли","бруни",
             "ве","вагни","вик","ван","валь","варди",
             "гуди","вест","гунн","гейр","бранд","бьёрн",
             "гест","гисл","грин","гуд","инг","кнуд","колль",
             "магни","мар","мод","отт","одд","орм","раг","рауд",
             "рун","свейн","сиг","свер","скег","снор","стейн",
             "снэ","тор","трюг","ульв","фрид","фрей","хальф",
             "хар","хрут","хаук","хьяр","эй","хольм","хельм")
    end = ("бьёрн","ун","мунд","ульв","вальд","льот",
           "рик","гейр","вёр","бранд","грим","мод","ланд",
           "гард","ар","мар","рёд","лейв","бейн","стейн",
           "фред","аринн","гест","гисл","одд","винд")

    name = choice(start)
    if not name.endswith(('и','ь','е','э','й')):
        if not randrange(5):  #TODO: более ясно описать 80%-е добавление "и"
            if name[-1] == name[-2]:
                name += 'и'
            else:
                name += name[-1] + 'и'
        else:
            name += choice(end)
    else:
        name += choice(end)
    return name
