Язык программирования с перегибом

, основанный на других решениях, вы генерируете накопительное распределение (как целое или плавающее, как вам нравится), тогда вы можете использовать bisect, чтобы сделать его быстрым

, это простой пример (здесь я использовал целые числа)

l=[(20, 'foo'), (60, 'banana'), (10, 'monkey'), (10, 'monkey2')]
def get_cdf(l):
    ret=[]
    c=0
    for i in l: c+=i[0]; ret.append((c, i[1]))
    return ret

def get_random_item(cdf):
    return cdf[bisect.bisect_left(cdf, (random.randint(0, cdf[-1][0]),))][1]

cdf=get_cdf(l)
for i in range(100): print get_random_item(cdf),

функция get_cdf преобразует ее из 20, 60, 10, 10 в 20, 20 + 60, 20 + 60 + 10, 20 + 60 + 10 + 10

теперь мы выбираем случайное число до 20 + 60 + 10 + 10 с использованием random.randint, затем мы используем bisect для быстрого получения фактического значения

10
задан Ming-Tang 4 May 2010 в 05:12
поделиться

6 ответов

Я думаю, что Perligata (Perl на латыни) - это то, что вы ищете. :) Из статьи

Нет причин, по которым программирование Не удалось также использовать языки флексии, а не положение, чтобы обозначают лексические роли.

Вот пример программы (Сито Эратосфена):

    #! /usr/local/bin/perl -w
    use Lingua::Romana::Perligata;
    maximum inquementum tum biguttam egresso scribe.
    meo maximo vestibulo perlegamentum da.
    da duo tum maximum conscribementa meis listis.
    dum listis decapitamentum damentum nexto
        fac sic
            nextum tum novumversum scribe egresso.
            lista sic hoc recidementum nextum cis vannementa da listis.
        cis.
11
ответ дан 3 December 2019 в 16:29
поделиться

Это частично шутливо, но ... язык ассемблера? Такие вещи, как инструкции условного перехода, часто являются вариациями корня («J» для перехода или еще много чего) с добавленными суффиксами для обозначения связанного условия («JNZ» для перехода, если не-ноль, и так далее).

7
ответ дан 3 December 2019 в 16:29
поделиться

Предположительно любой язык программирования, который явно или близко использует естественный язык в качестве основы, например, Программирование на естественном языке . В Массачусетском технологическом институте было проведено исследование использования английского языка для создания высокоуровневых скелетов программ, что больше относится к области обработки естественного языка; созданный ими инструмент называется Metafor .

Насколько мне известно, ни один из существующих языков не поддерживает, скажем, изменение или расширение ключевых слов с помощью интонации. Но теперь вы меня заинтересовали, так что я уверен, что скоро что-нибудь придумаю!

2
ответ дан 3 December 2019 в 16:29
поделиться

Из примерно 40 языков, которые я знаю, единственное, что приходит на ум, - это некоторые редкие реализации SQL, которые включают дружественные псевдонимы. Например, чтобы выбрать базу данных по умолчанию после подключения, стандарт - USE <имя некоторой базы данных> , но я где-то использовал его, который также разрешал USING <имя базы данных> .

0
ответ дан 3 December 2019 в 16:29
поделиться
  • FORTRAN использует первую букву имени для определения типа неявно объявленной переменной.
  • COBOL имеет единственное и множественное число своих «образных констант», например ПРОБЕЛ и ПРОБЕЛ .
0
ответ дан 3 December 2019 в 16:29
поделиться

Отличный (осмелюсь сказать, увлекательный) язык игрового дизайна Inform 7 склонен как английский. Но он настолько тесно интегрирован с множеством других дизайнерских решений, что его сложно выделить как отдельную функцию.

Всем, кто интересуется необычным, но успешным языковым дизайном, следует ознакомиться с Inform 7.

5
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: