Post Reply 
Programming puzzles: processing lists!
04-20-2017, 09:55 PM (This post was last modified: 05-05-2017 01:29 PM by Didier Lachieze.)
Post: #11
RE: Programming puzzles: processing lists!
My solutions for #1 to #11 plus #13 & #21 on the Prime :
Code:

EXPORT LI1(l)
BEGIN
  LOCAL a,b;
  a:=IFTE(l(1)==3,{3,5},{5,3});
  b:=MAKELIST(a(I MOD 2),I,1,SIZE(l));
  RETURN IFTE(EQ(l,b),l,"invalid");
END;

EXPORT LI2(l)
BEGIN
  EXECON("IFTE(&1==3,4,IFTE(&1==5,7,&1))",l);
END;

EXPORT LI3(l)
BEGIN
  LOCAL a,b;
  a:=SIZE(l);
  b:=FLOOR(a/3)+1;
  MAKELIST(l(((I-b) MOD a)+1),I,1,a);
END;

EXPORT LI4(l)
BEGIN
  LOCAL a,b,c,j;
  a:=SIZE(l);b:={};c:=1;
  FOR j FROM a DOWNTO 1 DO
    b(j):= l(j) XOR c;
    c:=l(j) AND c; 
  END;
  IFTE(c,CONCAT(c,b),b);
END;

EXPORT LI5(l)
BEGIN
  LOCAL a,b,c,j;
  a:=SIZE(l);b:={};c:=1;
  FOR j FROM a DOWNTO 1 DO
    b(j):= l(j) XOR c;
    c:= (NOT l(j)) AND c; 
  END;
  b;
END;

EXPORT LI6(l)
BEGIN
LOCAL a;
a:=UNION(l);
a:=MAKELIST(SIZE(INTERSECT(l,{a(I)})),I,1,SIZE(a));
IF ΠLIST(a==a(1)) THEN l ELSE "invalid" END;
END;

EXPORT LI7(l)
BEGIN
LOCAL a:=SIZE(l);
IFTE(odd(a),l,CONCAT(l({1,a/2}),{-1},l({a/2+1,a})));
END;

EXPORT LI8(l)
BEGIN
LOCAL a:=SIZE(l);
IFTE(odd(a),l,IFTE(EQ(l({1,a/2}),l({a/2+1,a})),l,"invalid"));
END;

EXPORT LI9(l)
BEGIN
LOCAL a:=SIZE(l);
IF (a  MOD 3)==0 THEN
 IF EQ(l({1,a/3}),MAKELIST(3,I,1,a/3)) AND 
    EQ(l({a/3+1,2*a/3}),MAKELIST(5,I,1,a/3)) AND 
    EQ(l({1,a/3}),l({2*a/3+1,a})) THEN RETURN l;
 END;
END;
"invalid";
END;

EXPORT LI10(l)
BEGIN
LOCAL a,b;
a:=UNION(l);
b:=MAKELIST(SIZE(INTERSECT(l,{a(I)})),I,1,SIZE(a));
IF EQ(a,b) THEN l ELSE "invalid" END;
END;

EXPORT LI11(l)
BEGIN
IFTE(EQ(l,REVERSE(l)),l,"invalid");
END;

EXPORT LI13(l)
BEGIN
LOCAL a,b,c,k;
 a:=SIZE(l);
 b:=mat2list(idivis(a)); 
 FOR k FROM 1 TO SIZE(b)-1 DO
  c:=MAKELIST(l(((I-1) MOD b(k))+1),I,1,a);
  IF EQ(l,c) THEN RETURN(a/b(k)); END;
 END;
 "invalid";
END;

EXPORT LI21(l)
BEGIN
 UNION(l);
END;
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Programming puzzles: processing lists! - Didier Lachieze - 04-20-2017 09:55 PM



User(s) browsing this thread: 1 Guest(s)