2009-09-08 5 views
0

Например, 1 8 4 9 0 2, возврат 3. Спасибо.В APL, как я могу вычислить наименьшее неиспользованное положительное целое из заданного набора целых чисел?

+0

Если это домашняя работа, можете ли вы опубликовать, какую работу вы сделали до сих пор, чтобы попытаться решить проблему? – Welbog

+0

Это не домашнее задание, хотя я работаю из дома. Но я могу взять максимум списка, сгенерировать индексы до этого максимального числа, удалить элементы из списка, затем взять минимум оставшихся элементов, но это не будет хорошим решением. – 2009-09-08 15:57:40

+0

Не ответ, потому что это неправильный язык, но в k4 это довольно красивый '{* & ~ (x @<: x) =! # X}' – mollmerx

ответ

5
{⍬⍴(⍳1+⍴⍵)~⍵} 1 8 4 9 0 2 
+0

Спасибо, но я не могу прочитать предполагаемый шрифт APL. Можете ли вы опубликовать его в коде psuedo? – 2009-09-08 15:59:08

+0

first (iota 1 plus shape arg) без аргумента – 2009-09-08 16:01:12

+0

Спасибо! Это гениально. Независимо от того, какова величина заданных целых чисел, ответ должен быть меньше 1 плюс счет. Очень хорошо. – 2009-09-08 16:09:19

0

Случай, когда все они используются, кажется, есть «один плюс самый большой» в качестве ответа, а в том, что «из» списка другой вопрос.

@Paul, вы используете APL385 в качестве шрифта своего браузера? Похоже, что с этой целью многое прояснилось.

0

Попытка

((⍳⍴n) еп) ⍳0

или

((йота Rho п) элемент п) йота 0

Это более или менее стандартная идиома для выбора следующего доступного номера файла.