2010-06-15 2 views
3

저는 프로젝트 오일러 문제 중 84 개를 해결했습니다. 주로 하스켈에서 발생했습니다. 지금 현재 J의 오일러 56에 대한 정답을 얻지 못하는 이유는 무엇입니까?

J.

학습에 연습으로, 이미 하스켈에서 해결 그 중 일부를 다시 가서 J에서 해결하기 위해 노력하고, 나는 Problem 56를 해결하기 위해 노력하고 있습니다. 내가 이미 하스켈에서 해결했기 때문에 나는 옳은 대답이 인 것을 이미 알고있다. 그것은 매우 쉽고 사소한 문제입니다. 나는 대답을주지 않을 것이다. 이는 원하는 결과 미만의 수 생성

digits =: ("."0)@":"0 
eachDigit =: adverb : '[email protected]:digits"0' NB. I use this so often I made it an adverb. 
cartesian =: adverb : '((#~ #) u ($~ *:@#))' 
>./ +/ eachDigit x:^cartesian >: i. 99 

:

여기서 J 내 용액이다. 즉, 어떻게 든 잘못되었습니다. 밖에있는 J-ers들은 왜 그런지 압니까? 꽤 간단하고 완전히 무차별 적이기 때문에 당황 스럽습니다.

답변

3

게임에서 너무 늦은 확장 정밀도 (x:)를 적용하고 있기 때문입니다. 가장 먼저 수행 한 작업 (예 : i. x: 99)을 확장 된 정밀도로 전환하면 모두 설정해야합니다.

귀하의 cartesian에 관한 한 가지 다른 참고 사항. J의 내장을보고 싶을 수도 있습니다 "table" adverb (/) :

^/~ >: i.5 
1 1 1 1 1 
2 4 8 16 32 
3 9 27 81 243 
4 16 64 256 1024 
5 25 125 625 3125 

    , ^/~ >: i.3 
1 1 1 2 4 8 3 9 27 
+0

고쳐주었습니다. 또한 제가 작업하고 있던 프로젝트 오일러 문제를 해결했습니다. 나는 지금 테이블 부사를 조사하고있다. –

+0

방금 ​​테이블 부사에 익숙하다는 것을 알았지 만 직교 작업에 사용할 수 있다는 것을 몰랐습니다. –

+2

오! 그것은 dyadically 사용할 때! 알 겠어. 아주 좋아! –

관련 문제