2014-10-14 5 views
1

Можно прочитать о увеличивающем (здесь:. http://tibasicdev.wikidot.com/augmentInverse методы увеличивающей в Ti-84 Ti-основных для списков (разделение единого списка)

Я хотел бы программу, которая является своим родом обратного увеличивающих То, что я хочу сделать, это взять список, скажем L1, а затем разбить его на подвычислители одинаковой длины и сохранить их в L1, ..., Lk для некоторого произвольного k. Если нужно, я могу добавить число 23 несколько раз в L1 ., пока не может разделить его Я хотел бы для каждого списка, чтобы иметь п элементов

Пример:.

Примите L1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Я хотел бы разделить его на равные подсписков длины п = 3

L1 имеет 10 элементов, которые не является кратным 3, так что я добавить 23 дважды к нему, чтобы получить:

L1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 23, 23}

Тогда я разделить ее на равные подсписков длины 3 и получаем:

L2 = {1, 2, 3}

L 3 = {4, 5, 6}

L4 = {7, 8, 9}

L5 = {10, 23, 23}

Однако это один конкретный пример, но хотелось бы моя программа работает для любого n, так что я могу пойти N-> T: prgrParttition и он работает.

+0

Я никогда не находил хороший способ разбить или разбить список в TI-Basic, поэтому я надеюсь, что кто-то опубликует хороший ответ. Между тем, я отправлю ответ с помощью моей предпочтительной техники. –

ответ

0

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

программа запрашивает у пользователя списка (L1) и размером строки (A), а затем разбивает список список в dim(L1)/A списки с A элементов в каждой. Результаты возвращаются в переменной Ans в виде матрицы.

DelVar [A]Prompt L₁,A 
{int(dim(L₁)/A),A→dim([A] 
For(B,1,Aˉ¹dim(L₁ 
For(C,1,A 
L₁(AB-A+C→[A](B,C 
End 
End