0
안녕, Netlogo의 6 절에서중첩의 Foreach 목록 NetLogo
, 나는 동료의 협력 행동의 시간 가중 측정을 계산하기 위해 노력하고있어. 요컨대, NetLogo에서 중첩 된 foreach를 수행하는 방법을 정확하게 파악할 수 없습니다.
내 현재의 접근 방식 :
- 설정 목록 : reputation_peer
- 설정 목록 : reputation_peer_list, 변수 1 (행동)의 변수 2 (타임 틱)
- 각각의 만남에 reputation_list를 추가 reputation_peer의 reputation_peer에게리스트의 목록을 만드는
- 가중 명성을 계산 :
- 항목 2를 복용 reputation_peer에있는 각 목록의 시간 간격은
- 이며 현재 시간 틱으로 나눕니다. 이 분수를 제공 : 그 만남/총 시간의 틱은
- 설치가리스트의 명성을 무게 변수 동작이 reputation_peer의 첫 번째 항목으로 시간 비율을 곱 위해
- 을 reputation_weighted 틱
- 그런 다음 reputation_weighted의 모든 값을 가져 와서 추가하여 reputation_current를 알고 싶습니다.
저는 foreach 함수를 망쳐 놓고 있습니다. 그러나 나는 그것을 알아낼 수 없습니다. 이러한 접근 방식은 Netlogo에서 어떻게 코딩됩니까?
내 현재 코드입니다 (자신 reputation_peer 설정하면 그것을 테스트) :
to calculate_reputation
set reputation_peer [[8 4][9 2][10 3][11 2][14 1]]
if ticks > 0 [
foreach reputation_peer [x -> set reputation_peer_list list (item 0 x) ((item 1 x)/ticks)
set reputation_peer_list_2 lput reputation_peer_list reputation_peer_list_2]
foreach reputation_peer_list_2 [x -> set reputation_peer_list_list (list (item 0 x * item 1 x))]
foreach reputation_peer_list_list [x -> set reputation_peer_current reputation_peer_current + x]
]
end
정말 내가 잘하지만 주로,이 코드는 모든과 매우 부피가 큰 것하고 있어요 여부를 알 수없는 list_list 일이 계속되고있어. 나는 그것이 훨씬 더 간단 할 수 있다고 생각하고있다.
여러분이 몇 가지 조언을 해주면 크게 도움이 될 것입니다.
안녕 루크, 도와 줘서 고마워! 귀하의 코드는 더 나아졌습니다. 내가 해결할 수없는 문제가 생겼어. 시간이 있다면 어쩌면 그걸 살펴볼 수 있습니다. 편집 문제에서 가장 중요한 질문입니다. – maria118code
@ maria118code 안녕하세요 마리아, 다행히 도왔습니다! 별도의 문제이므로 편집에 대한 새로운 질문을 시작할 가치가 있습니다. 사실, 비슷한 문제를 겪을 수있는 다른 사람들을 돕기 위해 원래의 코드가 제대로 작동하지 않는 한 완전히 제거하지 않는 것이 가장 좋습니다. 개인적으로 원래 질문이 표시되도록 수정 사항을 '롤백'하는 것이 좋습니다 (게시물의 '편집 된 x 시간 전'링크 아래에서 수정 사항을 추적 함) 새 질문을 시작하십시오. –
네, 합리적인 것 같네요! 관심있는 사람에게 다른 질문은 https://stackoverflow.com/questions/47720730/netlogo-list-updated-in-time에 게시됩니다. – maria118code