从小到大的数字表,相邻差逼近分组
用相邻数的差小分组,不要求误差,只需要分组个数比如(setq lst '(1 2 3 5 7 8 9)) 要求分组4组,每组至少一个元素
上面的结果可以是
1. '((1 2) (3) (5) (7 8 9))
2. '((1) (2 3) (5) (7 8 9))
3. '((1 2 3) (5) (7 8) (9))
4. '((1 2 3) (5) (7) (8 9))
分组个数是固定的还是程序自行确定 masterlong 发表于 2019-3-15 08:30
分组个数是固定的还是程序自行确定
分组个数是参数,可变的,只有相邻数字差最接近是必须要的 假如分组数是预置的
文字描述下思路
1.求出所有相邻差
2.相邻差大到小vl-sort-i排序
3.分组个数n决定取出上表n-1个元素
4.根据 i 值直接表分组 masterlong 发表于 2019-3-15 08:59
假如分组数是预置的
文字描述下思路
1.求出所有相邻差
谢谢提供思路,
不只是差相近,而是分组中的数是相邻的,
你提供的,应该是差相邻的,根据i的值分组是不对的
这样的分两组,那就变成了
(1 2 4 8 9)
((1 2 8 9) (4))
应该是 ((1 2 4) (8 9)) (1 2 4 8 9)
-> (1 2 4 1)
-> (2 1 3 0)
->n=2,取1个数,即(2)-> ( (1 2 4)(8 9) )
->n=3,取2个数,即(2 1)-> ( (1 2)(4)(8 9) )
->n=4,取3个数,即(2 1 3)-> ( (1 2)(4)(8)(9) )
->n=5,取4个数,即(2 1 3 0)-> ( (1)(2)(4)(8)(9) )
分组数n取n-1个数
得到的是分组的位置值
没毛病
masterlong 发表于 2019-3-15 14:54
(1 2 4 8 9)
-> (1 2 4 1)
-> (2 1 3 0)
这思路大赞!不知道满不满足炫大的要求
页:
[1]