for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장합니다.숫자 목록이 세 개 있습니다.
a = {2,3,4,5,6}
b = {4,5,7,2,1}
c = {9,6,4,6,2}
3개의 리스트에서 각 인덱스의 최소값을 취하고 그것을 리스트 d로 바꾸고 싶습니다. 그러면 d = {2,3,4,2,1}이 됩니다.
내가 시작한 루프는 다음과 같습니다.
minsl = {};
i = 1, i = 6, i++에 대하여
최소 = {a[i], b[i], c[i]};
최소값 = 최소값(분);
minsl=minsl,minval,i에 삽입합니다.
If(n items(minsl)==5, break()); // 이 줄은 루프가 멈추기 때문에 루프를 멈추기 위해 추가되었습니다.
);
출력은 minsl = {1,1,1,1,1}입니다. 즉, 목록의 마지막 항목만 저장하게 되고(줄 바꿈 없이는 영원히 저장되지 않음) {2,3,4,2,1}이어야 합니다.
고치는 방법에 대한 제안이 있나요?? 고맙습니다!!
자동화 및 스크립팅Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장이건 생각해내지 못했어요. 좋은 생각이네요. 고맙습니다!
Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장감사해요!!:)
Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장또한 이를 위해 matrices + V Min()을 사용할 수 있습니다(필요한 경우 이해하기 쉽도록 코드에 주석을 달아주세요)
Names Default To Here(1);
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
m = Matrix(a)` |/ Matrix(b)` |/ Matrix(c)`;
d = As List(V Min(m)`); // {2, 3, 4, 2, 1}
Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장귀하의 For() 루프
For( i = 1, i = 5, i++,
필요해요
For( i = 1, i <= 5, i++,
그러면 원하는 대로 작동하는 것 같습니다.
names default to here( 1 );
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
For( i = 1, i <= 5, i++,
mins = a[i] || b[i] || c[i];
minval = Minimum( mins );
Insert Into( minsl, minval );
);Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
i = 1;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i=2;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i = 3;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i = 4;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
minsl즉, 위의 방법은 작동하지만 훨씬 긴 길이의 목록이 있는 경우 루프가 작동하도록 하고 싶습니다.
Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장고맙습니다! 하지만 이게 순서를 유지하지 못하는 것 같습니다. 기본적으로 3개 목록의 첫 번째 인덱스에서 최소값을 끌어와서 목록에 저장해야 합니다(순서를 유지).
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
for(i = 1, i = 5, i++,
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
If(n items(minsl)==5, break());
);실제 루프를 무시하고 위의 코드를 실행하고 i=1을 입력한 다음 루프 내부만 실행하고 i=2를 입력한 다음 루프 내부를 실행하면 작동합니다(minsl = {2,3}이 표시됨). 하지만 어떤 이유에서인지 루프가 제대로 순환하지 않고 중단됩니다.
Re: for 루프를 사용하여 최소값을 찾고 결과를 목록에 저장내가 이 문제에 접근하는 방식은 다음과 같습니다.
names default to here(1);
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
a1= sortlist(a);
remove from(a1,3,n=length(a)-2);
b1= sortlist(b);
remove from(b1,3,n=length(b)-2);
c1= sortlist(c);
remove from(c1,3,n=length(c)-2);
d=a1||b1||c1;
또한 다음을 사용하세요. 스크립트 코드를 입력할 때 미리보기 창 상단에 있는 아이콘을 클릭합니다. 이를 통해 독자는 코드를 더 쉽게 읽을 수 있습니다.