¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Îº÷°ú

% °Ê²¼¤Î¥µ¥¤¥È¤Ï # £ð¡á1231¡¤ £ñ¡á4567¤òÁª¤Ó¤Þ¤¹¡£ # £å¤Ë65537 # £å¡°-1¡á£ä mod ¦Õ(£î) ¤Î£ä¤ò·×»»¤·¤Æµá¤á¤Þ¤¹¡£ # ¡¡¡¡¡¡¡¡£ä¡á3988493 # ¤È¤Ê¤ê¤Þ¤¹¡£ # # °Å¹æ²½¤ÈÊ£¹ç²½¤Î¼ê½ç # ¸ø³«¸°¡§N = 1231 * 4567 # E = 65537 # d = 3988493 # ʸ»ú¥³¡¼¥É¡§¡Öa¡Áz¡×=01¡Á26¡¢¡ÖA¡ÁZ¡×=27¡Á52¡¢¶õÇò=53 # ʸ½ñ¡§This Anser p(1231). % ÁÇ¿ô1 q(4567). % ÁÇ¿ô2 Ë¡¤È¤¹¤ë¿ô(5621977). % Ë¡¤È¤¹¤ë¿ô ¸ø³«¸°(65537). % ¸ø³«¸° ÈëÌ©¸°(3988493). % ÈëÌ©¸° 'RSA°Å¹æ²½'(_ʸ½ñ,_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó) :- ʸ½ñ¤òʸ»ú¥³¡¼¥É¤Ç¿ôÃͲ½¤·¤Þ¤¹(_ʸ½ñ,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), 'RSAÊý¼°¤Ë¤è¤ë¥³¡¼¥É°Å¹æ²½'(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó). 'RSAÉü¹æ²½'(_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó,_ʸ½ñ) :- 'RSAÊý¼°¤Ë¤è¤ë¥³¡¼¥ÉÉü¹æ²½'(_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤«¤éʸ½ñ¤òÉü¸µ¤·¤Þ¤¹(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_ʸ½ñ). 'RSAÊý¼°¤Ë¤è¤ë¥³¡¼¥É°Å¹æ²½'(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_°Å¹æ¥³¡¼¥É¤Ê¤é¤Ó) :- ¸ø³«¸°(_¸ø³«¸°), Ë¡¤È¤¹¤ë¿ô(_Ë¡¤È¤¹¤ë¿ô), findall(_°Å¹æ¥³¡¼¥É,( '_ʸ»ú¥³¡¼¥É¤ò_°Å¹æ¥³¡¼¥É¤ËÊÑ´¹'(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_¸ø³«¸°,_Ë¡¤È¤¹¤ë¿ô,_°Å¹æ¥³¡¼¥É)),_°Å¹æ¥³¡¼¥É¤Ê¤é¤Ó). '_ʸ»ú¥³¡¼¥É¤ò_°Å¹æ¥³¡¼¥É¤ËÊÑ´¹'(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_¸ø³«¸°,_Ë¡¤È¤¹¤ë¿ô,_°Å¹æ¥³¡¼¥É) :- member(_ʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), _°Å¹æ¥³¡¼¥É is _ʸ»ú¥³¡¼¥É ^ _¸ø³«¸° mod _Ë¡¤È¤¹¤ë¿ô. 'RSAÊý¼°¤Ë¤è¤ë¥³¡¼¥ÉÉü¹æ²½'(_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó) :- ÈëÌ©¸°(_ÈëÌ©¸°), Ë¡¤È¤¹¤ë¿ô(_Ë¡¤È¤¹¤ë¿ô), findall(_ʸ»ú¥³¡¼¥É,( '_°Å¹æÊ¸»ú¥³¡¼¥É¤ò_ʸ»ú¥³¡¼¥É¤ËÉü¹æ¤¹¤ë'(_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó,_ÈëÌ©¸°,_Ë¡¤È¤¹¤ë¿ô,_ʸ»ú¥³¡¼¥É)),_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó). '_°Å¹æÊ¸»ú¥³¡¼¥É¤ò_ʸ»ú¥³¡¼¥É¤ËÉü¹æ¤¹¤ë'(_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó,_ÈëÌ©¸°,_Ë¡¤È¤¹¤ë¿ô,_ʸ»ú¥³¡¼¥É) :- member(_°Å¹æÊ¸»ú¥³¡¼¥É,_°Å¹æÊ¸»ú¥³¡¼¥É¤Ê¤é¤Ó), _ʸ»ú¥³¡¼¥É is _°Å¹æÊ¸»ú¥³¡¼¥É ^ _ÈëÌ©¸° mod _Ë¡¤È¤¹¤ë¿ô. ʸ½ñ¤òʸ»ú¥³¡¼¥É¤Ç¿ôÃͲ½¤·¤Þ¤¹(_ʸ½ñ,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó) :- findall(_ʸ»ú¥³¡¼¥É,( sub_atom(_ʸ½ñ,_,1,_,_ʸ»ú), ʸ»ú¥³¡¼¥É(_ʸ»ú,_ʸ»ú¥³¡¼¥É)), _ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó). °Å¹æ¥³¡¼¥É¤ò°Å¹æÊ¸¤ËÊÑ´¹(_°Å¹æ¥³¡¼¥É¤Ê¤é¤Ó,_°Å¹æÊ¸) :- findall(_°Å¹æÊ¸»ú,( member(_°Å¹æ¥³¡¼¥É,_°Å¹æ¥³¡¼¥É¤Ê¤é¤Ó), ʸ»ú¥³¡¼¥É(_°Å¹æÊ¸»ú,_°Å¹æ¥³¡¼¥É)),_°Å¹æÊ¸»ú¤Ê¤é¤Ó), atom_chars(_°Å¹æÊ¸,_°Å¹æÊ¸»ú¤Ê¤é¤Ó). ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤«¤éʸ½ñ¤òÉü¸µ¤·¤Þ¤¹(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_ʸ½ñ) :- findall(_ʸ»ú,( member(_ʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), ʸ»ú¥³¡¼¥É(_ʸ»ú,_ʸ»ú¥³¡¼¥É)),_ʸ»ú¤Ê¤é¤Ó), atom_chars(_ʸ½ñ,_ʸ»ú¤Ê¤é¤Ó). ʸ»ú¥³¡¼¥É(_ʸ»ú,_¥³¡¼¥É) :- char_code(_ʸ»ú,_¥³¡¼¥É). 'ÈëÌ©¸°¤Î¸õÊä'(_ÁÇ¿ôp,_ÁÇ¿ôq,_¸ø³«¸°,_ÈëÌ©¸°) :- '_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô'(_ÁÇ¿ôp,_ÁÇ¿ôq,_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô), '((_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô * N + 1) / _¸ø³«¸°) ¤¬À°¿ô¤È¤Ê¤ëÈëÌ©¸°¸õÊä¤òÆÀ¤ë'(_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô,_¸ø³«¸°,_ÈëÌ©¸°). '((_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô * N + 1) / _¸ø³«¸°) ¤¬À°¿ô¤È¤Ê¤ëÈëÌ©¸°¸õÊä¤òÆÀ¤ë'(_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô,_¸ø³«¸°,_ÈëÌ©¸°) :- between(1,9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999,N), 0 is (_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô * N + 1) mod _¸ø³«¸°, _ÈëÌ©¸° is (_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô * N + 1) // _¸ø³«¸°. '_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô'(_ÁÇ¿ôp,_ÁÇ¿ôq,_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô) :- succ(_ÁÇ¿ôp_1,_ÁÇ¿ôp), succ(_ÁÇ¿ôq_1,_ÁÇ¿ôq), ºÇ¾®¸øÇÜ¿ô(_ÁÇ¿ôp_1,_ÁÇ¿ôq_1,_ÁÇ¿ôp_1¤È_ÁÇ¿ôq_1¤ÎºÇ¾®¸øÇÜ¿ô). ºÇ¾®¸øÇÜ¿ô(_m,_n,_ºÇ¾®¸øÇÜ¿ô) :- Y is _m * _n, ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë(_m,_n,_ºÇÂç¸øÌó¿ô), _ºÇ¾®¸øÇÜ¿ô is ( _m * _n ) // _ºÇÂç¸øÌó¿ô. '¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë'(_m,_m,_m). '¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë'(_m,_n,_ºÇÂç¸øÌó¿ô) :- _m > _n, _¾ê; is _m mod _n, ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë(_m,_n,_¾ê;,_ºÇÂç¸øÌó¿ô). '¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë'(_m,_n,_ºÇÂç¸øÌó¿ô) :- _m < _n, ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë(_n,_m,_ºÇÂç¸øÌó¿ô). ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë(_,_ºÇÂç¸øÌó¿ô,0,_ºÇÂç¸øÌó¿ô) :- !. ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë(_m,_n,_¾ê;,_ºÇÂç¸øÌó¿ô) :- '¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ë¤è¤êºÇÂç¸øÌó¿ô¤òÆÀ¤ë'(_n,_¾ê;,_ºÇÂç¸øÌó¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1365 # # À®ÀÓ¤ÎʬÉۤʤɤòɽ¤¹¤Î¤Ë»È¤ï¤ì¤ëÅÙ¿ôʬÉÛɽ¡£ # ¤Ò¤ÈÌܤÇÁ´ÂΤ붤é¤Ð¤ê¶ñ¹ç¤¬¤ï¤«¤Ã¤ÆÊØÍø¤Ç¤¹¡£ # # ¡ÚÌäÂê¡Û # º£²ó¤ÏÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ¤òºî¤Ã¤Æ¤ß¤Þ¤¹¡£ # ÆþÎϤȤ·¤Æ2¤Ä¤ÎÀµ¤ÎÀ°¿ô¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ # °ì¤ÄÌܤÏʬÉÛ¤µ¤»¤ëÁÇ¿ô¤ÎºÇÂçÃÍ¡¢Æó¤ÄÌܤ϶èÀÚ¤ê¤ÎÂ礭¤µ¤Ç¤¹¡£ # Î㤨¤Ð¡¢30¤È5¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢30¤Þ¤Ç¤ÎÁÇ¿ô¤ò5¤Ç¶èÀڤäƽÐÎϤ·¤Þ¤¹¡£ # 30¤Þ¤Ç¤ÎÁÇ¿ô¤Ï2, 3, 5, 7, 11, 13, 17, 19, 23, 29¤Ç¤¹¤Î¤Ç¡¢ # ½ÐÎÏÆâÍÆ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ # 01-05:*** # 06-10:* # 11-15:** # 16-20:** # 21-25:* # 26-30:* # ƱÍͤˡ¢40¤È7¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£ # 01-07:**** # 08-14:** # 15-21:** # 22-28:* # 29-35:** # 36-42:* # ¾åµ­¤Î¤è¤¦¤Ë½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ # ¤Ê¤ª¡¢ºÇÄã¸Â¡¢°Ê²¼¤ÎÆþÎϤËÂФ·¤ÆÀµ¾ï¤Ëưºî¤¹¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ # ÆþÎÏ£±¡§100 15 # ÆþÎÏ£²¡§1200 25 # ÆþÎÏ£³¡§12345 789 # 'º£²ó¤ÏÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ¤òºî¤Ã¤Æ¤ß¤Þ¤¹¡£'(_ºÇÂçÃÍ,_¶èÀÚ¤ê) :- ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÅÙ¿ôʬÉÛɽ), ÅÙ¿ôʬÉۿޤȤ·¤ÆÉ½¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÅÙ¿ôʬÉÛɽ) :- ÁÇ¿ô¤òÀ¸À®¤¹¤ë(_ºÇÂçÃÍ,_ÁÇ¿ô¤Ê¤é¤Ó), ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ÁÇ¿ô¤Ê¤é¤Ó,_¶èÀÚ¤ê,_ºÇÂçÃÍ,_ÅÙ¿ôʬÉÛɽ). ÁÇ¿ô¤òÀ¸À®¤¹¤ë(_ºÇÂçÃÍ,_ÁÇ¿ô¤Ê¤é¤Ó) :- findall(_¼«Á³¿ô,between(2,_ºÇÂçÃÍ,_¼«Á³¿ô),L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([M|R1],[M|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(M,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(M,R1,L) :- findall(N,( member(N,R1), \+(0 is N mod M)),L). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ÁÇ¿ô¤Ê¤é¤Ó,_¶èÀÚ¤ê,_ºÇÂçÃÍ,_ÅÙ¿ôʬÉÛɽ) :- findall([_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô],( ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,1,_¶èÀÚ¤ê,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô)),_ÅÙ¿ôʬÉÛɽ). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- ÈϰϤÈÅÙ¿ô¤òÆÀ¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- 'ÈϰϤò¤º¤é¤·¤Ê¤¬¤é¡¢ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ¤òÆÀ¤ë'(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô). ÈϰϤÈÅÙ¿ô¤òÆÀ¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- _Èϰϲ¼¸Â =< _ºÇÂçÃÍ, ÅÙ¿ô((between(_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÁÇ¿ô),member(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó)),_ÅÙ¿ô). 'ÈϰϤò¤º¤é¤·¤Ê¤¬¤é¡¢ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ¤òÆÀ¤ë'(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- _Èϰϲ¼¸Â_1 =< _ºÇÂçÃÍ, ¼¡¤ÎÈϰϤò³ÎÄꤹ¤ë(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_¼¡¤ÎÈϰϲ¼¸Â,_¼¡¤ÎÈϰϾå¸Â), ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_¼¡¤ÎÈϰϲ¼¸Â,_¼¡¤ÎÈϰϾå¸Â,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô). ¼¡¤ÎÈϰϤò³ÎÄꤹ¤ë(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_¼¡¤ÎÈϰϲ¼¸Â,_¼¡¤ÎÈϰϾå¸Â) :- ¼¡¤ÎÈϰϲ¼¸Â(_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_¼¡¤ÎÈϰϲ¼¸Â), ¼¡¤ÎÈϰϾå¸Â(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÈϰϾå¸Â_1,_¼¡¤ÎÈϰϾå¸Â). ¼¡¤ÎÈϰϲ¼¸Â(_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_¼¡¤ÎÈϰϲ¼¸Â) :- _¼¡¤ÎÈϰϲ¼¸Â is _Èϰϲ¼¸Â_1 + _¶èÀÚ¤ê. ¼¡¤ÎÈϰϾå¸Â(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÈϰϾå¸Â_1,_ºÇÂçÃÍ) :- _ºÇÂçÃÍ < _ÈϰϾå¸Â_1 + _¶èÀÚ¤ê,!. ¼¡¤ÎÈϰϾå¸Â(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÈϰϾå¸Â_1,_¼¡¤ÎÈϰϾå¸Â) :- _¼¡¤ÎÈϰϾå¸Â is _ÈϰϾå¸Â_1 + _¶èÀÚ¤ê. ÅÙ¿ô(_ÌÜɸ,_ÅÙ¿ô) :- findall(_,_ÌÜɸ,L), length(L,_ÅÙ¿ô). ÅÙ¿ôʬÉۿޤȤ·¤ÆÉ½¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ) :- ÈϰϤβ¼¸ÂÃͤȾå¸ÂÃͤΤ½¤ì¤¾¤ì¤ÎºÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô), ÈϰÏËè¤ËÃì¤òɽ¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô). ÈϰϤβ¼¸ÂÃͤȾå¸ÂÃͤΤ½¤ì¤¾¤ì¤ÎºÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô) :- Èϰϲ¼¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô), ÈϰϾå¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô). Èϰϲ¼¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô) :- findall(_·å¿ô,Èϰϲ¼¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_·å¿ô),L), max_list(L,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô). Èϰϲ¼¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_²¼¸Â·å¿ô) :- member([_Èϰϲ¼¸Â,_,_],_ÅÙ¿ôʬÉÛɽ), number_chars(_Èϰϲ¼¸Â,Chars), length(Chars,_²¼¸Â·å¿ô). ÈϰϾå¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_ÈϰϤÎɽ¼¨·å¿ô) :- findall(_·å¿ô,ÈϰϾå¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_·å¿ô),L), max_list(L,_ÈϰϤÎɽ¼¨·å¿ô). ÈϰϾå¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_¾å¸Â·å¿ô) :- member([_,_ÈϰϾå¸Â,_],_ÅÙ¿ôʬÉÛɽ), number_chars(_ÈϰϾå¸Â,Chars), length(Chars,_¾å¸Â·å¿ô). ÈϰÏËè¤ËÃì¤òɽ¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô) :- forall( member([_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô],_ÅÙ¿ôʬÉÛɽ), Ãì¤òɽ¼¨¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô)). Ãì¤òɽ¼¨¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ÇÈϰϤòɽ¸½¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÈϰÏɽ¸½Ê¸»úÎó), À±Ê¸»úÎó(_ÅÙ¿ô,_À±Ê¸»úÎó), writef('%w:%w\n',[_ÈϰÏɽ¸½Ê¸»úÎó,_À±Ê¸»úÎó]). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ÇÈϰϤòɽ¸½¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÈϰÏɽ¸½Ê¸»úÎó) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ɽ¼¨Èϰϲ¼¸Â), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â,_ɽ¼¨ÈϰϾå¸Â), atomic_list_concat([_ɽ¼¨Èϰϲ¼¸Â,'-',_ɽ¼¨ÈϰϾå¸Â],_ÈϰÏɽ¸½Ê¸»úÎó). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(_·å¿ô,_¿ôÃÍ,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ò¹½À®¤¹¤ëÏȤòºî¤ë(_·å¿ô,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È), ¿ôÃͤòʸ»ú¤Î¥ê¥¹¥ÈÊÑ´¹¤·¤Æ¤½¤ÎƬÉô¤Ë¥¼¥í¤òËä¤á¤ë(_¿ôÃÍ,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È), ʸ»ú¥ê¥¹¥È¤òʸ»úÎó¤ËÊÑ´¹(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ò¹½À®¤¹¤ëÏȤòºî¤ë(_·å¿ô,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È) :- length(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È,_·å¿ô). ¿ôÃͤòʸ»ú¤Î¥ê¥¹¥ÈÊÑ´¹¤·¤Æ¤½¤ÎƬÉô¤Ë¥¼¥í¤òËä¤á¤ë(_¿ôÃÍ,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È) :- number_chars(_¿ôÃÍ,_¿ô»ú¤Î¥ê¥¹¥È), append(_ƬÉô¤ÎÏȥꥹ¥È,_¿ô»ú¤Î¥ê¥¹¥È,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È), Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸(_ƬÉô¤ÎÏȥꥹ¥È,'0'). Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸([],_). Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸([V|R],V) :- Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸(R,V). À±Ê¸»úÎó(_ÅÙ¿ô,_À±Ê¸»úÎó) :- findall(*,between(1,_ÅÙ¿ô,_),L), atomic_list_concat(L,_À±Ê¸»úÎó). ʸ»ú¥ê¥¹¥È¤òʸ»úÎó¤ËÊÑ´¹(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½) :- atom_chars(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 158ÂåÌÜ #48 # {1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬­¶ # [2] ÌäÂêʸ¡§ # http://ime.nu/codepad.org/5oepZpDW # #include # double heikin(int a[]); # # int main(void) # { # int data[5],i; # double ave; # for (i=0;i<=4;i++) # { # printf("data[%d]= ",i); # scanf("%d",&data[i]); # } # ave=heikin(data); # printf("heikin=%f \n",ave); # return 0; # } # # double heikin(int a[]) # { # int i,k=0; # for(i=0;i<=4;i++) # { # k=k+a[i]; # } # return((double)k/5); # } # ¾åµ­¤Î¥×¥í¥°¥é¥à¤Ë5¿Í¤ÎÆÀÅÀ(10ÅÀËþÅÀ)¤ò¼õ¤±¼è¤ë¤È¡¢¹ç³Ê¼Ô¿ô¤òÌ᤹goukaku´Ø¿ô¤òÄɲ令衢⤷6ÅÀ°Ê¾å¤Ç¹ç³Ê¤È¤¹¤ë¡£ # ¤½¤·¤Æ5¿Í¤Î¥Æ¥¹¥È¤ÎÆÀÅÀ¤òÀ°¿ô·¿ÇÛÎódata[5]¤ÎÍ×ÁǤˤ½¤ì¤¾¤ìÆþÎϤ¹¤ë¤È # 5¿Í¤ÎÊ¿¶ÑÅÀ¤Ë²Ã¤¨¤Æ¹ç³Ê¼Ô¿ô¤â½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òheikin´Ø¿ô¤ª¤è¤Ógoukaku´Ø¿ô¤òÍøÍѤ·¤ÆºîÀ®¤·¤Ê¤µ¤¤¡£ # '5¿Í¤ÎÆÀÅÀ(10ÅÀËþÅÀ)¤ò¼õ¤±¼è¤ë¤È¡¢¹ç³Ê¼Ô¿ô¤òÌ᤹½Ò¸ì¤òÄêµÁ¤¹¤ë¡£Ã¢¤·6ÅÀ°Ê¾å¤Ç¹ç³Ê¤È¤¹¤ë¡£¤½¤·¤Æ5¿Í¤Î¥Æ¥¹¥È¤ÎÆÀÅÀ¤òÆþÎϤ¹¤ë¤È5¿Í¤ÎÊ¿¶ÑÅÀ¤Ë²Ã¤¨¤Æ¹ç³Ê¼Ô¿ô¤â½ÐÎϤ¹¤ë¡£' :- '5¿Í¤ÎÆÀÅÀ(10ÅÀËþÅÀ)¤ò¼õ¤±¼è¤ë¤È'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó), Ê¿¶ÑÅÀ¤ò½ÐÎϤ¹¤ë(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó), '6ÅÀ°Ê¾å¤ò¼è¤Ã¤¿¹ç³Ê¼Ô¿ô¤ò½ÐÎϤ¹¤ë'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó). Ê¿¶ÑÅÀ¤ò½ÐÎϤ¹¤ë(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó) :- Ê¿¶ÑÅÀ¤òÌ᤹(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó,_Ê¿¶ÑÅÀ), writef('Ê¿¶ÑÅÀ = %w ÅÀ\n',[_Ê¿¶ÑÅÀ]). Ê¿¶ÑÅÀ¤òÌ᤹(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó,_Ê¿¶ÑÅÀ) :- sum_list(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¹ç·×ÅÀ), _Ê¿¶ÑÅÀ is _¹ç·×ÅÀ / 5. '6ÅÀ°Ê¾å¤ò¼è¤Ã¤¿¹ç³Ê¼Ô¿ô¤ò½ÐÎϤ¹¤ë'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó) :- '6ÅÀ°Ê¾å¤ò¼è¤Ã¤¿¹ç³Ê¼Ô¿ô¤òÌ᤹'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¹ç³Ê¼Ô¿ô), writef('¹ç³Ê¼Ô¿ô = %w ¿Í\n',[_¹ç³Ê¼Ô¿ô]). '5¿Í¤ÎÆÀÅÀ(10ÅÀËþÅÀ)¤ò¼õ¤±¼è¤ë¤È'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó) :- findall(_ÆÀÅÀ,( between(1,5,_), ÆÀÅÀ¤ò¼õ¤±¼è¤ë(_ÆÀÅÀ)),_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó). ÆÀÅÀ¤ò¼õ¤±¼è¤ë(_ÆÀÅÀ) :- ¹ÔÆþÎÏ(_¹Ô), '¿ÇÃÇ: ÆÀÅÀ¤ò¼õ¤±¼è¤ë'(_¹Ô,_ÆÀÅÀ),!. ÆÀÅÀ¤ò¼õ¤±¼è¤ë(_ÆÀÅÀ) :- ÆÀÅÀ¤ò¼õ¤±¼è¤ë(_ÆÀÅÀ). '¿ÇÃÇ: ÆÀÅÀ¤ò¼õ¤±¼è¤ë'(_¹Ô,_ÆÀÅÀ) :- ¹Ôʸ»úÎó¤ò²òÀϤ·¤Æ0¤«¤é10¤ÎÈÏ°Ï¤ÎÆÀÅÀ¤òÆÀ¤ë(_¹Ô,_ÆÀÅÀ),!. '¿ÇÃÇ: ÆÀÅÀ¤ò¼õ¤±¼è¤ë'(_¹Ô,_ÆÀÅÀ) :- writef('ÆþÎϤµ¤ì¤¿ %w ¤«¤é¤ÏŬÀÚ¤ÊÆÀÅÀ¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹Ô]), fail. ¹Ôʸ»úÎó¤ò²òÀϤ·¤Æ0¤«¤é10¤ÎÈÏ°Ï¤ÎÆÀÅÀ¤òÆÀ¤ë(_¹Ô,_ÆÀÅÀ) :- ¹Ôʸ»úÎó¤ò²òÀϤ·¤Æ(_¹Ô,_ÆÀÅÀ), '0¤«¤é10¤ÎÈÏ°Ï¤ÎÆÀÅÀ¤òÆÀ¤ë'(_ÆÀÅÀ). ¹Ôʸ»úÎó¤ò²òÀϤ·¤Æ(_¹Ô,_ÆÀÅÀ) :- read_term_from_atom(_¹Ô,_ÆÀÅÀ,[]). '0¤«¤é10¤ÎÈÏ°Ï¤ÎÆÀÅÀ¤òÆÀ¤ë'(_ÆÀÅÀ) :- integer(_ÆÀÅÀ), member(_ÆÀÅÀ,[0,1,2,3,4,5,6,7,8,9,10]). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(current_input,Codes), atom_codes(_¹Ô,Codes). '6ÅÀ°Ê¾å¤ò¼è¤Ã¤¿¹ç³Ê¼Ô¿ô¤òÌ᤹'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¹ç³Ê¼Ô¿ô) :- findall(_,( '6ÅÀ°Ê¾å¤Ç¹ç³Ê¤È¤¹¤ë'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó)),L), length(L,_¹ç³Ê¼Ô¿ô). '6ÅÀ°Ê¾å¤Ç¹ç³Ê¤È¤¹¤ë'(_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó) :- member(_ÆÀÅÀ,_5¿Í¤ÎÆÀÅÀ¤Ê¤é¤Ó), _ÆÀÅÀ >= 6. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/282 # ¤ªÂê¡§1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£ # ¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£ # Îã # 3,1,2,6 -> 4,5 # # '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£ ¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_1,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_2) :- '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_n,_1¤«¤én¤Þ¤Ç¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô), '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_1¤«¤én¤Þ¤Ç¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô,[],[_¤È¤ê¤Î¤¾¤¤¤¿¿ô_1,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_2]). '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_n,_1¤«¤én¤Þ¤Ç¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò'(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô), ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô), 'ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô). '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò'(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô) :- findall(M,between(1,_n,M),_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô). ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(_n,L1,L2) :- ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(1000,_n,L1,L2),!. ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(0,_,L,L). ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(M,_n,L1,L) :- R is random(_n) + 1, select(R,L1,L2), M_1 is M - 1, ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(M_1,_n,[R|L2],L). 'ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- _¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô=[_,_|_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô]. '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô,X) :- sort(_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô,_À°Îó¤·¤¿2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô), ·çÈÖ¤ò2¸Äµá¤á¤ë(_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_À°Îó¤·¤¿2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô,[],X). ·çÈÖ¤ò2¸Äµá¤á¤ë(_,_,[X1,X2],[X1,X2]) :- !. ·çÈÖ¤ò2¸Äµá¤á¤ë(L1,L2,Y,X) :- ·çÈÖ¤ò2¸Ä¸«¤Ä¤±¤ë¤Þ¤Çõº÷¤¹¤ë(L1,L2,Y,Z). ·çÈÖ¤ò2¸Ä¸«¤Ä¤±¤ë¤Þ¤Çõº÷¤¹¤ë([A|R1],[A|R2],Y,Z) :- ·çÈÖ¤ò2¸Äµá¤á¤ë(R1,R2,Y,X). ·çÈÖ¤ò2¸Ä¸«¤Ä¤±¤ë¤Þ¤Çõº÷¤¹¤ë([A|R1],[B|R2],Y,X) :- A\==B, ·çÈÖ¤ò2¸Äµá¤á¤ë(R1,[B|R2],[A|Y],X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part8?2ch.net # ¤ªÂê¡§n¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë # n=4 -> 41 # n=777 -> 77711 # n=403 -> 40343 n¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô) :- n¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,0,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô),!. n¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,_m,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô) :- õº÷ÈϰϤòÄê¤á¤½¤ÎÃæ¤ËÁÇ¿ô¤¬¸½¤ì¤¿¤éÄä»ß¤¹¤ë(_n,_m,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô). n¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,_m,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô) :- ²¼°Ì·å¤òÁý¤ä¤·¤Ê¤¬¤én¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,_m,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô). õº÷ÈϰϤòÄê¤á¤½¤ÎÃæ¤ËÁÇ¿ô¤¬¸½¤ì¤¿¤éÄä»ß¤¹¤ë(_n,_m,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô) :- õº÷ÈϰϤòµá¤á¤ë(_n,_m,_n_1,_n_2), Èó·èÄêÀ­¤ÎÁÇ¿ôÀ¸À®(_n_2,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô), _n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô >= _n_1. õº÷ÈϰϤòµá¤á¤ë(_n,_m,_n_1,_n_2) :- _n_1 is _n * 10 ^ _m, _n_2 is ( _n + 1 ) * 10 ^ _m - 1. ²¼°Ì·å¤òÁý¤ä¤·¤Ê¤¬¤én¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,_m,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô) :- succ(_m,_m_2), n¤Ç»Ï¤Þ¤ëºÇ¾®¤ÎÁÇ¿ô¤òµá¤á¤ë(_n,_m_2,_n¤Ç»Ï¤á¤ëºÇ¾®¤ÎÁÇ¿ô). Èó·èÄêÀ­¤ÎÁÇ¿ôÀ¸À®(_¸Â³¦ÃÍ,_ÁÇ¿ô) :- findall(N,between(2,_¸Â³¦ÃÍ,N),L), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_ÁÇ¿ô|_],_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([N|L1],_ÁÇ¿ô) :- ÀèÆ¬¤ÎÁÇ¿ô¤òÌ֤Ȥ·¤ÆäÁ¤Ë³Ý¤±¤Æ¹Ô¤¯(L1,_Í×ÁÇ,'_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N),_ÁÇ¿ô). ÀèÆ¬¤ÎÁÇ¿ô¤òÌ֤Ȥ·¤ÆäÁ¤Ë³Ý¤±¤Æ¹Ô¤¯(L1,_Í×ÁÇ,_ÉûÌÜɸ,_ÁÇ¿ô) :- 'L1¤ÎÍ×ÁǤÇ_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L2,_ÁÇ¿ô). 'L1¤ÎÍ×ÁǤÇ_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2) :- findall(_Í×ÁÇ,( 'L1¤ÎÍ×ÁǤÇ'(L1,_Í×ÁÇ), '_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(_ÉûÌÜɸ)),L2). 'L1¤ÎÍ×ÁǤÇ'(L1,_Í×ÁÇ) :- member(_Í×ÁÇ,L1). '_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(_ÉûÌÜɸ) :- \+(_ÉûÌÜɸ). '_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N) :- 0 is _Í×ÁÇ mod N. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 137ÂåÌÜ #936 # ¤ª¼ê¾å¤²¤Ç¤¹¡£´èÄ¥¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£ # ¿½¤·Ìõ¤Ê¤¤¤Ç¤¹¤±¤É¤ª´ê¤¤¤·¤Þ¤¹¡£ # # ÌäÂê # # Ê£¿ô¤Îʸ»úÎó¤òÆÉ¤ß¹þ¤ß¡¤¤µ¤é¤Ë¡¤¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ··ë²Ì¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥ # # ¡Ú¼Â¹ÔÎã¡Û # # ²¿¸Ä¤Îʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¤«¡©¡§4 # ÆþÎÏʸ»úÎó[1]¡§Computer # ÆþÎÏʸ»úÎó[2]¡§Science # ÆþÎÏʸ»úÎó[3]¡§Tarou # ÆþÎÏʸ»úÎó[4]¡§Tanaka # # ·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¡§ # 2 # 4 # 3 # 1 # # ·ë²Ì¡§ScienceTanakaTarouComputer # 'Ê£¿ô¤Îʸ»úÎó¤òÆÉ¤ß¹þ¤ß¡¤¤µ¤é¤Ë¡¤¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ··ë²Ì¤ò½ÐÎϤ¹¤ë' :- 'Ê£¿ô¤Îʸ»úÎó¤òÆÉ¤ß¹þ¤ß¡¤'(_Ê£¿ô¤Î,_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó), '¤µ¤é¤Ë¡¤¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ··ë²Ì¤ò½ÐÎϤ¹¤ë'(_Ê£¿ô¤Î,_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó). 'Ê£¿ô¤Îʸ»úÎó¤òÆÉ¤ß¹þ¤ß¡¤'(_Ê£¿ô¤Î,_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó) :- Ê£¿ô¤Î(_Ê£¿ô¤Î), findall(_¹Ô,( ʸ»úÎó¤òÆÉ¤ß¹þ¤ß(_Ê£¿ô¤Î,_¹Ô)),_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó). Ê£¿ô¤Î(_Ê£¿ô¤Î) :- À°¿ô¤òÆÀ¤ë('²¿¸Ä¤Îʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¤«¡©¡§ ',true,_Ê£¿ô¤Î), writef('ʸ»úÎó¤ò%w¹ÔϢ³¤·¤ÆÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n',[_Ê£¿ô¤Î]). ʸ»úÎó¤òÆÉ¤ß¹þ¤ß(_Ê£¿ô¤Î,_¹Ô) :- between(1,_Ê£¿ô¤Î,_), ¹ÔÆþÎÏ(_¹Ô). '¤µ¤é¤Ë¡¤¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ··ë²Ì¤ò½ÐÎϤ¹¤ë'(_Ê£¿ô¤Î,_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó) :- '¤µ¤é¤Ë¡¤¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ·'(_Ê£¿ô¤Î,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó), ·ë²Ì¤ò½ÐÎϤ¹¤ë(_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó). '¤µ¤é¤Ë¡¤¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ·'(_Ê£¿ô¤Î,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó) :- write('ÆþÎϤ·¤¿Ê¸»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n'), ¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ·(_Ê£¿ô¤Î,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó). ¤½¤ì¤é¤Îʸ»úÎó¤ò·Ò¤®¹ç¤ï¤»¤ë½çÈÖ¤òÆþÎϤ·(_Ê£¿ô¤Î,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó) :- findall(_ÈÖÌÜ,( ½çÈÖ¤òÆþÎϤ·(_Ê£¿ô¤Î,_ÈÖÌÜ)),_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó). ½çÈÖ¤òÆþÎϤ·(_Ê£¿ô¤Î,_ÈÖÌÜ) :- between(1,_Ê£¿ô¤Î,_), À°¿ô¤òÆÀ¤ë(_ÈÖÌÜ). À°¿ô¤òÆÀ¤ë(_ÈÖÌÜ) :- À°¿ô¤òÆÀ¤ë('',true,_ÈÖÌÜ). ·ë²Ì¤ò½ÐÎϤ¹¤ë(_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó) :- ·ë²Ì¤ò(_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó,_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó), ½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó). ·ë²Ì¤ò(_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó,_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó) :- findall(_ʸ»úÎó,( »ØÄê½ç¤Ë¼è¤ê½Ð¤¹(_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó,_ʸ»úÎó)),_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó). »ØÄê½ç¤Ë¼è¤ê½Ð¤¹(_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó,_ʸ»úÎó) :- member(_ÈÖÌÜ,_¼è¤ê½Ð¤·½ç¤Ê¤é¤Ó), nth1(_ÈÖÌÜ,_ÆþÎÏʸ»úÎó¤Ê¤é¤Ó,_ʸ»úÎó). ½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó) :- ʸ»úÎó¤ò»ØÄꤷ¤¿½çÈ֤˷Ҥ®¹ç¤ï¤»¤Æ(_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó,_ɽ¼¨Ê¸»úÎó), writef('·Ò¤®¹ç¤ï¤»¤¿Ê¸»úÎó¤Ï: %w\n',[_ɽ¼¨Ê¸»úÎó]). ʸ»úÎó¤ò»ØÄꤷ¤¿½çÈ֤˷Ҥ®¹ç¤ï¤»¤Æ(_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó,_ɽ¼¨Ê¸»úÎó) :- atomic_list_concat(_»ØÄꤷ¤¿½çÈÖ¤Îʸ»úÎó¤Ê¤é¤Ó,_ɽ¼¨Ê¸»úÎó). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- °Ê²¼¤ÎÆþÎϤ˼ºÇÔ¤·¤¿¾ì¹ç¤ÏºÆÆþÎϤ¹¤ë, 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢¾ò·ï¤ò¼Â¹Ô¤¹¤ë'(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô),!. °Ê²¼¤ÎÆþÎϤ˼ºÇÔ¤·¤¿¾ì¹ç¤ÏºÆÆþÎϤ¹¤ë :- repeat. 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢¾ò·ï¤ò¼Â¹Ô¤¹¤ë'(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢'(_ºÅ¥ʸ,_¹Ô,_À°¿ô), ¾ò·ï¤ò¼Â¹Ô¤¹¤ë(_¹Ô,_À°¿ô,_¾ò·ï). 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢'(_ºÅ¥ʸ,_¹Ô,_À°¿ô) :- ºÅ¥ʸ¤Îɽ¼¨(_ºÅ¥ʸ), ¹ÔÆþÎÏ(_¹Ô), À°¿ôÆþÎϸ¡ºº(_¹Ô,_À°¿ô). ºÅ¥ʸ¤Îɽ¼¨(_ºÅ¥ʸ) :- writef('%w',[_ºÅ¥ʸ]). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(user_input,Codes), atom_codes(_¹Ô,Codes). À°¿ôÆþÎϸ¡ºº(_¹Ô,_À°¿ô) :- ¹Ô¤ò²òÀϤ·¤ÆÀ°¿ô¤òÆÀ¤ë(_¹Ô,_À°¿ô). À°¿ôÆþÎϸ¡ºº(_¹Ô,_) :- À°¿ô¤òÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¤é¤½¤Î¤³¤È¤òɽ¼¨¤·¤Æfail(_¹Ô). ¹Ô¤ò²òÀϤ·¤ÆÀ°¿ô¤òÆÀ¤ë(_¹Ô,_À°¿ô) :- ¹Ô¤ò²òÀϤ·¤Æ(_¹Ô,_À°¿ô), ¤½¤ì¤¬À°¿ô¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë(_À°¿ô). ¹Ô¤ò²òÀϤ·¤Æ(_¹Ô,_À°¿ô) :- catch(read_term_from_atom(_¹Ô,_À°¿ô,[]),E,fail). ¤½¤ì¤¬À°¿ô¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë(_À°¿ô) :- integer(_À°¿ô). À°¿ô¤òÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¤é¤½¤Î¤³¤È¤òɽ¼¨¤·¤Æfail(_¹Ô) :- writef('ÆþÎϤµ¤ì¤¿¹Ô %w ¤«¤é¤ÏÀ°¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹Ô]), fail. ¾ò·ï¤ò¼Â¹Ô¤¹¤ë(_¹Ô,_À°¿ô,_¾ò·ï) :- call(_¾ò·ï). ¾ò·ï¤ò¼Â¹Ô¤¹¤ë(_¹Ô,_À°¿ô,_¾ò·ï) :- writef('%w ¤«¤éÆÀ¤¿À°¿ô %w ¤Ï¡¢¾ò·ï %w ¤òËþ¤¿¤·¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹Ô,_À°¿ô,_¾ò·ï]), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï 'a-z¤ò50²ó·«¤êÊÖ¤·¡¢¤½¤Îʸ»úÎó¤ÎnÈÖÌܤÎn¤¬ÁÇ¿ô¤«¤Ä¤½¤Î¿ôÃÍʸ»úÎó¤ÎÃæ¤Ë3¤ò´Þ¤Þ¤Ê¤¤¤â¤Î¤Ï¡¢Âçʸ»ú¤ËÊÑ´¹¤¹¤ë'(_ÌÜɸʸ»úÎó) :- '¾®Ê¸»ú¤Îa-z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó¤ÈÂçʸ»ú¤ÎA-Z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó'(_¾®Ê¸»ú¤Ê¤é¤Ó,_Âçʸ»ú¤Ê¤é¤Ó), '¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ¤ÎÊÑ·Á'(_Âçʸ»ú¤Ê¤é¤Ó,Lx), ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤ÆÊ¸»úÎó¤ËÊÑ´¹¤¹¤ë(_¾®Ê¸»ú¤Ê¤é¤Ó,Lx,_ÌÜɸʸ»úÎó). ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤ÆÊ¸»úÎó¤ËÊÑ´¹¤¹¤ë(_¾®Ê¸»ú¤Ê¤é¤Ó,Lx,_ÌÜɸʸ»úÎó) :- ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤Æ¹Ô¤¯(_¾®Ê¸»ú¤Ê¤é¤Ó,Lx), atom_chars(_ÌÜɸʸ»úÎó,Lx). ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤ë([],[]). ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤ë(L1,L2) :- ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤Æ¹Ô¤¯(L1,L2). ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤Æ¹Ô¤¯([A|R1],[B|R2]) :- ÂèÆó°ú¿ô¤¬ÊÑ¿ô¤Î»þ¤ÏÂè°ì°ú¿ô¤Èñ°ì²½(A,B), ÂèÆó°ú¿ô¤Î¤Ê¤é¤Ó¤ÎÊÑ¿ô¤òÂè°ì°ú¿ô¤ÎƱ°ì°ÌÃÖÍ×ÁǤÇËä¤á¤ë(R1,R2). ÂèÆó°ú¿ô¤¬ÊÑ¿ô¤Î»þ¤ÏÂè°ì°ú¿ô¤Èñ°ì²½(A,A) :- !. ÂèÆó°ú¿ô¤¬ÊÑ¿ô¤Î»þ¤ÏÂè°ì°ú¿ô¤Èñ°ì²½(A,B). '¾®Ê¸»ú¤Îa-z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó¤ÈÂçʸ»ú¤ÎA-Z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó'(L1,L2) :- '¾®Ê¸»ú¤Îa-z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó¤È'(L1), 'Âçʸ»ú¤ÎA-Z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó'(L2). '¾®Ê¸»ú¤Îa-z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó¤È'(L1) :- findall(A,( between(1,50,_), sub_atom(abcdefghijklmnopqrstuvwxyz,_,1,_,A)),L1). 'Âçʸ»ú¤ÎA-Z¤ò50²ó·«¤êÊÖ¤·¤¿¤Ê¤é¤Ó'(L2) :- findall(A,( between(1,50,_), sub_atom('ABCDEFGHIJKLMNOPQRSTRVWXYZ',_,1,_,A)),L2). ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë(_Âçʸ»ú¤Ê¤é¤Ó,L) :- findall(N,between(2,1300,N),_äÁ¸õÊä), length(L,1300), 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(_äÁ¸õÊä,_Âçʸ»ú¤Ê¤é¤Ó,L). 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'([],_Âçʸ»ú¤Ê¤é¤Ó,L) :- !. 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'([A|R1],_Âçʸ»ú¤Ê¤é¤Ó,L) :- '¿ô»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þ¤ÏÂçʸ»ú¤òÁÇ¿ô¤Î°ÌÃÖ¤ËÁÞÆþ'(A,_Âçʸ»ú¤Ê¤é¤Ó,L), 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(A,R1,R2,_Âçʸ»ú¤Ê¤é¤Ó,L), 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(R2,_Âçʸ»ú¤Ê¤é¤Ó,L). 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(_,[],[],_Âçʸ»ú¤Ê¤é¤Ó,L) :- !. 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L) :- Í×ÁǤ¬¤Ê¤¯¤Ê¤ë¤Þ¤ÇäÁ¤ò³Ý¤±¤Æ¹Ô¤¯(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L). Í×ÁǤ¬¤Ê¤¯¤Ê¤ë¤Þ¤ÇäÁ¤ò³Ý¤±¤Æ¹Ô¤¯(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L) :- 'A¤¬N¤Ç³ä¤êÀڤ줿¤é¤½¤Î¤Þ¤ÞäÁ¤ò³Ý¤±Â³¤±¤ë'(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L). Í×ÁǤ¬¤Ê¤¯¤Ê¤ë¤Þ¤ÇäÁ¤ò³Ý¤±¤Æ¹Ô¤¯(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L) :- 'A¤¬N¤Ç³ä¤êÀÚ¤ì¤Ê¤«¤Ã¤¿¤éäÁ¤ò³Ý¤±Â³¤±¤ë'(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L). 'A¤¬N¤Ç³ä¤êÀڤ줿¤é¤½¤Î¤Þ¤ÞäÁ¤ò³Ý¤±Â³¤±¤ë'(N,[A|R1],R,_Âçʸ»ú¤Ê¤é¤Ó,L) :- 0 is A mod N, 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(N,R1,R,_Âçʸ»ú¤Ê¤é¤Ó,L),!. 'A¤¬N¤Ç³ä¤êÀÚ¤ì¤Ê¤«¤Ã¤¿¤éäÁ¤ò³Ý¤±Â³¤±¤ë'(N,[A|R1],[A|R2],_Âçʸ»ú¤Ê¤é¤Ó,L) :- 'ÁÇ¿ô¤Ç¤½¤Î¿ôÃÍʸ»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þÂçʸ»ú¤ÇÁÞÆþ¤¹¤ë'(N,R1,R2,_Âçʸ»ú¤Ê¤é¤Ó,L). '¿ô»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þ¤ÏÂçʸ»ú¤òÁÇ¿ô¤Î°ÌÃÖ¤ËÁÞÆþ'(N,_Âçʸ»ú¤Ê¤é¤Ó,L) :- ¿ô»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þ¤Ï(N,_Âçʸ»ú¤Ê¤é¤Ó), Âçʸ»ú¤òÁÇ¿ô¤Î°ÌÃÖ¤ËÁÞÆþ(N,_Âçʸ»ú¤Ê¤é¤Ó,L),!. '¿ô»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þ¤ÏÂçʸ»ú¤òÁÇ¿ô¤Î°ÌÃÖ¤ËÁÞÆþ'(_,_,L). ¿ô»úÎó¤Ë3¤ò´Þ¤Þ¤Ê¤¤»þ¤Ï(N,_Âçʸ»ú¤Ê¤é¤Ó) :- number_chars(N,Chars), \+(member('3',Chars)). Âçʸ»ú¤òÁÇ¿ô¤Î°ÌÃÖ¤ËÁÞÆþ(N,_Âçʸ»ú¤Ê¤é¤Ó,L) :- nth1(N,_Âçʸ»ú¤Ê¤é¤Ó,A), nth1(N,L,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¹Ô¤ÎÉôʬÆó¾èÏÂ(_¹ÔÎó,_²¿¹ÔÌÜ,_Îóµ¯ÅÀ,_Îó½ªÅÀ,_ÉôʬÎó¤ÎÆó¾èÏÂ) :- nth1(_²¿¹ÔÌÜ,_¹ÔÎó,_¹Ô), findsum(_ÃÍ¤ÎÆó¾è,( Ãͤò¼è¤ê½Ð¤·Æó¾è¤¹¤ë(_¹Ô,_Îóµ¯ÅÀ,_Îó½ªÅÀ,_ÃÍ¤ÎÆó¾è)),_ÉôʬÎó¤ÎÆó¾èÏÂ). Ãͤò¼è¤ê½Ð¤·Æó¾è¤¹¤ë(_¹Ô,_Îóµ¯ÅÀ,_Îó½ªÅÀ,_ÃÍ¤ÎÆó¾è) :- between(_Îóµ¯ÅÀ,_Îó½ªÅÀ,_²¿ÎóÌÜ), ²¿ÎóÌܤÎÃÍ¤ÎÆó¾è(_¹Ô,_²¿ÎóÌÜ,_ÃÍ¤ÎÆó¾è). ²¿ÎóÌܤÎÃÍ¤ÎÆó¾è(_¹Ô,_²¿ÎóÌÜ,_ÃÍ¤ÎÆó¾è) :- nth1(_²¿ÎóÌÜ,_¹Ô,_ÃÍ), _ÃÍ¤ÎÆó¾è is _ÃÍ ^ 2. findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï Îó¤ÎÉôʬÆó¾èÏÂ(_¹ÔÎó,_¹Ôµ¯ÅÀ,_¹Ô½ªÅÀ,_²¿ÎóÌÜ,_ÉôʬÎó¤ÎÆó¾èÏÂ) :- findsum(_ÃÍ¤ÎÆó¾è,( Îó¤ÎÉôʬ¤«¤éÃͤò¼è¤ê½Ð¤·Æó¾è¤¹¤ë(_¹ÔÎó,_¹Ôµ¯ÅÀ,_¹Ô½ªÅÀ,_²¿ÎóÌÜ,_ÃÍ¤ÎÆó¾è)),_ÉôʬÎó¤ÎÆó¾èÏÂ). Îó¤ÎÉôʬ¤«¤éÃͤò¼è¤ê½Ð¤·Æó¾è¤¹¤ë(_¹ÔÎó,_¹Ôµ¯ÅÀ,_¹Ô½ªÅÀ,_²¿ÎóÌÜ,_ÃÍ¤ÎÆó¾è) :- between(_¹Ôµ¯ÅÀ,_¹Ô½ªÅÀ,_²¿¹ÔÌÜ), ²¿¹ÔÌܤÎÃÍ¤ÎÆó¾è(_¹ÔÎó,_²¿¹ÔÌÜ,_²¿ÎóÌÜ,_ÃÍ¤ÎÆó¾è),_ÃÍ¤ÎÆó¾è). ²¿¹ÔÌܤÎÃÍ¤ÎÆó¾è(_¹ÔÎó,_²¿¹ÔÌÜ,_²¿ÎóÌÜ,_ÃÍ¤ÎÆó¾è) :- nth1(_²¿¹ÔÌÜ,_¹ÔÎó,_¹Ô), nth1(_²¿ÎóÌÜ,_¹Ô,_ÃÍ), _ÃÍ¤ÎÆó¾è is _ÃÍ ^ 2. findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï Ϣ³Æü(_Á°¤ÎÆü¤Îǯ/_Á°¤ÎÆü¤Î·î/_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ/_¸å¤ÎÆü¤Î·î/_¸å¤ÎÆü¤ÎÆü) :- ·îÆüÀ¸À®(_Á°¤ÎÆü¤Îǯ,_Á°¤ÎÆü¤Î·î,_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ,_¸å¤ÎÆü¤Î·î,_¸å¤ÎÆü¤ÎÆü), ÍâÆü(_Á°¤ÎÆü¤Îǯ,_Á°¤ÎÆü¤Î·î,_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ,_¸å¤ÎÆü¤Î·î,_¸å¤ÎÆü¤ÎÆü), ÆüÉÕÀ®Î©¸¡ºº(_Á°¤ÎÆü¤Îǯ,_Á°¤ÎÆü¤Î·î,_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ,_¸å¤ÎÆü¤Î·î,_¸å¤ÎÆü¤ÎÆü). ÍâÆü(_ǯ,12,31,_ÍâÆü¤Îǯ,1,1) :- succ(_ǯ,_ÍâÆü¤Îǯ),!. ÍâÆü(_ǯ,2,29,_ǯ,3,1) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ÍâÆü(_ǯ,2,28,_ǯ,3,1) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)),!. ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_ÍâÆü¤Î·î,1) :- succ(_·î,_ÍâÆü¤Î·î),·îËöÆü(_ǯ,_·î,_Æü),!. ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_·î,_ÍâÆü¤ÎÆü) :- succ(_Æü,_ÍâÆü¤ÎÆü). ·îËöÆü(_ǯ,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îËöÆü(_ǯ,2,28) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)),!. ·îËöÆü(_ǯ,_·î,30) :- \+(_·î = 2), ¾®¤Î·î(_·î). ·îËöÆü(_ǯ,_·î,31) :- Âç¤Î·î(_·î). ¾®¤Î·î(2). ¾®¤Î·î(4). ¾®¤Î·î(6). ¾®¤Î·î(9). ¾®¤Î·î(11). Âç¤Î·î(1). Âç¤Î·î(3). Âç¤Î·î(5). Âç¤Î·î(7). Âç¤Î·î(8). Âç¤Î·î(10). Âç¤Î·î(12). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. ·îÆüÀ¸À®(_Á°¤ÎÆü¤Îǯ,_Á°¤ÎÆü¤Î·î,_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ,_¸å¤ÎÆü¤Î·î,_¸å¤ÎÆü¤ÎÆü) :- ·îÀ¸À®(_Á°¤ÎÆü¤Î·î), ÆüÀ¸À®(_Á°¤ÎÆü¤ÎÆü), ·îÀ¸À®(_¸å¤ÎÆü¤Î·î), ÆüÀ¸À®(_¸å¤ÎÆü¤ÎÆü). ·îÀ¸À®(_·î) :- between(1,12,_·î). ÆüÀ¸À®(_Æü) :- between(1,31,_Æü). ÆüÉÕÀ®Î©¸¡ºº(_ǯ,2,_Æü,_,2,_) :- 'Æó·î¤ÎÆü¤Ï¤¦¤ë¤¦Ç¯¤¬29°Ê²¼¡¢¤¦¤ë¤¦Ç¯¤Ç¤Ê¤±¤ì¤Ð28°Ê²¼'(_ǯ,_Æü),!. ÆüÉÕÀ®Î©¸¡ºº(_ǯ,2,_Æü,_ǯ,3,_) :- 'Æó·î¤ÎÆü¤Ï¤¦¤ë¤¦Ç¯¤¬29°Ê²¼¡¢¤¦¤ë¤¦Ç¯¤Ç¤Ê¤±¤ì¤Ð28°Ê²¼'(_ǯ,_Æü),!. ÆüÉÕÀ®Î©¸¡ºº(_ǯ,_·î,_Æü,_,_,_) :- 'Æó·î°Ê³°¤ÎÆü¤Ï·î¤ÏÂç¤Î·î¤¬31°Ê²¼¡¢¾®¤Î·î¤Ï30°Ê²¼'(_·î,_Æü). 'Æó·î°Ê³°¤ÎÆü¤Ï·î¤ÏÂç¤Î·î¤¬31°Ê²¼¡¢¾®¤Î·î¤Ï30°Ê²¼'(_·î,_Æü) :- Âç¤Î·î(_·î), _Æü =< 31. 'Æó·î°Ê³°¤ÎÆü¤Ï·î¤ÏÂç¤Î·î¤¬31°Ê²¼¡¢¾®¤Î·î¤Ï30°Ê²¼'(_·î,_Æü) :- \+(_·î = 2), ¾®¤Î·î(_·î), _Æü =< 30. 'Æó·î¤ÎÆü¤Ï¤¦¤ë¤¦Ç¯¤¬29°Ê²¼¡¢¤¦¤ë¤¦Ç¯¤Ç¤Ê¤±¤ì¤Ð28°Ê²¼'(_ǯ,_Æü) :- ¤¦¤ë¤¦Ç¯(_ǯ), _Æü =< 29. 'Æó·î¤ÎÆü¤Ï¤¦¤ë¤¦Ç¯¤¬29°Ê²¼¡¢¤¦¤ë¤¦Ç¯¤Ç¤Ê¤±¤ì¤Ð28°Ê²¼'(_ǯ,_Æü) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)), _Æü =< 28. % °Ê²¼¤Î¥µ¥¤¥È¤Ï Ϣ³Æü(_Á°¤ÎÆü¤Îǯ/_Á°¤ÎÆü¤Î·î/_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ/_¸å¤ÎÆü¤Î·î/_¸å¤ÎÆü¤ÎÆü) :- ·îÀ¸À®(_Á°¤ÎÆü¤Î·î), ÆüÀ¸À®(_Á°¤ÎÆü¤ÎÆü), ·îÀ¸À®(_¸å¤ÎÆü¤Î·î), ÆüÀ¸À®(_¸å¤ÎÆü¤ÎÆü), ÍâÆü(_Á°¤ÎÆü¤Îǯ,_Á°¤ÎÆü¤Î·î,_Á°¤ÎÆü¤ÎÆü,_¸å¤ÎÆü¤Îǯ,_¸å¤ÎÆü¤Î·î,_¸å¤ÎÆü¤ÎÆü), ÆüÉÕÀ®Î©¸¡ºº(_Á°¤ÎÆü¤Îǯ,_Á°¤ÎÆü¤Î·î,_Á°¤ÎÆü¤ÎÆü). ÍâÆü(_ǯ,12,31,_ÍâÆü¤Îǯ,1,1) :- succ(_ǯ,_ÍâÆü¤Îǯ),!. ÍâÆü(_ǯ,2,29,_ǯ,3,1) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ÍâÆü(_ǯ,2,28,_ǯ,3,1) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)),!. ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_ÍâÆü¤Î·î,1) :- succ(_·î,_ÍâÆü¤Î·î),·îËöÆü(_ǯ,_·î,_Æü),!. ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_·î,_ÍâÆü¤ÎÆü) :- succ(_Æü,_ÍâÆü¤ÎÆü). ·îËöÆü(_ǯ,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îËöÆü(_ǯ,2,28) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)),!. ·îËöÆü(_ǯ,_·î,30) :- ¾®¤Î·î(_·î). ·îËöÆü(_ǯ,_·î,31) :- Âç¤Î·î(_·î). ¾®¤Î·î(2). ¾®¤Î·î(4). ¾®¤Î·î(6). ¾®¤Î·î(9). ¾®¤Î·î(11). Âç¤Î·î(1). Âç¤Î·î(3). Âç¤Î·î(5). Âç¤Î·î(7). Âç¤Î·î(8). Âç¤Î·î(10). Âç¤Î·î(12). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. ·îÀ¸À®(_·î) :- between(1,12,_·î). ÆüÀ¸À®(_Æü) :- between(1,31,_Æü). ÆüÉÕÀ®Î©¸¡ºº(_ǯ,2,_Æü) :- ¤¦¤ë¤¦Ç¯(_ǯ), _Æü =< 29,!. ÆüÉÕÀ®Î©¸¡ºº(_ǯ,2,_Æü) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)), _Æü =< 28,!. ÆüÉÕÀ®Î©¸¡ºº(_ǯ,_·î,_Æü) :- Âç¤Î·î(_·î), _Æü =< 31. ÆüÉÕÀ®Î©¸¡ºº(_ǯ,_·î,_Æü) :- \+(_·î=2), ¾®¤Î·î(_·î), _Æü =< 30. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1308749241/887 # # (1)£ã¸À¸ì(2)ÌäÂê¡§¥Ù¡¼¥¹¤ò´ð¤Ë¥Ó¥Ã¥È¤òº¸¤Ë²óž¤µ¤»¤ëleft_rottate´Ø¿ô¤òÄɲä·¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤è¡£ # ¼Â¹Ô·ë²Ì¡§ # ¿ôÃͣ棰£æ£°¤Î¥Ó¥Ã¥È¾õÂÖ # 1111000011110000 # 3¥Ó¥Ã¥È²óž¤µ¤»¤Þ¤·¤¿ # ¿ôÃÍ8787¤Î¥Ó¥Ã¥È¾õÂÖ # 1000011110000111 # ¥Ù¡¼¥¹ # #include <stdio.h> # void print_bit(unsigned short int x); //¥×¥í¥È¥¿¥¤¥×Àë¸À # int main(){ # unsigned short int usi; # usi = 0xf0f0 ; # print_bit(usi); # return 0; //¥·¥¹¥Æ¥à¤ËÃÍ£°¤òÊÖ¤¹ # } # void print_bit(unsigned short int x){ # int length , i , mask ; # mask = 1; # length = sizeof(x) *8; # mask =mask << (length -1); # printf("¿ôÃÍ%x¤Î¥Ó¥Ã¥È¾õÂÖ\n",x); # for(i = 1;i<= length ; i++){ # if(x & mask){ # printf("1"); # }else{ # printf("0"); # } # mask =mask >> 1; # } # printf("\n"); # } # # '2¿Ê¤Ê¤é¤Ó¤Îº¸²óž'(_¥Ù¡¼¥¹·å¿ô,_¿ô,_N¥Ó¥Ã¥È²óž) :- '¥Ù¡¼¥¹·å¿ô¤ò³ÎÊݤ·¤Æ¿ô2¿Ê¿ôÊÑ´¹'(_¥Ù¡¼¥¹·å¿ô,_¿ô,_2¿Ê¿ô¤Ê¤é¤Ó), '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_¥Ù¡¼¥¹·å¿ô,_N¥Ó¥Ã¥È²óž,_2¿Ê¿ô¤Ê¤é¤Ó),!. '¥Ù¡¼¥¹·å¿ô¤ò³ÎÊݤ·¤Æ¿ô2¿Ê¿ôÊÑ´¹'(_¥Ù¡¼¥¹·å¿ô,_¿ô,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó) :- ¿ô2¿Ê¿ôÊÑ´¹(_¿ô,_2¿Ê¿ô¤Ê¤é¤Ó), ¥Ù¡¼¥¹·å¿ôÉÕ¤­Æó¿Ê¿ô(_¥Ù¡¼¥¹·å¿ô,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹'(_¿ô,_2¿Ê¿ô¤Ê¤é¤Ó) :- '¿ô2¿Ê¿ôÊÑ´¹'(_¿ô,[],_2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹'(0,_2¿Ê¿ô¤Ê¤é¤Ó,_2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹'(N,L,_2¿Ê¿ô¤Ê¤é¤Ó) :- '¿ô2¿Ê¿ôÊÑ´¹¤·¤Æ¹Ô¤¯'(N,L,_2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹¤·¤Æ¹Ô¤¯'(N,L,_2¿Ê¿ô¤Ê¤é¤Ó) :- M is N mod 2, N_1 is N // 2, '¿ô2¿Ê¿ôÊÑ´¹'(N_1,[M|L],_2¿Ê¿ô¤Ê¤é¤Ó). '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_¥Ù¡¼¥¹·å¿ô,_N¥Ó¥Ã¥È²óž,_2¿Ê¿ô¤Ê¤é¤Ó) :- '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢'(_N¥Ó¥Ã¥È²óž,_2¿Ê¿ô¤Ê¤é¤Ó,L,_2¿Êɽ¼¨), ¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë(_N¥Ó¥Ã¥È²óž,L,_2¿Êɽ¼¨). '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢'(_N¥Ó¥Ã¥È²óž,_¥Ù¡¼¥¹·å¿ô2¿Ê¿ô¤Ê¤é¤Ó,L,_2¿Êɽ¼¨) :- ¤Ê¤é¤Ó¤Îº¸²óž(1,_N¥Ó¥Ã¥È²óž,_¥Ù¡¼¥¹·å¿ô2¿Ê¿ô¤Ê¤é¤Ó,L), atomic_list_concat(L,_2¿Êɽ¼¨). ¥Ù¡¼¥¹·å¿ôÉÕ¤­Æó¿Ê¿ô(_¥Ù¡¼¥¹·å¿ô,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó) :- length(_2¿Ê¿ô¤Ê¤é¤Ó,_·å), _0¤òÉղ乤ë¤Ù¤­¿ô is _¥Ù¡¼¥¹·å¿ô - _·å, ƬÉô¤Ë0¤òÉղ乤ë(_0¤òÉղ乤ë¤Ù¤­¿ô,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). ƬÉô¤Ë0¤òÉղ乤ë(0,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). ƬÉô¤Ë0¤òÉղ乤ë(N,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó) :- N \== 0, 'N·å¤Î0¤Ê¤é¤Ó'(N,_N·å¤Î0¤Ê¤é¤Ó), append(_N·å¤Î0¤Ê¤é¤Ó,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). 'N·å¤Î0¤Ê¤é¤Ó'(N,_N·å¤Î0¤Ê¤é¤Ó) :- length(_N·å¤Î0¤Ê¤é¤Ó,N), all(_N·å¤Î0¤Ê¤é¤Ó,0). all([],_). all([N|R],N) :- all(R,N). ¤Ê¤é¤Ó¤Îº¸²óž(N,N,[A|R],L) :- append(R,[A],L),!. ¤Ê¤é¤Ó¤Îº¸²óž(M,N,[A|R],L) :- append(R,[A],L1), M2 is M + 1, ¤Ê¤é¤Ó¤Îº¸²óž(M2,N,L1,L). ¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë(_N¥Ó¥Ã¥È²óž,L,_2¿Êɽ¼¨) :- writef('%w¥Ó¥Ã¥È²óž¤·¤Þ¤·¤¿\n¿ôÃÍ ',[_N¥Ó¥Ã¥È²óž]), '16¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(L), '2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_2¿Êɽ¼¨). '16¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_2¿Ê¤Ê¤é¤Ó) :- '·å¿ô¤¬4¤ÎÇÜ¿ô¤Ë¤Ê¤ë¤è¤¦¤ËƬÉô¤òÀ°·Á'(_2¿Ê¤Ê¤é¤Ó,_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó), '2¿Ê¿ô16¿Ê¿ôɽ¼¨'(_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó). '·å¿ô¤¬4¤ÎÇÜ¿ô¤Ë¤Ê¤ë¤è¤¦¤ËƬÉô¤òÀ°·Á'(_2¿Ê¤Ê¤é¤Ó,_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó) :- length(_2¿Ê¤Ê¤é¤Ó,_·å), _;¤ê is _·å mod 4, 'ƬÉô¤Ë0¤òÉղ乤ë'(_;¤ê,_2¿Ê¤Ê¤é¤Ó,_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó). 'ƬÉô¤Ë0¤òÉղ乤ë'(0,L,L). 'ƬÉô¤Ë0¤òÉղ乤ë'(1,L,[0,0,0|L]). 'ƬÉô¤Ë0¤òÉղ乤ë'(2,L,[0,0|L]). 'ƬÉô¤Ë0¤òÉղ乤ë'(3,L,[0|L]). '2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_2¿Êɽ¼¨) :- write('¤Î¥Ó¥Ã¥È¾õÂÖ\n'), writef('%w\n',[_2¿Êɽ¼¨]). '2¿Ê¿ô16¿Ê¿ôɽ¼¨'([]) :- write('\n'),!. '2¿Ê¿ô16¿Ê¿ôɽ¼¨'([_b1,_b2,_b3,_b4|R]) :- '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([_b1,_b2,_b3,_b4],_16¿Êɽµ­), writef('%w',[_16¿Êɽµ­]), '2¿Ê¿ô16¿Ê¿ôɽ¼¨'(R). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,0,0],'0'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,0,1],'1'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,1,0],'2'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,1,1],'3'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,0,0],'4'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,0,1],'5'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,1,0],'6'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,1,1],'7'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,0,0],'8'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,0,1],'9'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,1,0],'a'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,1,1],'b'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,0,0],'c'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,0,1],'d'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,1,0],'e'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,1,1],'f'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1308749241/887 # # (1)£ã¸À¸ì(2)ÌäÂê¡§¥Ù¡¼¥¹¤ò´ð¤Ë¥Ó¥Ã¥È¤òº¸¤Ë²óž¤µ¤»¤ëleft_rottate´Ø¿ô¤òÄɲä·¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤è¡£ # ¼Â¹Ô·ë²Ì¡§ # ¿ôÃͣ棰£æ£°¤Î¥Ó¥Ã¥È¾õÂÖ # 1111000011110000 # 3¥Ó¥Ã¥È²óž¤µ¤»¤Þ¤·¤¿ # ¿ôÃÍ8787¤Î¥Ó¥Ã¥È¾õÂÖ # 1000011110000111 # ¥Ù¡¼¥¹ # #include <stdio.h> # void print_bit(unsigned short int x); //¥×¥í¥È¥¿¥¤¥×Àë¸À # int main(){ # unsigned short int usi; # usi = 0xf0f0 ; # print_bit(usi); # return 0; //¥·¥¹¥Æ¥à¤ËÃÍ£°¤òÊÖ¤¹ # } # void print_bit(unsigned short int x){ # int length , i , mask ; # mask = 1; # length = sizeof(x) *8; # mask =mask << (length -1); # printf("¿ôÃÍ%x¤Î¥Ó¥Ã¥È¾õÂÖ\n",x); # for(i = 1;i<= length ; i++){ # if(x & mask){ # printf("1"); # }else{ # printf("0"); # } # mask =mask >> 1; # } # printf("\n"); # } # # '2¿Ê¤Ê¤é¤Ó¤Îº¸²óž'(_¥Ù¡¼¥¹·å¿ô,_¿ô,_N¥Ó¥Ã¥È²óž) :- '¥Ù¡¼¥¹·å¿ô¤ò³ÎÊݤ·¤Æ¿ô2¿Ê¿ôÊÑ´¹'(_¥Ù¡¼¥¹·å¿ô,_¿ô,_2¿Ê¿ô¤Ê¤é¤Ó), '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_¥Ù¡¼¥¹·å¿ô,_N¥Ó¥Ã¥È²óž,_2¿Ê¿ô¤Ê¤é¤Ó),!. '¥Ù¡¼¥¹·å¿ô¤ò³ÎÊݤ·¤Æ¿ô2¿Ê¿ôÊÑ´¹'(_¥Ù¡¼¥¹·å¿ô,_¿ô,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó) :- ¿ô2¿Ê¿ôÊÑ´¹(_¿ô,_2¿Ê¿ô¤Ê¤é¤Ó), ¥Ù¡¼¥¹·å¿ôÉÕ¤­Æó¿Ê¿ô(_¥Ù¡¼¥¹·å¿ô,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹'(_¿ô,_2¿Ê¿ô¤Ê¤é¤Ó) :- '¿ô2¿Ê¿ôÊÑ´¹'(_¿ô,[],_2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹'(0,_2¿Ê¿ô¤Ê¤é¤Ó,_2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹'(N,L,_2¿Ê¿ô¤Ê¤é¤Ó) :- '¿ô2¿Ê¿ôÊÑ´¹¤·¤Æ¹Ô¤¯'(N,L,_2¿Ê¿ô¤Ê¤é¤Ó). '¿ô2¿Ê¿ôÊÑ´¹¤·¤Æ¹Ô¤¯'(N,L,_2¿Ê¿ô¤Ê¤é¤Ó) :- M is N mod 2, N_1 is N // 2, '¿ô2¿Ê¿ôÊÑ´¹'(N_1,[M|L],_2¿Ê¿ô¤Ê¤é¤Ó). '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_¥Ù¡¼¥¹·å¿ô,_N¥Ó¥Ã¥È²óž,_2¿Ê¿ô¤Ê¤é¤Ó) :- '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢'(_N¥Ó¥Ã¥È²óž,_2¿Ê¿ô¤Ê¤é¤Ó,L,_2¿Êɽ¼¨), ¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë(_N¥Ó¥Ã¥È²óž,L,_2¿Êɽ¼¨). '2¿Ê¿ô¤ò_N¥Ó¥Ã¥Èº¸²óž¤·¤Æ¡¢'(_N¥Ó¥Ã¥È²óž,_¥Ù¡¼¥¹·å¿ô2¿Ê¿ô¤Ê¤é¤Ó,L,_2¿Êɽ¼¨) :- ¤Ê¤é¤Ó¤Îº¸²óž(1,_N¥Ó¥Ã¥È²óž,_¥Ù¡¼¥¹·å¿ô2¿Ê¿ô¤Ê¤é¤Ó,L), atomic_list_concat(L,_2¿Êɽ¼¨). ¥Ù¡¼¥¹·å¿ôÉÕ¤­Æó¿Ê¿ô(_¥Ù¡¼¥¹·å¿ô,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó) :- length(_2¿Ê¿ô¤Ê¤é¤Ó,_·å), _0¤òÉղ乤ë¤Ù¤­¿ô is _¥Ù¡¼¥¹·å¿ô - _·å, ƬÉô¤Ë0¤òÉղ乤ë(_0¤òÉղ乤ë¤Ù¤­¿ô,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). ƬÉô¤Ë0¤òÉղ乤ë(0,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). ƬÉô¤Ë0¤òÉղ乤ë(N,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó) :- N \== 0, 'N·å¤Î0¤Ê¤é¤Ó'(N,_N·å¤Î0¤Ê¤é¤Ó), append(_N·å¤Î0¤Ê¤é¤Ó,_2¿Ê¿ô¤Ê¤é¤Ó,_¥Ù¡¼¥¹·å¿ô¤Çµ¬Äꤵ¤ì¤¿2¿Ê¿ô¤Ê¤é¤Ó). 'N·å¤Î0¤Ê¤é¤Ó'(N,_N·å¤Î0¤Ê¤é¤Ó) :- length(_N·å¤Î0¤Ê¤é¤Ó,N), all(_N·å¤Î0¤Ê¤é¤Ó,0). all([],_). all([N|R],N) :- all(R,N). ¤Ê¤é¤Ó¤Îº¸²óž(N,N,[A|R],L) :- append(R,[A],L),!. ¤Ê¤é¤Ó¤Îº¸²óž(M,N,[A|R],L) :- append(R,[A],L1), M2 is M + 1, ¤Ê¤é¤Ó¤Îº¸²óž(M2,N,L1,L). ¤½¤ì¤ò16¿Ê¿ô¤È2¿Ê¿ô¤Çɽ¼¨¤¹¤ë(_N¥Ó¥Ã¥È²óž,L,_2¿Êɽ¼¨) :- writef('%w¥Ó¥Ã¥È²óž¤·¤Þ¤·¤¿\n¿ôÃÍ ',[_N¥Ó¥Ã¥È²óž]), '16¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(L), '2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_2¿Êɽ¼¨). '16¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_2¿Ê¤Ê¤é¤Ó) :- '·å¿ô¤¬4¤ÎÇÜ¿ô¤Ë¤Ê¤ë¤è¤¦¤ËƬÉô¤òÀ°·Á'(_2¿Ê¤Ê¤é¤Ó,_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó), '2¿Ê¿ô16¿Ê¿ôɽ¼¨'(_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó). '·å¿ô¤¬4¤ÎÇÜ¿ô¤Ë¤Ê¤ë¤è¤¦¤ËƬÉô¤òÀ°·Á'(_2¿Ê¤Ê¤é¤Ó,_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó) :- length(_2¿Ê¤Ê¤é¤Ó,_·å), _;¤ê is _·å mod 4, 'ƬÉô¤Ë0¤òÉղ乤ë'(_;¤ê,_2¿Ê¤Ê¤é¤Ó,_À°·Á¤µ¤ì¤¿2¿Ê¤Ê¤é¤Ó). 'ƬÉô¤Ë0¤òÉղ乤ë'(0,L,L). 'ƬÉô¤Ë0¤òÉղ乤ë'(1,L,[0,0,0|L]). 'ƬÉô¤Ë0¤òÉղ乤ë'(2,L,[0,0|L]). 'ƬÉô¤Ë0¤òÉղ乤ë'(3,L,[0|L]). '2¿Ê¿ô¤Çɽ¼¨¤¹¤ë'(_2¿Êɽ¼¨) :- write('¤Î¥Ó¥Ã¥È¾õÂÖ\n'), writef('%w\n',[_2¿Êɽ¼¨]). '2¿Ê¿ô16¿Ê¿ôɽ¼¨'([]) :- write('\n'),!. '2¿Ê¿ô16¿Ê¿ôɽ¼¨'([_b1,_b2,_b3,_b4|R]) :- '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([_b1,_b2,_b3,_b4],_16¿Êɽµ­), writef('%w',[_16¿Êɽµ­]), '2¿Ê¿ô16¿Ê¿ôɽ¼¨'(R). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,0,0],'0'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,0,1],'1'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,1,0],'2'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,0,1,1],'3'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,0,0],'4'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,0,1],'5'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,1,0],'6'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([0,1,1,1],'7'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,0,0],'8'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,0,1],'9'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,1,0],'a'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,0,1,1],'b'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,0,0],'c'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,0,1],'d'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,1,0],'e'). '4¥Ó¥Ã¥È¿ô¤Ê¤é¤Ó16¿Êɽµ­'([1,1,1,1],'f'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 145ÂåÌÜ #749 # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§­¡¼«Í³¤Ëʸ»úÎó¤òÄêµÁ¤·¤Æ¡¢¤½¤Îʸ»úÎó¤ÎnÈÖÌܤÎʸ»ú¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì¡£ # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡­¢¼«Í³¤Ëʸ»úÎó¤òÄêµÁ¤·¤Æ¡¢nÈÖÌܰʹߤÎʸ»ú¤ò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì¡£ # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡­£¼«Í³¤Ëʸ»úÎó¤òÄêµÁ¤·¤Æ¡¢nÈÖÌܤ«¤éoÈÖÌÜ(n<=o)¤Îʸ»ú¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì¡£ # '¼«Í³¤Ëʸ»úÎó¤òÄêµÁ¤·¤Æ¡¢¤½¤Îʸ»úÎó¤ÎnÈÖÌܤÎʸ»ú¤òɽ¼¨¤¹¤ë'(_ʸ»úÎó,_nÈÖÌÜ) :- succ(_ÊѰÌ,_nÈÖÌÜ), sub_atom(_ʸ»úÎó,_ÊѰÌ,1,_,_ʸ»ú), writef('%w',[_ʸ»ú]). '¼«Í³¤Ëʸ»úÎó¤òÄêµÁ¤·¤Æ¡¢nÈÖÌܰʹߤÎʸ»ú¤ò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë'(_ʸ»úÎó,_nÈÖÌÜ) :- succ(_ÊѰÌ,_nÈÖÌÜ), sub_atom(_ʸ»úÎó,_ÊѰÌ,_,0,_Éûʸ»úÎó), writef('%w',[_Éûʸ»úÎó]). '¼«Í³¤Ëʸ»úÎó¤òÄêµÁ¤·¤Æ¡¢nÈÖÌܤ«¤éoÈÖÌÜ(n<=o)¤Îʸ»ú¤òɽ¼¨¤¹¤ë'(_ʸ»úÎó,_nÈÖÌÜ,_oÈÖÌÜ) :- 'nÈÖÌܤ«¤éoÈÖÌÜ(n<=o)¤Îʸ»ú¤ò'(_ʸ»úÎó,_nÈÖÌÜ,_oÈÖÌÜ,_ʸ»ú¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó). 'nÈÖÌܤ«¤éoÈÖÌÜ(n<=o)¤Îʸ»ú¤ò'(_ʸ»úÎó,_nÈÖÌÜ,_oÈÖÌÜ,_ʸ»ú¤Ê¤é¤Ó) :- findall(_ʸ»ú,( 'ÊѰÌM¤Îʸ»ú¤ò¼è¤ê½Ð¤¹'(_ʸ»úÎó,_nÈÖÌÜ,_oÈÖÌÜ,_ÊѰÌM,_ʸ»ú)),_ʸ»ú¤Ê¤é¤Ó). 'ÊѰÌM¤Îʸ»ú¤ò¼è¤ê½Ð¤¹'(_ʸ»úÎó,_nÈÖÌÜ,_oÈÖÌÜ,_ÊѰÌ_M,_ʸ»ú) :- ÊѰ̤ËÊÑ´¹(_nÈÖÌÜ,_oÈÖÌÜ,_ÊѰÌ_nÈÖÌÜ,_ÊѰÌ_oÈÖÌÜ), between(_ÊѰÌ_nÈÖÌÜ,_ÊѰÌ_oÈÖÌÜ,_ÊѰÌ_M), sub_atom(_ʸ»úÎó,_ÊѰÌ_M,1,_,_ʸ»ú). ÊѰ̤ËÊÑ´¹(_nÈÖÌÜ,_oÈÖÌÜ,_ÊѰÌ_nÈÖÌÜ,_ÊѰÌ_oÈÖÌÜ) :- succ(_ÊѰÌ_nÈÖÌÜ,_nÈÖÌÜ), succ(_ÊѰÌ_oÈÖÌÜ,_oÈÖÌÜ). ɽ¼¨¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó) :- atomic_list_concat(_ʸ»ú¤Ê¤é¤Ó,_Éûʸ»úÎó), writef('%w',[_Éûʸ»úÎó]). /* for(S,S,S) :- !. for(S,S,E). for(S,N,E) :- succ(S,E,S1), for(S1,N,E). succ(S,E,S1) :- S =< E, succ(S,S1),!. succ(S,E,S1) :- S > E, succ(S1,S). */ % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¶å¶åɽ([ [1,2,3,3,4,6,7,8,9], [2,4,6,8,10,12,14,16,18], [3,6,9,12,15,18,21,24,27], [4,8,12,16,20,24,28,32,36], [5,10,15,20,25,30,35,40,45], [6,12,18,24,30,36,42,48,54], [7,14,21,28,35,42,49,56,63], [8,16,24,32,40,48,56,64,72], [9,18,27,36,45,54,63,72,81]]). '¡Ö21¡à7 ¤Î·×»»¤Ï¡¢¶å¶åɽ¤ò¤É¤Î¤è¤¦¤Ëé¤ì¤ÐÅú¤¨¤¬¤¨¤é¤ì¤Þ¤¹¤«?¡×¤Ê¤é¤ÐÁ´Á³ÌäÂ꤬¤Ê¤¤¤è¤¦¤Ë»×¤¤¤Þ¤¹¤¬¡£'(_Åú¤¨,_ÃÊ) :- ¶å¶åɽ(_¶å¶åɽ), ɽ¤ÎÃæ¤«¤é21¤òÁܤ¹(_¶å¶åɽ,_ÃÊ,_Îó,_Åú¤¨). ɽ¤ÎÃæ¤«¤é21¤òÁܤ¹(_¶å¶åɽ,_ÃÊ,_Îó,_Åú¤¨) :- ÃʤÈÎó¤Î¸õÊä¤òµó¤²¤ë(_ÃÊ,_Îó), '21¤òÆÀ¤ë'(_¶å¶åɽ,_ÃÊ,_Îó), Åú¤¨¤Ï(_ÃÊ,_Îó,_Åú¤¨). ÃʤÈÎó¤Î¸õÊä¤òµó¤²¤ë(_ÃÊ,_Îó) :- between(1,9,_ÃÊ), between(1,9,_Îó). '21¤òÆÀ¤ë'(_¶å¶åɽ,_ÃÊ,_Îó) :- nth1(_ÃÊ,_¶å¶åɽ,_¶å¶åɽ¤Î¹Ô), nth1(_Îó,_¶å¶åɽ¤Î¹Ô,21). Åú¤¨¤Ï(7,_Îó,_Îó) :- !. Åú¤¨¤Ï(_ÃÊ,7,_ÃÊ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¶å¶åɽ([ [1,2,3,3,4,6,7,8,9], [2,4,6,8,10,12,14,16,18], [3,6,9,12,15,18,21,24,27], [4,8,12,16,20,24,28,32,36], [5,10,15,20,25,30,35,40,45], [6,12,18,24,30,36,42,48,54], [7,14,21,28,35,42,49,56,63], [8,16,24,32,40,48,56,64,72], [9,18,27,36,45,54,63,72,81]]). '¡Ö21¡à7 ¤Î·×»»¤Ï¡¢¶å¶åɽ¤ò¤É¤Î¤è¤¦¤Ëé¤ì¤ÐÅú¤¨¤¬¤¨¤é¤ì¤Þ¤¹¤«?¡×¤Ê¤é¤ÐÁ´Á³ÌäÂ꤬¤Ê¤¤¤è¤¦¤Ë»×¤¤¤Þ¤¹¤¬¡£'(_Åú¤¨,_ÃÊ) :- ¶å¶åɽ(_¶å¶åɽ), ɽ¤ÎÃæ¤«¤é21¤òÁܤ¹(_¶å¶åɽ,_ÃÊ,_Îó,_Åú¤¨). ɽ¤ÎÃæ¤«¤é21¤òÁܤ¹(_¶å¶åɽ,_ÃÊ,_Îó,_Åú¤¨) :- ÃʤÈÎó¤Î¸õÊä¤òµó¤²¤ë(_ÃÊ,_Îó), '21¤òÆÀ¤ë'(_¶å¶åɽ,_ÃÊ,_Îó), Åú¤¨¤Ï(_ÃÊ,_Îó,_Åú¤¨). ÃʤÈÎó¤Î¸õÊä¤òµó¤²¤ë(_ÃÊ,_Îó) :- between(1,9,_ÃÊ), between(1,9,_Îó). '21¤òÆÀ¤ë'(_¶å¶åɽ,_ÃÊ,_Îó) :- nth1(_ÃÊ,_¶å¶åɽ,_¶å¶åɽ¤Î¹Ô), nth1(_Îó,_¶å¶åɽ¤Î¹Ô,21). Åú¤¨¤Ï(7,_Îó,_Îó) :- !. Åú¤¨¤Ï(_ÃÊ,7,_ÃÊ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 158ÂåÌÜ #880 # [1]¼ø¶Èñ¸µ¡§C¸À¸ì # [2]ÌäÂêʸ # ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ¤Î¤è¤¦¤ÊÇúÃÆ¥²¡¼¥à¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£ # 1. ¥Þ¥¹Ìܤò8¡ß 8¤ËÀßÄꤹ¤ë¡£ # 2. ÇúÃÆ¤ò10¸Ä¤Ë¤·¡¢Æ±¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÇÛÃÖ¤¹¤ë¡Ê»î¹Ô¤ÎºÇÂç²ó¿ô¤Ï54²ó¤È¤Ê¤ë¡Ë¡£ # 3.¤Þ¤À»ØÄꤷ¤Æ¤¤¤Ê¤¤¥Þ¥¹ÌܤˤϿô»ú¤Î0¤ÎÂå¤ï¤ê¤Ëµ­¹æ'-'¤òɽ¼¨¤¹¤ë¡£ # 4.ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò # ɽ¼¨¤¹¤ë¡ÊºÇ¾®¤Ç0¡¢ºÇÂç¤Ç8¡Ë¡£ # 5. ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¥Þ¥¹Ìܤò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Þ¥¹Ìܤâ´Þ¤á¤ÆÇúÃÆ¤ÎÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú # ¤Î'x'¤òɽ¼¨¤·¡¢"Bomb!"¤Èɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£ # # [3]´Ä¶­ # [3.1]windows7 # [3.2]gcc # [3.3]C/C++ # [4]7·î20Æü # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ :- È×Ì̤ÎÀßÄê¤ÈÇúÃÆ¤ÎÇÛÃÖ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). È×Ì̤ÎÀßÄê¤ÈÇúÃÆ¤ÎÇÛÃÖ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- '¥Þ¥¹Ìܤò8¡ß 8¤ËÀßÄꤹ¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), 'ÇúÃÆ¤ò10¸Ä¤Ë¤·¡¢Æ±¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÇÛÃÖ¤¹¤ë¡Ê»î¹Ô¤ÎºÇÂç²ó¿ô¤Ï54²ó¤È¤Ê¤ë¡Ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÊÑ¿ô¤¬64¸Ä¤Ë¤Ê¤Ã¤¿¤éÄ©Àï¼Ô¤Î¾¡¤Á¤Ç¤¢¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),!. ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ¤ò·Ñ³¤¹¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). ÊÑ¿ô¤¬64¸Ä¤Ë¤Ê¤Ã¤¿¤éÄ©Àï¼Ô¤Î¾¡¤Á¤Ç¤¢¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÅÙ¿ô((member(A,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),atom(A)),64), write('¤¢¤Ê¤¿¤Î¾¡¤Á¤Ç¤¹¡£\n'). ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ¤ò·Ñ³¤¹¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤ò±£¤·¤ÆÈ×ÌÌɽ¼¨¸å¡¢¥Þ¥¹ÌܤòÁªÂò¤¹¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_¹Ô°ÌÃÖ,_Îó°ÌÃÖ), ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). 'ÇúÃÆ¤ò±£¤·¤ÆÈ×ÌÌɽ¼¨¸å¡¢¥Þ¥¹ÌܤòÁªÂò¤¹¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_¹Ô°ÌÃÖ,_Îó°ÌÃÖ) :- ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), ¥Þ¥¹ÌܤòÁªÂò¤µ¤»¤ë(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ). ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),!. ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¥Þ¥¹Ìܤò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Þ¥¹Ìܤâ´Þ¤á¤ÆÇúÃÆ¤ÎÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Î x ¤òɽ¼¨¤·¡¢Bomb!"¤Èɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), '¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ʿ󲽤·¤¿°ÌÃÖ¤ËÊÑ´¹(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1), nth1(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,0). '¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÇúÃÆ¤Ï¼þ°Ï¤Ë¤¤¤¯¤Ä¤¢¤ë¤«(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_¸Ä¿ô), writef('¼þ°Ï¤ËÇúÃÆ¤Ï %w ¸Ä¤¢¤ê¤Þ¤¹\n',[_¸Ä¿ô]),!. 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¥Þ¥¹Ìܤò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Þ¥¹Ìܤâ´Þ¤á¤ÆÇúÃÆ¤ÎÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Î x ¤òɽ¼¨¤·¡¢Bomb!"¤Èɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÆÀÅÀ¤Ï(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_ÆÀÅÀ), ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), writef('\n Bomb! \n\n\n ¤¢¤Ê¤¿¤ÎÆÀÅÀ¤Ï %t ¤Ç¤¹\n',[_ÆÀÅÀ]). ÆÀÅÀ¤Ï(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_ÆÀÅÀ) :- ÅÙ¿ô((member(A,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),\+(var(A)),A==0),_ÆÀÅÀ). ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·([]) :- !. ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·(L) :- ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·¤Æ¹Ô¤¯(L). ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·¤Æ¹Ô¤¯([_1,_2,_3,_4,_5,_6,_7,_8|R]) :- ÇúÃÆ¤ò´Þ¤à¥Þ¥¹Ìܤò¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8]), ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·(R). ÇúÃÆ¤ò´Þ¤à¥Þ¥¹Ìܤò¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8]) :- ¥Þ¥¹Ìܤò([_1,_2,_3,_4,_5,_6,_7,_8],A,R), ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R). ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R) :- ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(A,_ɽ¼¨Ê¸»ú), ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨(R,_ɽ¼¨Ê¸»ú). ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨(R,_ɽ¼¨Ê¸»ú) :- writef('%w',[_ɽ¼¨Ê¸»ú]), R = [], write('\n'). ¥Þ¥¹Ìܤò([_1,_2,_3,_4,_5,_6,_7,_8],A,R) :- append(_,[A|R],[_1,_2,_3,_4,_5,_6,_7,_8]). ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(V,'-') :- var(V),!. ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú('x','x') :- !. ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(_,0). ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë([]). ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8|R]) :- ÇúÃÆ¤ò±£¤·¤Æ¥Þ¥¹ÌܤιÔɽ¼¨([_1,_2,_3,_4,_5,_6,_7,_8]), ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë(R). ÇúÃÆ¤ò±£¤·¤Æ¥Þ¥¹ÌܤιÔɽ¼¨([_1,_2,_3,_4,_5,_6,_7,_8]) :- ¥Þ¥¹Ìܤò([_1,_2,_3,_4,_5,_6,_7,_8],A,R), ÇúÃÆ¤ò±£¤·¤Æ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R). ÇúÃÆ¤ò±£¤·¤Æ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R) :- ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(A,_ɽ¼¨Ê¸»ú), ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨(_ɽ¼¨Ê¸»ú,R). ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨(_ɽ¼¨Ê¸»ú,R) :- writef('%w',[_ɽ¼¨Ê¸»ú]), R = [], write('\n'). ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(V,'-') :- var(V),!. ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú('x','-') :- !. ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(_,0). ʿ󲽤·¤¿°ÌÃÖ¤ËÊÑ´¹(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1) :- _nth1 is (_¹Ô°ÌÃÖ-1) * 8 + _Îó°ÌÃÖ. '¥Þ¥¹Ìܤò8¡ß 8¤ËÀßÄꤹ¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- length(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,64). 'ÇúÃÆ¤ò10¸Ä¤Ë¤·¡¢Æ±¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÇÛÃÖ¤¹¤ë¡Ê»î¹Ô¤ÎºÇÂç²ó¿ô¤Ï54²ó¤È¤Ê¤ë¡Ë'(L) :- ÇúÃÆ¤Ï10¸Ä¤Ë¤·(Lp), Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë(Lp,L). ÇúÃÆ¤Ï10¸Ä¤Ë¤·(Lp) :- length(Lp,10). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë([],L) :- !. Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë([_|R1],L) :- Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(L), Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë(R1,L). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(L) :- ¥é¥ó¥À¥à¤Ë(L,_nth0), Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(_nth0,L),!. ¥é¥ó¥À¥à¤Ë(L,_nth0) :- repeat, _nth0 is random(64). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(_nth0,L) :- Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë(_nth0,L,V), °ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(V). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë(_nth0,L,V) :- nth0(_nth0,L,V), var(V). °ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(x). ÇúÃÆ¤Ï¼þ°Ï¤Ë¤¤¤¯¤Ä¤¢¤ë¤«(N,L,_¸Ä¿ô) :- ÅÙ¿ô(¼þ°Ï¤ÎȬ²Õ½ê¤ÎÃæ¤ÇÇúÃÆ¤¬¤¢¤ë¤Î¤Ï(N,L),_¸Ä¿ô). ¼þ°Ï¤ÎȬ²Õ½ê¤ÎÃæ¤ÇÇúÃÆ¤¬¤¢¤ë¤Î¤Ï(N,L) :- ¼þÊÕ¤ÎȬ²Õ½ê¤ÎÃæ¤Ç(N,_nth1), '_nth1¤Ë¤ÏÇúÃÆ¤¬¤¢¤ë'(_nth1,L). ¼þÊÕ¤ÎȬ²Õ½ê¤ÎÃæ¤Ç(N,_nth1) :- member(_¼°,[N-9,N-8,N-7,N-1,N,N+1,N+7,N+8,N+9]), _nth1 is _¼°. '_nth1¤Ë¤ÏÇúÃÆ¤¬¤¢¤ë'(_nth1,L) :- nth1(_nth1,L,V), ÊÑ¿ô¤Ç¤Ï¤Ê¤¯ÇúÃÆ¤¬¤¢¤ë(V). ÊÑ¿ô¤Ç¤Ï¤Ê¤¯ÇúÃÆ¤¬¤¢¤ë(V) :- ÊÑ¿ô¤Ç¤Ï¤Ê¤¯(V), V = x. ÊÑ¿ô¤Ç¤Ï¤Ê¤¯(V) :- \+(var(V)). ¥Þ¥¹ÌܤòÁªÂò¤µ¤»¤ë(_¹Ô°ÌÃÖ,_·å°ÌÃÖ) :- À°¿ô¤òÆÀ¤ë('¥Þ¥¹Ìܤι԰ÌÃÖ(1-8) ',between(1,8,_¹Ô°ÌÃÖ),_¹Ô°ÌÃÖ), À°¿ô¤òÆÀ¤ë('¥Þ¥¹Ìܤηå°ÌÃÖ(1-8) ',between(1,8,_·å°ÌÃÖ),_·å°ÌÃÖ),!. ÅÙ¿ô(P,_ÅÙ¿ô) :- findall(1,P,L), length(L,_ÅÙ¿ô). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô). ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é(_ºÅ¥ʸ,_¹Ô), ¹Ô¤ò¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_¾ò·ï,_À°¿ô),!. ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é(_ºÅ¥ʸ,_¹Ô) :- writef('%w',[_ºÅ¥ʸ]), ¹ÔÆþÎÏ(_¹Ô). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(user_input,Codes), atom_chars(_¹Ô,Codes). ¹Ô¤ò¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_¾ò·ï,_À°¿ô) :- ¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_À°¿ô), À°¿ôÆþÎϾò·ï¸¡ºº(_¾ò·ï). ¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_À°¿ô) :- read_term_from_atom(_¹Ô,_À°¿ô,[]), À°¿ô¸¡ºº(_À°¿ô). À°¿ô¸¡ºº(_À°¿ô) :- integer(_À°¿ô),!. À°¿ô¸¡ºº(_¹à) :- À°¿ô¸¡ºººÆÆþÎÏÍ×ÀÁ(_¹à). À°¿ô¸¡ºººÆÆþÎÏÍ×ÀÁ(_¹à) :- writef('ÆþÎϤµ¤ì¤¿¹à %w ¤ÏÀ°¿ô¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹à]), fail. À°¿ôÆþÎϾò·ï¸¡ºº(_¾ò·ï) :- catch(_¾ò·ï,E,fail),!. À°¿ôÆþÎϾò·ï¸¡ºº(_¾ò·ï) :- À°¿ôÆþÎϾò·ï¸¡ºººÆÆþÎÏÍ×ÀÁ(_¾ò·ï). À°¿ôÆþÎϾò·ï¸¡ºººÆÆþÎÏÍ×ÀÁ(_¾ò·ï) :- writef('ÆþÎϤµ¤ì¤¿ %w ¤ÏÀ®Î©¤·¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¾ò·ï]), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 158ÂåÌÜ #104 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¡¡¡¡100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á¡¢¤½¤Îɽ¼¨¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤¿¤À¤·¡¢µá¤á¤ëÁÇ¿ô¤ÎÎ̤ϰú¿ô¤È¤·¤Æ´Ø¿ô¦¤ËÅϤ·¤Æµá¤á¤ë¤³¤È¤È¤¹¤ë¡£ # # ¡¡¡¡¡Ú´Ø¿ô»ÅÍÍ¡Û # ¡¡¡¡Ìá¤êÃÍ:¤Ê¤· # ¡¡¡¡´Ø¿ô̾:prime # ¡¡¡¡°ú¿ô:int n # '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á¡¢¤½¤Îɽ¼¨¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢µá¤á¤ëÁÇ¿ô¤ÎÎ̤ϰú¿ô¤È¤·¤Æ´Ø¿ô¦¤ËÅϤ·¤Æµá¤á¤ë¤³¤È¤È¤¹¤ë¡£'(_n) :- '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òn¸Äµá¤á'(_n,_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó), ¤½¤Îɽ¼¨¤ò¤¹¤ë(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó). '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òn¸Äµá¤á'(_n,_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findnsols(_n,_ÁÇ¿ô,'100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á'(_ÁÇ¿ô),_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó),!. '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á'(_ÁÇ¿ô) :- '100°Ê²¼¤Þ¤Ç¤Î'(_ÁÇ¿ô¸õÊä), ÁÇ¿ô¤òµá¤á(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô). '100°Ê²¼¤Þ¤Ç¤Î'(_ÁÇ¿ô¸õÊä) :- findall(N,between(2,100,N),_ÁÇ¿ô¸õÊä). ÁÇ¿ô¤òµá¤á(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],X) :- äÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,L,X). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,_,A). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,L,X) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,X). äÁ(_,[],[]) :- !. äÁ(N,L,R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(N,L,R2). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(N,[A|R1],L) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,L,R2), äÁ(N,R1,R2). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,R2,R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò'(A,N). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,[A|R2],R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤Ï¼è¤ê½ü¤«¤Ê¤¤'(A,N). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò'(A,N) :- 0 is A mod N. 'N¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤Ï¼è¤ê½ü¤«¤Ê¤¤'(A,N) :- \+(0 is A mod N). ¤½¤Îɽ¼¨¤ò¤¹¤ë(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,' ',_n¸Ä¤ÎÁÇ¿ôʸ»úÎó), writef('%w\n',[_n¸Ä¤ÎÁÇ¿ôʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 158ÂåÌÜ #104 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¡¡¡¡100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á¡¢¤½¤Îɽ¼¨¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤¿¤À¤·¡¢µá¤á¤ëÁÇ¿ô¤ÎÎ̤ϰú¿ô¤È¤·¤Æ´Ø¿ô¦¤ËÅϤ·¤Æµá¤á¤ë¤³¤È¤È¤¹¤ë¡£ # # ¡¡¡¡¡Ú´Ø¿ô»ÅÍÍ¡Û # ¡¡¡¡Ìá¤êÃÍ:¤Ê¤· # ¡¡¡¡´Ø¿ô̾:prime # ¡¡¡¡°ú¿ô:int n # '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á¡¢¤½¤Îɽ¼¨¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢µá¤á¤ëÁÇ¿ô¤ÎÎ̤ϰú¿ô¤È¤·¤Æ´Ø¿ô¦¤ËÅϤ·¤Æµá¤á¤ë¤³¤È¤È¤¹¤ë¡£'(_n) :- '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òn¸Äµá¤á'(_n,_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó), ¤½¤Îɽ¼¨¤ò¤¹¤ë(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó). '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òn¸Äµá¤á'(_n,_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findnsols(_n,_ÁÇ¿ô,'100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á'(_ÁÇ¿ô),_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó),!. '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á'(_ÁÇ¿ô) :- '100°Ê²¼¤Þ¤Ç¤Î'(_ÁÇ¿ô¸õÊä), ÁÇ¿ô¤òµá¤á(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô). '100°Ê²¼¤Þ¤Ç¤Î'(_ÁÇ¿ô¸õÊä) :- findall(N,between(2,100,N),_ÁÇ¿ô¸õÊä). ÁÇ¿ô¤òµá¤á(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],X) :- äÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,L,X). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,_,A). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,L,X) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,X). äÁ(_,[],[]) :- !. äÁ(N,L,R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(N,L,R2). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(N,[A|R1],L) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,L,R2), äÁ(N,R1,R2). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,R2,R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò'(A,N). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,[A|R2],R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤Ï¼è¤ê½ü¤«¤Ê¤¤'(A,N). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò'(A,N) :- 0 is A mod N. 'N¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤Ï¼è¤ê½ü¤«¤Ê¤¤'(A,N) :- \+(0 is A mod N). ¤½¤Îɽ¼¨¤ò¤¹¤ë(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,' ',_n¸Ä¤ÎÁÇ¿ôʸ»úÎó), writef('%w\n',[_n¸Ä¤ÎÁÇ¿ôʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ºÇÂç¤ÎÍø±× # FX¼è°ú¤Ç¤Ï¡¢°Û¤Ê¤ë¹ñ¤ÎÄ̲ߤò¸ò´¹¤¹¤ë¤³¤È¤Ç°ÙÂØº¹¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢£±¥É¥ë100±ß¤Î»þ¤Ë 1000¥É¥ëÇ㤤¡¢²Á³ÊÊÑÆ°¤Ë¤è¤ê 1¥É¥ë 108±ß¤Ë¤Ê¤Ã¤¿»þ¤ËÇä¤ë¤È¡¢(108±ß ¡Ý 100±ß) ¡ß 1000¥É¥ë = 8000±ß¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ # # ¤¢¤ëÄ̲ߤˤĤ¤¤Æ¡¢»þ¹ï t ¤Ë¤ª¤±¤ë²Á³Ê R[t] (t=1,2,,,N)¤¬ÆþÎϤȤ·¤ÆÍ¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢²Á³Ê¤Îº¹ R[j]¡ÝR[i] (¤¿¤À¤·¡¢j>i ¤È¤¹¤ë) ¤ÎºÇÂçÃͤòµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏ # ºÇ½é¤Î¹Ô¤ËÀ°¿ô N ¤¬Í¿¤¨¤é¤ì¤ë¡£ # # ³¤¯N¹Ô¤ËÀ°¿ô R[t] (t=1,2,,,N) ¤¬½çÈÖ¤ËÍ¿¤¨¤é¤ì¤ë¡£ # # ½ÐÎÏ # ºÇÂçÃͤò£±¹Ô¤Ë½ÐÎϤ»¤è¡£ # # À©Ìó # 2?N?200000 # 1?R[t]?109 # ÆþÎÏÎã 1 # 6 # 2 # 3 # 1 # 3 # 4 # 3 # ÆþÎÏÎã 1 ¤ËÂФ¹¤ë½ÐÎÏ # 3 # ÆþÎÏÎã 2 # 4 # 4 # 1 # 2 # 1 # ÆþÎÏÎã 2 ¤ËÂФ¹¤ë½ÐÎÏ # 1 'FX¼è°ú¤Ç¤Ï¡¢°Û¤Ê¤ë¹ñ¤ÎÄ̲ߤò¸ò´¹¤¹¤ë¤³¤È¤Ç°ÙÂØº¹¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢£±¥É¥ë100±ß¤Î»þ¤Ë 1000¥É¥ëÇ㤤¡¢²Á³ÊÊÑÆ°¤Ë¤è¤ê 1¥É¥ë 108±ß¤Ë¤Ê¤Ã¤¿»þ¤ËÇä¤ë¤È¡¢ (108±ß - 100±ß) ¡ß 1000¥É¥ë = 8000±ß¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤¢¤ëÄ̲ߤˤĤ¤¤Æ¡¢»þ¹ï t ¤Ë¤ª¤±¤ë²Á³Ê R[t] (t=1,2,,,N)¤¬ÆþÎϤȤ·¤ÆÍ¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢ ²Á³Ê¤Îº¹ R[j]-R[i] (¤¿¤À¤·¡¢j>i ¤È¤¹¤ë) ¤ÎºÇÂçÃͤòµá¤á¤Æ¤¯¤À¤µ¤¤¡£' :- »þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó), ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó,_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×), ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×¤òɽ¼¨¤¹¤ë(_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×). »þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó) :- »þ·ÏÎó¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô), »þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_»þ·ÏÎó¿ô,_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó). »þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_»þ·ÏÎó¿ô,_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó) :- findall(_²Á³Ê,( »þ¹ït¤Ë±÷¤±¤ë²Á³Ê(_»þ·ÏÎó¿ô,_²Á³Ê)),_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó). »þ¹ït¤Ë±÷¤±¤ë²Á³Ê(_»þ·ÏÎó¿ô,_²Á³Ê) :- between(1,_»þ·ÏÎó¿ô,_t), ²Á³Ê¤òÆÀ¤ë(_²Á³Ê). ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó,_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×) :- findmax(_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹,( °ÙÂØº¹¤ÎÍø±×(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹)),_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×). °ÙÂØº¹¤ÎÍø±×(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹) :- append(_,[_»þ¹ït¤Î²Á³Ê|_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó],_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó), »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹). »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹) :- findmax(_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹,( »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ë²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹)),_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹). »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ë²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹) :- member(_¤½¤Î¸å¤Î»þ·ÏÎó¤Ç¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó), _»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹ is _¤½¤Î¸å¤Î»þ·ÏÎó¤Ç¤Î²Á³Ê - _»þ¹ït¤Î²Á³Ê. »þ·ÏÎó¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô) :- ¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô). ²Á³Ê¤òÆÀ¤ë(_²Á³Ê) :- ¿ô¤òÆÀ¤ë(_²Á³Ê). ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×¤òɽ¼¨¤¹¤ë(_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×) :- writef('%t\n',[_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×]). ¿ô¤òÆÀ¤ë(_¿ô) :- ¹ÔÆþÎÏ(_¹Ô), ¿ôÆþÎϸ¡ºº(_¹Ô,_¿ô). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(user_input,Codes), atom_codes(_¹Ô,Codes). ¿ôÆþÎϸ¡ºº(_¹Ô,_¿ô) :- read_term_from_atom(_¹Ô,_¿ô,[]), number(_¿ô). findmax(A,B,C) :- findall(A,B,L), max_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï body {line-height: 158%;} --> # ½Ðŵ :: twitter_by_@pytoninfo_20160130 # # ¿¼¤µÍ¥Àèõº÷¤Çíµ¤¤¤Æ¤¤¤ëpython½é¿´¼Ô¤Ç¤¹¡£ # ÉôʬÏÂÌäÂê¤ò¿¼¤µÍ¥Àèõº÷¤Ç²ò¤¯¤³¤È¤ò¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ # ¼ÁÌ䤷¤¿¤¤¤³¤È¤Ï¥½¡¼¥¹¥³¡¼¥É¤ÎÉôʬ¤Ç¡¢¥¢¥ë¥´¥ê¥º¥à¤ËÂФ·¤Æ¤ÎÍý²ò¤¬Â­¤ê¤Ê¤¤¤Î¤«¡¢ # python¤Ë¤¿¤¤¤·¤Æ¤ÎÍý²ò¤¬Â­¤ê¤Ê¤¤¤Î¤«¡¢¥Í¥Ã¥È¤Ë¾è¤Ã¤Æ¤¤¤ëpython¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤â¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤¤¤ë¤Î¤«¤µ¤Ã¤Ñ¤ê¤ï¤«¤ê¤Þ¤»¤ó¡£ # # ²ò¤­¤¿¤¤ÌäÂꢪa=[1.2.4.7]¤ÎÃæ¤«¤é¤¤¤¯¤Ä¤«¤ÎϤÇk=13¤¬ºî¤ì¤ë¤«¤É¤¦¤«È½Äꤷ¤í¡£ '[1,2,4,7]¤ÎÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤¬¤¢¤ë¤«¤É¤¦¤«¿¼¤µÍ¥Àè¤Ç²ò¤¯'(_Áȹ礻) :- Áȹ礻¿ô¤ò1¤«¤é4¤Þ¤Ç¤ÎÈϰϤǻî¹Ô¤¹¤ë(_Áȹ礻¿ô), ¿¼¤µÍ¥Àè¤ÇÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤ò¼è¤ê½Ð¤¹([1,2,4,7],_Áȹ礻¿ô,_Áȹ礻). Áȹ礻¿ô¤ò1¤«¤é4¤Þ¤Ç¤ÎÈϰϤǻî¹Ô¤¹¤ë(_Áȹ礻¿ô) :- between(1,4,_Áȹ礻¿ô). ¿¼¤µÍ¥Àè¤ÇÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤ò¼è¤ê½Ð¤¹(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻) :- ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻), ÉôʬϤ¬13¤Ë¤Ê¤ë(_Áȹ礻). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(_¸õÊä¤Ê¤é¤Ó,1,[_¼ï]) :- 'Áȹ礻¿ô¤Î»ØÄ꤬1¤Î»þ¡¢¸õÊä¤Ê¤é¤Ó¤«¤é1Í×ÁǤº¤Ä¼è¤ê½Ð¤·Áȹ礻¤Î¼ï¤Ë¤¹¤ë'(_¸õÊä¤Ê¤é¤Ó,_¼ï). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻) :- 'Áȹ礻¿ô¤Î»ØÄ꤬1¤è¤êÂ礭¤¤¤Ê¤é¤Ð¡¢¸õÊä¤Ê¤é¤Ó¤Î³ÆÍ×ÁǤˤ½¤ì¤è¤ê¸å¤ÎÍ×ÁǤÎÁȹ礻¤òÉղ䷤Ƥ¤¤¯'(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻). 'Áȹ礻¿ô¤Î»ØÄ꤬1¤Î»þ¡¢¸õÊä¤Ê¤é¤Ó¤«¤é1Í×ÁǤº¤Ä¼è¤ê½Ð¤·Áȹ礻¤Î¼ï¤Ë¤¹¤ë'(_¸õÊä¤Ê¤é¤Ó,_¼ï) :- member(_¼ï,_¸õÊä¤Ê¤é¤Ó). 'Áȹ礻¿ô¤Î»ØÄ꤬1¤è¤êÂ礭¤¤¤Ê¤é¤Ð¡¢¸õÊä¤Ê¤é¤Ó¤Î³ÆÍ×ÁǤˤ½¤ì¤è¤ê¸å¤ÎÍ×ÁǤÎÁȹ礻¤òÉղ䷤Ƥ¤¤¯'(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻) :- _Áȹ礻¿ô > 1, '¸õÊä¤Ê¤é¤Ó¤Î³ÆÍ×ÁǤˤ½¤ì¤è¤ê¸å¤ÎÍ×ÁǤÎÁȹ礻¤òÉղ䷤Ƥ¤¤¯'(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻). '¸õÊä¤Ê¤é¤Ó¤Î³ÆÍ×ÁǤˤ½¤ì¤è¤ê¸å¤ÎÍ×ÁǤÎÁȹ礻¤òÉղ䷤Ƥ¤¤¯'(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻) :- 'ÀèÆ¬Í×ÁǤò¤½¤ì¤è¤ê¸å¤Î¿ô»úÎó¤òÁȹ礻¤¿¤â¤Î¤È·ë¹ç¤¹¤ë'(_¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻). '¸õÊä¤Ê¤é¤Ó¤Î³ÆÍ×ÁǤˤ½¤ì¤è¤ê¸å¤ÎÍ×ÁǤÎÁȹ礻¤òÉղ䷤Ƥ¤¤¯'([_|_»Ä¤ê¸õÊä¤Ê¤é¤Ó],_Áȹ礻¿ô,_Áȹ礻) :- ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(_»Ä¤ê¸õÊä¤Ê¤é¤Ó,_Áȹ礻¿ô,_Áȹ礻),!. 'ÀèÆ¬Í×ÁǤò¤½¤ì¤è¤ê¸å¤Î¿ô»úÎó¤òÁȹ礻¤¿¤â¤Î¤È·ë¹ç¤¹¤ë'([_ÀèÆ¬Í×ÁÇ|_»Ä¤ê¸õÊä¤Ê¤é¤Ó],_Áȹ礻¿ô,[_ÀèÆ¬Í×ÁÇ|_»Ä¤êÁȹ礻]) :- succ(_¸º¤é¤·¤¿Áȹ礻¿ô,_Áȹ礻¿ô), ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(_»Ä¤ê¸õÊä¤Ê¤é¤Ó,_¸º¤é¤·¤¿Áȹ礻¿ô,_»Ä¤êÁȹ礻). ÉôʬϤ¬13¤Ë¤Ê¤ë(_Áȹ礻) :- sum_list(_Áȹ礻,13). % °Ê²¼¤Î¥µ¥¤¥È¤Ï body {line-height: 158%;} --> # ½Ðŵ :: twitter_by_@pytoninfo_20160130 # # ¿¼¤µÍ¥Àèõº÷¤Çíµ¤¤¤Æ¤¤¤ëpython½é¿´¼Ô¤Ç¤¹¡£ # ÉôʬÏÂÌäÂê¤ò¿¼¤µÍ¥Àèõº÷¤Ç²ò¤¯¤³¤È¤ò¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ # ¼ÁÌ䤷¤¿¤¤¤³¤È¤Ï¥½¡¼¥¹¥³¡¼¥É¤ÎÉôʬ¤Ç¡¢¥¢¥ë¥´¥ê¥º¥à¤ËÂФ·¤Æ¤ÎÍý²ò¤¬Â­¤ê¤Ê¤¤¤Î¤«¡¢ # python¤Ë¤¿¤¤¤·¤Æ¤ÎÍý²ò¤¬Â­¤ê¤Ê¤¤¤Î¤«¡¢¥Í¥Ã¥È¤Ë¾è¤Ã¤Æ¤¤¤ëpython¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤â¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤¤¤ë¤Î¤«¤µ¤Ã¤Ñ¤ê¤ï¤«¤ê¤Þ¤»¤ó¡£ # # ²ò¤­¤¿¤¤ÌäÂꢪa=[1.2.4.7]¤ÎÃæ¤«¤é¤¤¤¯¤Ä¤«¤ÎϤÇk=13¤¬ºî¤ì¤ë¤«¤É¤¦¤«È½Äꤷ¤í¡£ '[1,2,4,7]¤ÎÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤¬¤¢¤ë¤«¤É¤¦¤«¿¼¤µÍ¥Àè¤Ç²ò¤¯'(_Áȹ礻) :- Áȹ礻¿ô¤ò1¤«¤é4¤Þ¤Ç¤ÎÈϰϤǻî¹Ô¤¹¤ë(_Áȹ礻¿ô), ¿¼¤µÍ¥Àè¤ÇÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤ò¼è¤ê½Ð¤¹([1,2,4,7],_Áȹ礻¿ô,_Áȹ礻). Áȹ礻¿ô¤ò1¤«¤é4¤Þ¤Ç¤ÎÈϰϤǻî¹Ô¤¹¤ë(_Áȹ礻¿ô) :- between(1,4,_Áȹ礻¿ô). ¿¼¤µÍ¥Àè¤ÇÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤ò¼è¤ê½Ð¤¹(L,_Áȹ礻¿ô,_Áȹ礻) :- ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(L,_Áȹ礻¿ô,_Áȹ礻), ÉôʬϤ¬13¤Ë¤Ê¤ë(_Áȹ礻). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(L,1,[A]) :- '¼è¤ê½Ð¤·¿ô¤Î»ØÄ꤬1¤Î»þ¡¢L¤«¤é1Í×ÁǤº¤Ä¼è¤ê½Ð¤·Áȹ礻¤Î¼ï¤Ë¤¹¤ë'(L,A). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(L1,N,L2) :- N > 1, ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ë(L1,N,L2). '¼è¤ê½Ð¤·¿ô¤Î»ØÄ꤬1¤Î»þ¡¢L¤«¤é1Í×ÁǤº¤Ä¼è¤ê½Ð¤·Áȹ礻¤Î¼ï¤Ë¤¹¤ë'(L,A) :- member(A,L). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ë([A|R1],N,[A|R2]) :- succ(N_1,N), ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(R1,N_1,R2). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ë([_|R1],N,R2) :- ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(R1,N,R2). ÉôʬϤ¬13¤Ë¤Ê¤ë(_Áȹ礻) :- sum_list(_Áȹ礻,13). % °Ê²¼¤Î¥µ¥¤¥È¤Ï body {line-height: 158%;} --> # ½Ðŵ :: twitter_by_@pytoninfo_20160130 # # ¿¼¤µÍ¥Àèõº÷¤Çíµ¤¤¤Æ¤¤¤ëpython½é¿´¼Ô¤Ç¤¹¡£ # ÉôʬÏÂÌäÂê¤ò¿¼¤µÍ¥Àèõº÷¤Ç²ò¤¯¤³¤È¤ò¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ # ¼ÁÌ䤷¤¿¤¤¤³¤È¤Ï¥½¡¼¥¹¥³¡¼¥É¤ÎÉôʬ¤Ç¡¢¥¢¥ë¥´¥ê¥º¥à¤ËÂФ·¤Æ¤ÎÍý²ò¤¬Â­¤ê¤Ê¤¤¤Î¤«¡¢ # python¤Ë¤¿¤¤¤·¤Æ¤ÎÍý²ò¤¬Â­¤ê¤Ê¤¤¤Î¤«¡¢¥Í¥Ã¥È¤Ë¾è¤Ã¤Æ¤¤¤ëpython¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤â¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤¤¤ë¤Î¤«¤µ¤Ã¤Ñ¤ê¤ï¤«¤ê¤Þ¤»¤ó¡£ # # ²ò¤­¤¿¤¤ÌäÂꢪa=[1.2.4.7]¤ÎÃæ¤«¤é¤¤¤¯¤Ä¤«¤ÎϤÇk=13¤¬ºî¤ì¤ë¤«¤É¤¦¤«È½Äꤷ¤í¡£ '[1,2,4,7]¤ÎÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤¬¤¢¤ë¤«¤É¤¦¤«¿¼¤µÍ¥Àè¤Ç²ò¤¯'(_Áȹ礻) :- Áȹ礻¿ô¤ò1¤«¤é4¤Þ¤Ç¤ÎÈϰϤǻî¹Ô¤¹¤ë(_Áȹ礻¿ô), ¿¼¤µÍ¥Àè¤ÇÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤ò¼è¤ê½Ð¤¹([1,2,4,7],_Áȹ礻¿ô,_Áȹ礻). Áȹ礻¿ô¤ò1¤«¤é4¤Þ¤Ç¤ÎÈϰϤǻî¹Ô¤¹¤ë(_Áȹ礻¿ô) :- between(1,4,_Áȹ礻¿ô). ¿¼¤µÍ¥Àè¤ÇÉôʬϤ¬13¤Ë¤Ê¤ëÁȹ礻¤ò¼è¤ê½Ð¤¹(L,_Áȹ礻¿ô,_Áȹ礻) :- ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(L,_Áȹ礻¿ô,_Áȹ礻), ÉôʬϤ¬13¤Ë¤Ê¤ë(_Áȹ礻). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(L,1,[A]) :- '¼è¤ê½Ð¤·¿ô¤Î»ØÄ꤬1¤Î»þ¡¢L¤«¤é1Í×ÁǤº¤Ä¼è¤ê½Ð¤·Áȹ礻¤Î¼ï¤Ë¤¹¤ë'(L,A). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(L1,N,L2) :- N > 1, ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ë(L1,N,L2). '¼è¤ê½Ð¤·¿ô¤Î»ØÄ꤬1¤Î»þ¡¢L¤«¤é1Í×ÁǤº¤Ä¼è¤ê½Ð¤·Áȹ礻¤Î¼ï¤Ë¤¹¤ë'(L,A) :- member(A,L). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ë([A|R1],N,[A|R2]) :- succ(N_1,N), ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(R1,N_1,R2). ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ë([_|R1],N,R2) :- ¿¼¤µÍ¥Àè¤ÇÁȹ礻¤ò¼è¤ê½Ð¤¹(R1,N,R2). ÉôʬϤ¬13¤Ë¤Ê¤ë(_Áȹ礻) :- sum_list(_Áȹ礻,13). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '100000°Ê²¼¤Î¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¤ÎÅÙ¿ô'(_ÅÙ¿ô) :- ÅÙ¿ô('100000°Ê²¼¤Î¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô'(_ºï½ü²ÄǽÁÇ¿ô),_ÅÙ¿ô). '100000°Ê²¼¤Î¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô'(_ºï½ü²ÄǽÁÇ¿ô) :- ¤Þ¤ºÁÇ¿ô¸õÊä¤ò100000°Ê²¼¤Ë¹Ê¤ê¤Þ¤·¤ç¤¦(_ÁÇ¿ô¤Ê¤é¤Ó), ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¤òÁªÊ̤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²Äǽ¿ô). ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¤òÁªÊ̤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²Äǽ¿ô) :- ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó), ºï½ü²ÄǽÁÇ¿ô¤Ç¤¢¤ë¤«¸¡ºº¤·¤Æ¿ôÃͤËÌ᤹(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô). ¤Þ¤ºÁÇ¿ô¸õÊä¤ò100000°Ê²¼¤Ë¹Ê¤ê¤Þ¤·¤ç¤¦(_ÁÇ¿ô¤Ê¤é¤Ó) :- '2¤«¤é100000¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó'(_2¤«¤é100000¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é100000¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤Ê¤é¤Ó). '2¤«¤é100000¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó'(_2¤«¤é100000¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó) :- findall(N,between(2,100000,N),_2¤«¤é100000¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó). ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó) :- ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¸õÊä¤ò¿ô»ú¤Ê¤é¤Ó¤Ç¼õ¤±¼è¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó). ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤ºï½ü²ÄǽÁÇ¿ô¸õÊä¤ò¿ô»ú¤Ê¤é¤Ó¤Ç¼õ¤±¼è¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó) :- ÁÇ¿ô¤ò¤Ò¤È¤ÄÁªÂò¤·ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó¤Ëʬ²ò¤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó), ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤(_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó). ÁÇ¿ô¤ò¤Ò¤È¤ÄÁªÂò¤·ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó¤Ëʬ²ò¤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó) :- member(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó), number_chars(_ÁÇ¿ô,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó). ¤É¤Î·å¤Ë¤â0¤ò´Þ¤Þ¤Ê¤¤(_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó) :- \+(member('0',_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó)). ºï½ü²ÄǽÁÇ¿ô¤Ç¤¢¤ë¤«¸¡ºº¤·¤Æ¿ôÃͤËÌ᤹(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô) :- once(ºï½ü²ÄǽÁÇ¿ô¤Ç¤¢¤ë¤«¸¡ºº¤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó)), number_chars(_ºï½ü²ÄǽÁÇ¿ô,_ºï½ü²ÄǽÁÇ¿ô¤Î¿ô»ú¤Ê¤é¤Ó). ºï½ü²ÄǽÁÇ¿ô¤Ç¤¢¤ë¤«¸¡ºº¤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,[]) :- !. ºï½ü²ÄǽÁÇ¿ô¤Ç¤¢¤ë¤«¸¡ºº¤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,L) :- ¤Ò¤È·å¤º¤Ä¸º¤é¤·¤Æ¤¤¤Ã¤Æ¤É¤ì¤âÁÇ¿ô¤Ç¤¢¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,L). ¤Ò¤È·å¤º¤Ä¸º¤é¤·¤Æ¤¤¤Ã¤Æ¤É¤ì¤âÁÇ¿ô¤Ç¤¢¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó) :- ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó(_ÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó), select(_,_ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó,R), ºï½ü²ÄǽÁÇ¿ô¤Ç¤¢¤ë¤«¸¡ºº¤¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,R). ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó(_ÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó) :- number_chars(_ÁÇ¿ô,_ÁÇ¿ô¤ò¹½À®¤¹¤ë¿ô»ú¤Ê¤é¤Ó), ÁÇ¿ô(_ÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô). ÁÇ¿ô(_ÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô) :- member(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_³ÎÄꤷ¤¿ÁÇ¿ô|R1],[_³ÎÄꤷ¤¿ÁÇ¿ô|R2]) :- 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤·äÁ¤Ë³Ý¤±¤ë'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,R2). 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤·äÁ¤Ë³Ý¤±¤ë'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,R2) :- 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤¹'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,_»Ä¤Ã¤¿¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_»Ä¤Ã¤¿¤Ê¤é¤Ó,R2). 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤¹'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,_»Ä¤Ã¤¿¤Ê¤é¤Ó) :- findall(_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î,( 'R1¤ÎÃæ¤Ç_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î'(R1,_³ÎÄꤷ¤¿ÁÇ¿ô,_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î)),_»Ä¤Ã¤¿¤Ê¤é¤Ó). 'R1¤ÎÃæ¤Ç_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î'(R1,_³ÎÄꤷ¤¿ÁÇ¿ô,_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î) :- member(_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î,R1), \+(0 is _³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î mod _³ÎÄꤷ¤¿ÁÇ¿ô). ÅÙ¿ô(_ÌÜɸ,_ÅÙ¿ô) :- findall(1,_ÌÜɸ,L), length(L,_ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1289913298/7 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ # ¡¦¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò¤¹¤Ù¤ÆÂçʸ»ú¡Ê¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë¡Ë¤ËÊÑ´¹¤·¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢Ê¸»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë´Ø¿ô¤òºîÀ®¤·¡¢¤½¤ì¤òÍøÍѤ¹¤ë¤³¤È¡£ # '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò¤¹¤Ù¤ÆÂçʸ»ú¡Ê¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë¡Ë¤ËÊÑ´¹¤·¤ÆÉ½¼¨¤¹¤ë' :- ¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), '¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤Æ¡Ê¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë¡Ë'(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó). ¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó) :- write('ʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), read_line_to_codes(user_input,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó). '¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤Æ¡Ê¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë¡Ë'(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó) :- findall(_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É,( member(_ʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), '¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É)),_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó). '¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë'(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É) :- ¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É). '¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë'(_ʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É) :- Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë(_ʸ»ú¥³¡¼¥É). ¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É) :- ¾®Ê¸»ú¤Î¾ì¹ç¤Ï(_ʸ»ú¥³¡¼¥É), Âçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É). Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë(_ʸ»ú¥³¡¼¥É) :- \+(¾®Ê¸»ú¤Î¾ì¹ç¤Ï(_ʸ»ú¥³¡¼¥É)). ¾®Ê¸»ú¤Î¾ì¹ç¤Ï(_ʸ»ú¥³¡¼¥É) :- between(97,121,_ʸ»ú¥³¡¼¥É). Âçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É) :- _Âçʸ»ú¥³¡¼¥É is _ʸ»ú¥³¡¼¥É - 32. ɽ¼¨¤¹¤ë(_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó) :- atom_codes(_ʸ»úÎó,_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó), writef('%w\n',[_ʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1289913298/7 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ # ¡¦¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò¤¹¤Ù¤ÆÂçʸ»ú¡Ê¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë¡Ë¤ËÊÑ´¹¤·¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢Ê¸»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë´Ø¿ô¤òºîÀ®¤·¡¢¤½¤ì¤òÍøÍѤ¹¤ë¤³¤È¡£ # '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò¤¹¤Ù¤ÆÂçʸ»ú¡Ê¾®Ê¸»ú¤ÏÂçʸ»ú¤Ë¡¢Âçʸ»ú¤Ï¤½¤Î¤Þ¤Þ¤Ë¡Ë¤ËÊÑ´¹¤·¤ÆÉ½¼¨¤¹¤ë' :- ¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó), ¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó,_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó). ¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»úÎó¤ò(_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó) :- write('ʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), read_line_to_codes(user_input,_ʸ»ú¥³¡¼¥É¤Ê¤é¤Ó). ¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤Æ([],[]). ¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤Æ(L1,L2) :- ¾®Ê¸»ú¾ì¹ç¤ÏÂçʸ»ú¤ËÊÑ´¹¤¹¤ë(L1,L2). ¾®Ê¸»ú¾ì¹ç¤ÏÂçʸ»ú¤ËÊÑ´¹¤¹¤ë([_ʸ»ú¥³¡¼¥É|R1],[_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É|R2]) :- ¾®Ê¸»ú¤Î¾ì¹ç¤ÏÂçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É), ¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤Æ(R1,R2). ¾®Ê¸»ú¤Î¾ì¹ç¤ÏÂçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É) :- ¾®Ê¸»ú¤Î¾ì¹ç¤Ï(_ʸ»ú¥³¡¼¥É), Âçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É). ¾®Ê¸»ú¤Î¾ì¹ç¤ÏÂçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É) :- ¾®Ê¸»ú¤Ç¤Ê¤¤¾ì¹ç¤ÏÊÑ´¹¤»¤º¤Ë(_ʸ»ú¥³¡¼¥É). ¾®Ê¸»ú¤Î¾ì¹ç¤Ï(_ʸ»ú¥³¡¼¥É) :- between(97,121,_ʸ»ú¥³¡¼¥É). Âçʸ»ú¤ËÊÑ´¹¤·¤Æ(_ʸ»ú¥³¡¼¥É,_ÊÑ´¹¤µ¤ì¤¿¥³¡¼¥É) :- _Âçʸ»ú¥³¡¼¥É is _ʸ»ú¥³¡¼¥É - 32. ¾®Ê¸»ú¤Ç¤Ê¤¤¾ì¹ç¤ÏÊÑ´¹¤»¤º¤Ë(_ʸ»ú¥³¡¼¥É) :- \+(¾®Ê¸»ú¤Î¾ì¹ç¤Ï(_ʸ»ú¥³¡¼¥É)). ɽ¼¨¤¹¤ë(_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó) :- atom_codes(_ʸ»úÎó,_Âçʸ»ú¤ËÊÑ´¹¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ê¤é¤Ó), writef('%w\n',[_ʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ::¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part5 #644 # # ¤ªÂê¡§¹Å²ß¤¬nË礢¤ê¡¢¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£ # ¹Å²ß¤Î¼ïÎà¤Ï500±ß¶Ì¡¢100±ß¶Ì¡¢50±ß¶Ì¡¢10±ß¶Ì¡¢5±ß¶Ì¡¢1±ß¶Ì¤Ç¤¢¤ë¡£ # ÆâÌõ¤Ï³Æ¹Å²ß¤ÎËç¿ô¤òʤ٤¿¤â¤Î¤È¤¹¤ë¡£ # Ê£¿ô¤Î²ò¤¬¤¢¤ë¾ì¹ç¤Ï¤¹¤Ù¤Æ¤òµá¤á¤ë¡£ # Îã # 11Ëç¤Ç1082±ß¤Î¤È¤­ # 2 0 1 0 6 2 # # 12Ëç¤Ç777±ß¤Î¤È¤­ # 1 0 5 1 3 2 # 1 1 3 0 5 2 # # 25Ëç¤Ç4999±ß¤Î¤È¤­ # 9 2 5 4 1 4 # 9 3 3 3 3 4 # 9 4 1 2 5 4 '¹Å²ß¤¬nË礢¤ê¡¢¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£ ¹Å²ß¤Î¼ïÎà¤Ï500±ß¶Ì¡¢100±ß¶Ì¡¢50±ß¶Ì¡¢10±ß¶Ì¡¢5±ß¶Ì¡¢1±ß¶Ì¤Ç¤¢¤ë¡£ ÆâÌõ¤Ï³Æ¹Å²ß¤ÎËç¿ô¤òʤ٤¿¤â¤Î¤È¤¹¤ë¡£ Ê£¿ô¤Î²ò¤¬¤¢¤ë¾ì¹ç¤Ï¤¹¤Ù¤Æ¤òµá¤á¤ë¡£'(_n,_k,_500,_100,_50,_10,_5,_1) :- '¹Å²ß¤¬nË礢¤ê¡¢'(_n,_¹Å²ß¤Ê¤é¤Ó), '¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£'(_¹Å²ß¤Ê¤é¤Ó,_500,_100,_50,_10,_5,_1), '¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢'(_k,_500,_100,_50,_10,_5,_1). '¹Å²ß¤¬nË礢¤ê¡¢'(_n,_¹Å²ß¤Ê¤é¤Ó) :- findall(_,between(1,_n,_),_¹Å²ß¤Ê¤é¤Ó). '¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£'(_¹Å²ß¤Ê¤é¤Ó,_500,_100,_50,_10,_5,_1) :- '6¼ïÎà¤Ëʬ³ä¤µ¤ì¤¿'(_¹Å²ß¤Ê¤é¤Ó,L1,L2,L3,L4,L5,L6), '6¼ïÎà¤Ëʬ³ä¤µ¤ì¤¿¹Å²ß¤ÎÆâÌõ'([L1,L2,L3,L4,L5,L6],[_500,_100,_50,_10,_5,_1]). '6¼ïÎà¤Ëʬ³ä¤µ¤ì¤¿'(_¹Å²ß¤Ê¤é¤Ó,L1,L2,L3,L4,L5,L6) :- append([L1,L2,L3,L4,L5,L6],_¹Å²ß¤Ê¤é¤Ó). '6¼ïÎà¤Ëʬ³ä¤µ¤ì¤¿¹Å²ß¤ÎÆâÌõ'([],[]). '6¼ïÎà¤Ëʬ³ä¤µ¤ì¤¿¹Å²ß¤ÎÆâÌõ'([L|R1],[_Ëç¿ô|R2]) :- length(L,_Ëç¿ô), '6¼ïÎà¤Ëʬ³ä¤µ¤ì¤¿¹Å²ß¤ÎÆâÌõ'(R1,R2). '¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢'(_k,_500,_100,_50,_10,_5,_1) :- _k is 500 * _500 + 100 * _100 + 50 * _50 + 10 * _10 + 5 * _5 + 1 * _1. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1244449887/905 # # [1]c++ # [2]2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é¡¢¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£ # ¤Þ¤¿¡¢ÂгÑÍ×ÁǤÀ¤±¤ò1¤òÂåÆþ¤·¡¢¤Û¤«¤Ï¤¹¤Ù¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é¡¢É½¼¨¤·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢ÂгÑÍ×ÁǤϺ¸¾å¶ù¤«¤é±¦²¼¶ù¤Ø¤ÎÂгÑÀþ¾å¤ÎÍ×ÁǤȤ¹¤ë¡£¼¡¤Î¿Þ¤Ï¼Â¹ÔÎã¤Ç¤¢ ¤ë¡£ # --- (2)ÇÛÎón¤ÎÆâÍÆ --- # # 100000000 # 010000000 # 001000000 # 000100000 # 000010000 # 000001000 # 000000100 # 000000010 # 000000001 '2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é¡¢¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£' :- '2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é'(LL), '¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£'(LL). '2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é'(LL) :- findall(_¹Ô,( '10¹Ô¤¢¤ë', '10Í×ÁǤιԤΤ¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ'(_¹Ô)),LL). '10¹Ô¤¢¤ë' :- between(1,10,_). '10Í×ÁǤιԤΤ¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ'(_¹Ô) :- '10Í×ÁǤιԤÎ'(_¹Ô), ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ(_¹Ô). '10Í×ÁǤιԤÎ'(_¹Ô) :- length(_¹Ô,10). ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ([]). ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ([1|R]) :- ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ(R). '¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£'(LL) :- ɽ¼¨¤·¤Ê¤µ¤¤(LL). ɽ¼¨¤·¤Ê¤µ¤¤(LL) :- forall(¹Ô¤òɽ¼¨Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë(LL,_ɽ¼¨Ê¸»úÎó),writef('%w\n',[_ɽ¼¨Ê¸»úÎó])). ¹Ô¤òɽ¼¨Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë(LL,_ɽ¼¨Ê¸»úÎó) :- member(_¹Ô,LL), atomic_list_concat(_¹Ô,' ',_ɽ¼¨Ê¸»úÎó). 'ÂгÑÍ×ÁǤÀ¤±¤ò1¤òÂåÆþ¤·¡¢¤Û¤«¤Ï¤¹¤Ù¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é¡¢É½¼¨¤·¤Ê¤µ¤¤¡£' :- ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é(LL), ɽ¼¨¤·¤Ê¤µ¤¤(LL). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é(LL) :- findall(L,( between(1,10,_n), ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ(_n,L)),LL). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ(_n,L) :- ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,L), ¾¤ÎÁ´¤Æ¤ÎÊÑ¿ôÍ×ÁǤÏ0¤Ë(L). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,L) :- length(L,10), reverse(L,RL), ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,RL,L). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,RL,L) :- nth1(_n,L,1), nth1(_n,RL,1). ¾¤ÎÁ´¤Æ¤ÎÊÑ¿ôÍ×ÁǤÏ0¤Ë(L) :- findall(N,( member(N,L), ÊÑ¿ôÍ×ÁǤÏ0¤Ë(N)),L). ÊÑ¿ôÍ×ÁǤÏ0¤Ë(0) :- !. ÊÑ¿ôÍ×ÁǤÏ0¤Ë(N). % °Ê²¼¤Î¥µ¥¤¥È¤Ï Èó·èÄêÀ­¤ÎÁÇ¿ôÀ¸À®(_¸Â³¦ÃÍ,_ÁÇ¿ô) :- findall(N,between(2,_¸Â³¦ÃÍ,N),L), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_ÁÇ¿ô|_],_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([N|R1],_ÁÇ¿ô) :- äÁ¤Ë³Ý¤±¤ë(R1,_Í×ÁÇ,'_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N),R2), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(R2,_ÁÇ¿ô). äÁ¤Ë³Ý¤±¤ë(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2) :- 'L1¤ÎÍ×ÁǤÇ_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2). 'L1¤ÎÍ×ÁǤÇ_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2) :- findall(_Í×ÁÇ,( 'L1¤ÎÍ×ÁǤÇ'(L1,_Í×ÁÇ), '_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(_ÉûÌÜɸ)),L2). 'L1¤ÎÍ×ÁǤÇ'(L1,_Í×ÁÇ) :- member(_Í×ÁÇ,L1). '_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(_ÉûÌÜɸ) :- \+(_ÉûÌÜɸ). '_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N) :- 0 is _Í×ÁÇ mod N. % °Ê²¼¤Î¥µ¥¤¥È¤Ï Èó·èÄêÀ­¤ÎÁÇ¿ôÀ¸À®(_¸Â³¦ÃÍ,_ÁÇ¿ô) :- findall(N,between(2,_¸Â³¦ÃÍ,N),L), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_ÁÇ¿ô|_],_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([N|L1],_ÁÇ¿ô) :- ÀèÆ¬¤ÎÁÇ¿ô¤òÌ֤Ȥ·¤ÆäÁ¤Ë³Ý¤±¤Æ¹Ô¤¯(L1,_Í×ÁÇ,'_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N),_ÁÇ¿ô). ÀèÆ¬¤ÎÁÇ¿ô¤òÌ֤Ȥ·¤ÆäÁ¤Ë³Ý¤±¤Æ¹Ô¤¯(L1,_Í×ÁÇ,_ÉûÌÜɸ,_ÁÇ¿ô) :- 'L1¤ÎÍ×ÁǤÇ_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L2,_ÁÇ¿ô). 'L1¤ÎÍ×ÁǤÇ_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2) :- findall(_Í×ÁÇ,( 'L1¤ÎÍ×ÁǤÇ'(L1,_Í×ÁÇ), '_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(_ÉûÌÜɸ)),L2). 'L1¤ÎÍ×ÁǤÇ'(L1,_Í×ÁÇ) :- member(_Í×ÁÇ,L1). '_ÉûÌÜɸ¤ò¿¿¤È¤¹¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(_ÉûÌÜɸ) :- \+(_ÉûÌÜɸ). '_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N) :- 0 is _Í×ÁÇ mod N. % °Ê²¼¤Î¥µ¥¤¥È¤Ï Èó·èÄêÀ­¤ÎÁÇ¿ôÀ¸À®(_¸Â³¦ÃÍ,_ÁÇ¿ô) :- findall(N,between(2,_¸Â³¦ÃÍ,N),L), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_ÁÇ¿ô|_],_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([N|R1],_ÁÇ¿ô) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(R2,_ÁÇ¿ô). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],L2) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,A,R2,L2), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,A,R2,R2) :- 0 is A mod N. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,A,R2,[A|R2]) :- \+(0 is A mod N). % °Ê²¼¤Î¥µ¥¤¥È¤Ï Èó·èÄêÀ­¤ÎÁÇ¿ôÀ¸À®(_¸Â³¦ÃÍ,_ÁÇ¿ô) :- findall(N,between(2,_¸Â³¦ÃÍ,N),L), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_ÁÇ¿ô|_],_ÁÇ¿ô). Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([N|R1],_ÁÇ¿ô) :- äÁ¤Ë³Ý¤±¤ë(R1,_Í×ÁÇ,'_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N),R2), Èó·èÄêÀ­¤Î¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(R2,_ÁÇ¿ô). äÁ¤Ë³Ý¤±¤ë(L1,_Í×ÁÇ,_ÉûÌÜɸ,L2) :- findall(_Í×ÁÇ,( member(_Í×ÁÇ,L1), \+(_ÉûÌÜɸ)),L2). '_Í×ÁǤÏN¤Ç³ä¤êÀÚ¤ì¤ë'(_Í×ÁÇ,N) :- 0 is _Í×ÁÇ mod N. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥Ê¥Ã¥×¥µ¥Ã¥¯ÌäÂê(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_µÍ¤áÊý,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ) :- µöÍÆºÇÂç½ÅÎÌÆâ¤ÎÁ´¤Æ¤ÎµÍ¤áÊý¤ÎÁȹ礻¤òÆÀ¤ë(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,LL), µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎ̤òÆÀ¤ë(LL,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ), ÁªÂò°ÌÃ֤ʤé¤Ó¤«¤éµÍ¤áÊý¤òÆÀ¤ë(_½Å¤µ¤Ê¤é¤Ó,LL,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ,_µÍ¤áÊý). µöÍÆºÇÂç½ÅÎÌÆâ¤ÎÁ´¤Æ¤ÎµÍ¤áÊý¤ÎÁȹ礻¤òÆÀ¤ë(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,LL) :- findall([_µÍ¤áÊý,_ÁªÂò°ÌÃ֤ʤé¤Ó],µÍ¤áʪ¤ÎºîÀ®(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ),LL). µÍ¤áʪ¤ÎºîÀ®(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ) :- findall(M,between(1,N,M),L), Ñѽ¸¹ç(L,_Ñѽ¸¹ç), µöÍÆºÇÂç½ÅÎÌÆâ¤ÎµÍ¤áÊý¤ÈµÍ¤á¤¿½Å¤µ(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ). µöÍÆºÇÂç½ÅÎÌÆâ¤ÎµÍ¤áÊý¤ÈµÍ¤á¤¿½Å¤µ(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ) :- µöÍÆºÇÂç½ÅÎÌÆâ¤ÎÁªÂò°ÌÃ֤ʤé¤Ó(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ). µöÍÆºÇÂç½ÅÎÌÆâ¤ÎÁªÂò°ÌÃ֤ʤé¤Ó(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó,µÍ¤á¤¿½Å¤µ) :- member(_½¸¹ç,_Ñѽ¸¹ç), '½¸¹ç¤Î½ÅÎ̹ç·×¤ÏµöÍÆºÇÂç½ÅÎÌÆâ'(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ). '½¸¹ç¤Î½ÅÎ̹ç·×¤ÏµöÍÆºÇÂç½ÅÎÌÆâ'(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤¿½Å¤µ) :- '½¸¹ç¤Î½ÅÎ̹ç·×¤Ï'(_ÁªÂò°ÌÃ֤ʤé¤Ó,_½Å¤µ¤Ê¤é¤Ó,_µÍ¤á¤¿½Å¤µ), _µÍ¤á¤¿½Å¤µ =< _µöÍÆºÇÂç½ÅÎÌ. '½¸¹ç¤Î½ÅÎ̹ç·×¤Ï'(_ÁªÂò°ÌÃ֤ʤé¤Ó,_½Å¤µ¤Ê¤é¤Ó,_¹ç·×½ÅÎÌ) :- findsum(Wi,( member(_Í×ÁÇ,_ÁªÂò°ÌÃ֤ʤé¤Ó), nth1(_Í×ÁÇ,_½Å¤µ¤Ê¤é¤Ó,Wi)),_¹ç·×½ÅÎÌ). µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎ̤òÆÀ¤ë(LL,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ) :- findmax(_µÍ¤á¤¿½Å¤µ,member([_,_µÍ¤á¤¿½Å¤µ],LL),_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ). ÁªÂò°ÌÃ֤ʤé¤Ó¤«¤éµÍ¤áÊý¤òÆÀ¤ë(_½Å¤µ¤Ê¤é¤Ó,LL,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ,_µÍ¤áÊý) :- member([_ÁªÂò°ÌÃ֤ʤé¤Ó,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇÂç½ÅÎÌ],LL), findall(_½Å¤µ,( member(_°ÌÃÖ,_ÁªÂò°ÌÃ֤ʤé¤Ó), nth1(_°ÌÃÖ,_½Å¤µ¤Ê¤é¤Ó,_½Å¤µ)),_µÍ¤áÊý). Ñѽ¸¹ç(_Âоݽ¸¹ç,_Ñѽ¸¹ç) :- findall(_Éôʬ½¸¹ç,( Éôʬ½¸¹ç(_Âоݽ¸¹ç,_Éôʬ½¸¹ç)),_Ñѽ¸¹ç). Éôʬ½¸¹ç([], []). Éôʬ½¸¹ç([_|R1], LL) :- Éôʬ½¸¹ç(R1,LL). Éôʬ½¸¹ç([L|R1], [L|R2]) :- Éôʬ½¸¹ç(R1,R2). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). findmax(A,B,C) :- findall(A,B,L), max_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥Ê¥Ã¥×¥µ¥Ã¥¯ÌäÂê(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇ¹â¹ç·×¶â³Û) :- findmax(_¹ç·×²Á³Ê,µÍ¤áʪ¤ÎºîÀ®(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_,_¹ç·×²Á³Ê),_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇ¹â¹ç·×¶â³Û). µÍ¤áʪ¤ÎºîÀ®(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó,_¹ç·×²Á³Ê) :- findall(M,between(1,N,M),L), Ñѽ¸¹ç(L,_Ñѽ¸¹ç), µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç¤Î¹ç·×²Á³Ê(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó,_¹ç·×²Á³Ê). µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç¤Î¹ç·×²Á³Ê(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó,_¹ç·×²Á³Ê) :- µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó), ½¸¹ç¤Î¹ç·×²Á³Ê(_ÁªÂò°ÌÃ֤ʤé¤Ó,_²Á³Ê¤Ê¤é¤Ó,_¹ç·×²Á³Ê). µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_ÁªÂò°ÌÃ֤ʤé¤Ó) :- member(_ÁªÂò°ÌÃ֤ʤé¤Ó,_Ñѽ¸¹ç), '½¸¹ç¤Î½ÅÎ̹ç·×¤ÏµöÍÆºÇÂç½ÅÎÌÆâ'(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó). '½¸¹ç¤Î½ÅÎ̹ç·×¤ÏµöÍÆºÇÂç½ÅÎÌÆâ'(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_ÁªÂò°ÌÃ֤ʤé¤Ó) :- '½¸¹ç¤Î½ÅÎ̹ç·×¤Ï'(_ÁªÂò°ÌÃ֤ʤé¤Ó,_½Å¤µ¤Ê¤é¤Ó,_¹ç·×½ÅÎÌ), _¹ç·×½ÅÎÌ =< _µöÍÆºÇÂç½ÅÎÌ. '½¸¹ç¤Î½ÅÎ̹ç·×¤Ï'(_ÁªÂò°ÌÃ֤ʤé¤Ó,_½Å¤µ¤Ê¤é¤Ó,_¹ç·×½ÅÎÌ) :- findsum(Wi,( member(_Í×ÁÇ,_ÁªÂò°ÌÃ֤ʤé¤Ó), nth1(_Í×ÁÇ,_½Å¤µ¤Ê¤é¤Ó,Wi)),_¹ç·×½ÅÎÌ). ½¸¹ç¤Î¹ç·×²Á³Ê(_½¸¹ç,_²Á³Ê¤Ê¤é¤Ó,_¹ç·×²Á³Ê) :- findsum(Pi,( member(_Í×ÁÇ,_½¸¹ç), nth1(_Í×ÁÇ,_²Á³Ê¤Ê¤é¤Ó,Pi)),_¹ç·×²Á³Ê). Ñѽ¸¹ç(_Âоݽ¸¹ç,_Ñѽ¸¹ç) :- findall(_Éôʬ½¸¹ç,( Éôʬ½¸¹ç(_Âоݽ¸¹ç,_Éôʬ½¸¹ç)),_Ñѽ¸¹ç). Éôʬ½¸¹ç([], []). Éôʬ½¸¹ç([_|R1], LL) :- Éôʬ½¸¹ç(R1,LL). Éôʬ½¸¹ç([L|R1], [L|R2]) :- Éôʬ½¸¹ç(R1,R2). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). findmax(A,B,C) :- findall(A,B,L), max_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/170 # ¤ªÂꡧʬÊ줬¼«Á³¿ôm°Ê²¼¤Î´ûÌóʬ¿ô¤Ç0¤è¤êÂ礭¤¯1¤è¤ê¾®¤µ¤¤¤â¤Î¤ò¾®¤µ¤¤½ç¤Ë¤Ê¤é¤Ù¤ë¡£ # m=3 -> 1/3,1/2,2/3 # m=5 -> 1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5 # # 'ʬÊ줬¼«Á³¿ôm°Ê²¼¤Î´ûÌóʬ¿ô¤Ç0¤è¤êÂ礭¤¯1¤è¤ê¾®¤µ¤¤¤â¤Î¤ò¾®¤µ¤¤½ç¤Ë¤Ê¤é¤Ù¤ë¡£'(_m,_À°Îó¤·¤¿Ê¬¿ô¤Ê¤é¤Ó) :- findall(_ʬ»Ò rdiv _ʬÊì,ʬÊ줴¤È¤Î´ûÌóʬ¿ô(_m,_ʬÊì,_ʬ»Ò),_ʬ¿ô¤Ê¤é¤Ó), sort(_ʬ¿ô¤Ê¤é¤Ó,_À°Îó¤·¤¿Ê¬¿ô¤Ê¤é¤Ó). ʬÊ줴¤È¤Î´ûÌóʬ¿ô(_m,_ʬÊì,_ʬ»Ò) :- between(2,_m,_ʬÊì), ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(2,_ʬÊì,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó), member(_ʬ»Ò,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M,_ʬÊì,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- ʬ»Ò¸õÊä¤òÀ¸À®(_ʬÊì,_¿ô¤Ê¤é¤Ó), ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M,_ʬÊì,_¿ô¤Ê¤é¤Ó,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). ʬ»Ò¸õÊä¤òÀ¸À®(_ʬÊì,_¿ô¤Ê¤é¤Ó) :- succ(_ʬÊì_1,_ʬÊì), findall(N,between(1,_ʬÊì_1,N),_¿ô¤Ê¤é¤Ó). ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(_ʬÊì,_ʬÊì,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- !. ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- 'M¤¬2¤«¤éʬÊì¤Ë¤Ê¤ë¤Þ¤Çʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). 'M¤¬2¤«¤éʬÊì¤Ë¤Ê¤ë¤Þ¤Çʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- 'M¤ÎäÁ'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_¿ô¤Ê¤é¤Ó_2), succ(M,M_2), ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M_2,_ʬÊì,_¿ô¤Ê¤é¤Ó_2,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). 'M¤ÎäÁ'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_¿ô¤Ê¤é¤Ó_2) :- findall(_ʬ»Ò¸õÊä,ʬ»Ò¸õÊä(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_ʬ»Ò¸õÊä),_¿ô¤Ê¤é¤Ó_2). ʬ»Ò¸õÊä(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_ʬ»Ò¸õÊä) :- member(_ʬ»Ò¸õÊä,_¿ô¤Ê¤é¤Ó_1), Ìóʬ¤Ç¤­¤Ê¤¤(M,_ʬÊì,_ʬ»Ò¸õÊä). Ìóʬ¤Ç¤­¤Ê¤¤(M,_ʬÊì,_ʬ»Ò¸õÊä) :- \+(Ìóʬ¤Ç¤­¤ë(M,_ʬÊì,_ʬ»Ò¸õÊä)). Ìóʬ¤Ç¤­¤ë(M,_ʬÊì,_ʬ»Ò¸õÊä) :- 0 is _ʬÊì mod M, 0 is _ʬ»Ò¸õÊä mod M. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1258158172/456 # # [1] ¼ø¶Èñ¸µ¡§ C++ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10195.txt # # º£²ó¤Ï¥Ê¥Ã¥×¥µ¥Ã¥¯ÌäÂê¤Ë¤Ä¤¤¤Æ¹Í¤¨¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£N¸Ä¤Î²Ùʪ¤¬¤¢¤Ã¤Æ¡¢¸Ä¡¹¤Î²Ùʪ¤Î½Å¤µ¤òWi¡¢ÃÍÃʤòPi¤È¤¹¤ë¡£Ã¢¤·i¤Ï1¤«¤éN¤ÎÀ°¿ô¤ò°ÕÌ£¤¹¤ë¡£ # ÂޤˤϺÇÂçW¤Î½Å¤µ¤Þ¤ÇÆþ¤ì¤é¤ì¤ë¤È¤¹¤ë¤È¡¢ºÇÂç¤Ç¤¤¤¯¤éʬ¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¡©¤È¤¤¤¦ÌäÂê¡£ # ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ï¡¢»Ï¤á¤Î°ì¹Ô¤Ë²Ùʪ¤Î¸Ä¿ôN¤¬½ñ¤«¤ì¤Æ¤ª¤ê¡¢¼¡¤Ë½Å¤µ¤¬À°¿ô¤ÇN¹Ôʬ½ñ¤«¤ì¤Æ¤¤¤ë¡£¤½¤Î¼¡¤Î¹Ô¤«¤éN¹Ôʬ¡¢¤½¤ì¤¾¤ì¤Î²Ùʪ¤Î²ÁÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¤È¤¹¤ë¡£ # ²¼¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢£³¸Ä¤Î²Ùʪ¤¬¤¢¤ê¡¢½Å¤ß¤Ï£±£°¡¢£²£°¡¢£±£³¡¢¤Ç # ¤½¤ì¤¾¤ì¤ÎÃÍÃʤϣ²£³¡¢£²£³¡¢£±£°¤È¤¤¤¦¾õ¶·¤òɽ¤¹¡£ # ------------------- # 3 # 10 # 20 # 13 # 23 # 23 # 10 # ------------------- # ²Ùʪ¤Î½Å¤ß¤ÈÃÍÃʤϤȤâ¤Ë¡¢£±¤«¤é£±£°£°¤Þ¤Ç¤ÎÍð¿ô¤ÇÍ¿¤¨¤ë¤³¤È¤È¤¹¤ë¡£ # void_write_data_file(char*file,intN)¤È¤¤¤¦´Ø¿ô¤ò¸Æ¤Ö¤ÈN¸Äʬ¤Î¥Ç¡¼¥¿¤òÍð¿ô¤ÇÀ¸À®¤·¡¢Ê¸»úÎóÊÑ¿ôfile¤ËÆþ¤Ã¤Æ¤¤¤ë # ¥Õ¥¡¥¤¥ë̾¤Î¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢¤½¤³¤Ë¥Ç¡¼¥¿¤òµ­Ï¿¤¹¤ë¡£void_read_data_file(char*file)¤È¤¤¤¦´Ø¿ô¤ò¸Æ¤Ö¤È¡¢Ê¸»úÎóÊÑ¿ôfile¤Ë¤è¤Ã¤ÆÌ¾Á°¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢Âç°èÊÑ¿ô¤Î²Ùʪ¤Î½Å¤ßÇÛÎóW[]¤ÈÃÍÃÊÇÛÎó[]\\\\\¤Ë¥Ç¡¼¥¿¤òÆþÎϤ¹¤ë¡£ '²Ùʪ¤Î½Å¤ß¤ÈÃÍÃʤϤȤâ¤Ë¡¢£±¤«¤é£±£°£°¤Þ¤Ç¤ÎÍð¿ô¤ÇÍ¿¤¨¤ë¤³¤È¤È¤¹¤ë¡£ void_write_data_file(char*file,intN)¤È¤¤¤¦´Ø¿ô¤ò¸Æ¤Ö¤ÈN¸Äʬ¤Î¥Ç¡¼¥¿¤òÍð¿ô¤ÇÀ¸À®¤·¡¢Ê¸»úÎóÊÑ¿ôfile¤ËÆþ¤Ã¤Æ¤¤¤ë ¥Õ¥¡¥¤¥ë̾¤Î¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢¤½¤³¤Ë¥Ç¡¼¥¿¤òµ­Ï¿¤¹¤ë¡£'(_¥Õ¥¡¥¤¥ë̾,N) :- ¥Õ¥¡¥¤¥ë̾¤Î¥Õ¥¡¥¤¥ë¤ò³«¤­(_¥Õ¥¡¥¤¥ë̾), '¤½¤³¤Ë¥Ç¡¼¥¿¤òµ­Ï¿¤¹¤ë¡£'(N), ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë. ¥Õ¥¡¥¤¥ë̾¤Î¥Õ¥¡¥¤¥ë¤ò³«¤­(_¥Õ¥¡¥¤¥ë̾) :- tell(_¥Õ¥¡¥¤¥ë̾). '¤½¤³¤Ë¥Ç¡¼¥¿¤òµ­Ï¿¤¹¤ë¡£'(N) :- writef('%w\n',[N]), forall((between(1,N,_),X is random(100) + 1),writef('%w\n',[X])), forall((between(1,N,_),Y is random(100) + 1),writef('%w\n',[Y])). ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë :- told. ¥Ê¥Ã¥×¥µ¥Ã¥¯ÌäÂê(_¥Õ¥¡¥¤¥ë̾,N,_µöÍÆºÇÂç½ÅÎÌ,_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇ¹â¹ç·×¶â³Û) :- ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤«¤é½Å¤µ¤Ê¤é¤Ó¤È²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_¥Õ¥¡¥¤¥ë̾,N,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó), findmax(_¹ç·×²Á³Ê,µÍ¤áʪ¤ÎºîÀ®(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_,_¹ç·×²Á³Ê),_µÍ¤á¤ë¤³¤È¤Î¤Ç¤­¤ëºÇ¹â¹ç·×¶â³Û). ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤«¤é½Å¤µ¤Ê¤é¤Ó¤È²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_¥Õ¥¡¥¤¥ë̾,N,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó) :- ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤¹(_¥Õ¥¡¥¤¥ë̾,N,_À°¿ô¤Ê¤é¤Ó), ½Å¤µ¤Ê¤é¤Ó¤È²Á³Ê¤Ê¤é¤Ó¤ËʬΥ(N,_À°¿ô¤Ê¤é¤Ó,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó). ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤¹(_¥Õ¥¡¥¤¥ë̾,N,L1) :- see(_¥Õ¥¡¥¤¥ë̾), get_integer(N), get_integers(L1), seen. ½Å¤µ¤Ê¤é¤Ó¤È²Á³Ê¤Ê¤é¤Ó¤ËʬΥ(N,_À°¿ô¤Ê¤é¤Ó,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó) :- length(_½Å¤µ¤Ê¤é¤Ó,N), length(_²Á³Ê¤Ê¤é¤Ó,N), append(_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_À°¿ô¤Ê¤é¤Ó). µÍ¤áʪ¤ÎºîÀ®(N,_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_½¸¹ç,_¹ç·×²Á³Ê) :- findall(M,between(1,N,M),L), Ñѽ¸¹ç(L,_Ñѽ¸¹ç), µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç¤Î¹ç·×²Á³Ê(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_Ñѽ¸¹ç,_½¸¹ç,_¹ç·×²Á³Ê). µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç¤Î¹ç·×²Á³Ê(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_²Á³Ê¤Ê¤é¤Ó,_Ñѽ¸¹ç,_½¸¹ç,_¹ç·×²Á³Ê) :- µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_½¸¹ç), ½¸¹ç¤Î¹ç·×²Á³Ê(_½¸¹ç,_²Á³Ê¤Ê¤é¤Ó,_¹ç·×²Á³Ê). µöÍÆºÇÂç½ÅÎÌÆâ¤Î½¸¹ç(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_Ñѽ¸¹ç,_½¸¹ç) :- member(_½¸¹ç,_Ñѽ¸¹ç), '½¸¹ç¤Î½ÅÎ̹ç·×¤ÏµöÍÆºÇÂç½ÅÎÌÆâ'(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_½¸¹ç). '½¸¹ç¤Î½ÅÎ̹ç·×¤ÏµöÍÆºÇÂç½ÅÎÌÆâ'(_µöÍÆºÇÂç½ÅÎÌ,_½Å¤µ¤Ê¤é¤Ó,_½¸¹ç) :- '½¸¹ç¤Î½ÅÎ̹ç·×¤Ï'(_½¸¹ç,_½Å¤µ¤Ê¤é¤Ó,_¹ç·×½ÅÎÌ), _¹ç·×½ÅÎÌ =< _µöÍÆºÇÂç½ÅÎÌ. '½¸¹ç¤Î½ÅÎ̹ç·×¤Ï'(_½¸¹ç,_½Å¤µ¤Ê¤é¤Ó,_¹ç·×½ÅÎÌ) :- findsum(Wi,( member(_Í×ÁÇ,_½¸¹ç), nth1(_Í×ÁÇ,_½Å¤µ¤Ê¤é¤Ó,Wi)),_¹ç·×½ÅÎÌ). ½¸¹ç¤Î¹ç·×²Á³Ê(_½¸¹ç,_²Á³Ê¤Ê¤é¤Ó,_¹ç·×²Á³Ê) :- findsum(Pi,( member(_Í×ÁÇ,_½¸¹ç), nth1(_Í×ÁÇ,_²Á³Ê¤Ê¤é¤Ó,Pi)),_¹ç·×²Á³Ê). get_integers(L) :- findall(I,(repeat,get_line(Line),(Line=end_of_file,!,fail;read_term_from_atom(Line,I,[]))),L),!. Ñѽ¸¹ç(_Âоݽ¸¹ç,_Ñѽ¸¹ç) :- findall(_Éôʬ½¸¹ç,( Éôʬ½¸¹ç(_Âоݽ¸¹ç,_Éôʬ½¸¹ç)),_Ñѽ¸¹ç). Éôʬ½¸¹ç([], []). Éôʬ½¸¹ç([_|R1], LL) :- Éôʬ½¸¹ç(R1,LL). Éôʬ½¸¹ç([L|R1], [L|R2]) :- Éôʬ½¸¹ç(R1,R2). get_integer(N) :- get_line(Line), read_term_from_atom(Line,N,[]). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). findmax(A,B,C) :- findall(A,B,L), max_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ::C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 127ÂåÌÜ #650 # [1] ¼ø¶Èñ¸µ¡§ £Ã # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤Ä¤¤¤Æ¡¢ # ¼¡¤ÎÎã¤Ë¼¨¤¹¤è¤¦¤Ë¹ÔÈÖ¹æ¤È*¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¤Ê¤ª¡¢*¤Î¿ô¤Ï¡¢£±¹ÔÌܤÏn¸Ä¤È¤·¡¢£±¹ÔËè¤Ë£±¤º¤Ä¤Ø¤Ã¤Æ¤¤¤¯¤³¤È¤È¤¹¤ë¡£ # ɽ¼¨·ë²Ì¤ÎÎã # Àµ¤ÎÀ°¿ô¡§£· # £±******* # £²****** # £³***** # £´**** # £µ*** # £¶** # £·* # ¤Î¤è¤¦¤Ëºî¤ì¤È¤Î¤³¤È¤Ç¤¹¡£ # # [3] ´Ä¶­ # [3.1]linux # [3.2] gcc # [3.3]C # [4]£¶·î£²£°Æü # [5]·«¤êÊÖ¤·¤Þ¤Ç¤Ç¤¹¡¢´Ø¿ô¤Þ¤Ç¤Ï¤¤¤Ã¤Æ¤¤¤Þ¤»¤ó¡¢¤ª´ê¤¤¤·¤Þ¤¹ '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤Ä¤¤¤Æ¡¢ ¼¡¤ÎÎã¤Ë¼¨¤¹¤è¤¦¤Ë¹ÔÈÖ¹æ¤È*¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ ¤Ê¤ª¡¢*¤Î¿ô¤Ï¡¢£±¹ÔÌܤÏn¸Ä¤È¤·¡¢£±¹ÔËè¤Ë£±¤º¤Ä¤Ø¤Ã¤Æ¤¤¤¯¤³¤È¤È¤¹¤ë¡£ ¤Þ¤¿¡¢£°¤äÉé¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤¬½ªÎ»¤¹¤ë¤è¤¦¤Ë¤»¤è¡£ ɽ¼¨·ë²Ì¤ÎÎã Àµ¤ÎÀ°¿ô¡§£· £±******* £²****** £³***** £´**** £µ*** £¶** £·* ¤Î¤è¤¦¤Ëºî¤ì¤È¤Î¤³¤È¤Ç¤¹¡£' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤Ä¤¤¤Æ¡¢Îã¤Ë¼¨¤¹¤è¤¦¤Ë¹ÔÈÖ¹æ¤ÈÀ±¤òɽ¼¨¤¹¤ë'. '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤Ä¤¤¤Æ¡¢Îã¤Ë¼¨¤¹¤è¤¦¤Ë¹ÔÈÖ¹æ¤ÈÀ±¤òɽ¼¨¤¹¤ë' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤è¤Ã¤Æ¡¢n¸Ä¤ÎÀ±¤Ê¤é¤Ó¤òÍѰդ¹¤ë'(_n¸Ä¤ÎÀ±¤Ê¤é¤Ó), '¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó¤òɽ¼¨¤¹¤ë'(_n¸Ä¤ÎÀ±¤Ê¤é¤Ó). '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤è¤Ã¤Æ¡¢n¸Ä¤ÎÀ±¤Ê¤é¤Ó¤òÍѰդ¹¤ë'(_n¸Ä¤ÎÀ±¤Ê¤é¤Ó) :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤è¤Ã¤Æ(_n), n¸Ä¤ÎÀ±¤Ê¤é¤Ó¤òÍѰդ¹¤ë(_n,_n¸Ä¤ÎÀ±¤Ê¤é¤Ó). '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿£±°Ê¾å¤ÎÀ°¿ô£î¤Ë¤è¤Ã¤Æ(_n) :- À°¿ô¤òÆÀ¤ë('£±°Ê¾å¤ÎÀ°¿ô£î',_n >= 1,_n). n¸Ä¤ÎÀ±¤Ê¤é¤Ó¤òÍѰդ¹¤ë(_n,_n¸Ä¤ÎÀ±¤Ê¤é¤Ó) :- findall(*,between(1,_n,_),_n¸Ä¤ÎÀ±¤Ê¤é¤Ó). '¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó¤òɽ¼¨¤¹¤ë'(_n¸Ä¤ÎÀ±¤Ê¤é¤Ó) :- forall('¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó¤ò'(_n¸Ä¤ÎÀ±¤Ê¤é¤Ó,_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó),ɽ¼¨¤¹¤ë(_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó)). '¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó¤ò'(_n¸Ä¤ÎÀ±¤Ê¤é¤Ó,_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó) :- append(L1,[_À±¤Ê¤é¤Ó¤ÎºÇ½é¤ÎÍ×ÁÇ|_À±¤Ê¤é¤Ó¤Î»Ä¤ê¤ÎÍ×ÁÇ],_n¸Ä¤ÎÀ±¤Ê¤é¤Ó), length([_|L1],_¹ÔÈÖ¹æ), ¹ÔÈÖ¹æ¤ÈÀ±¤Ê¤é¤Ó¤òʸ»úÎó(_¹ÔÈÖ¹æ,[_À±¤Ê¤é¤Ó¤ÎºÇ½é¤ÎÍ×ÁÇ|_À±¤Ê¤é¤Ó¤Î»Ä¤ê¤ÎÍ×ÁÇ],_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó). ¹ÔÈÖ¹æ¤ÈÀ±¤Ê¤é¤Ó¤òʸ»úÎó(_¹ÔÈÖ¹æ,_À±¤Ê¤é¤Ó,_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó) :- atomic_list_concat([_¹ÔÈÖ¹æ|_À±¤Ê¤é¤Ó],_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó). ɽ¼¨¤¹¤ë(_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó) :- writef('%w\n',[_¹ÔÈÖ¹æ¤ÈÀ±Ê¸»úÎó]). % À°¿ô¤òÆÀ¤ë/3 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ::C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 160ÂåÌÜ #754 # [1] ŽÌŽßŽÛޏŽÞŽ×ŽÐŽÝޏŽÞ # [2] 1+2+3+....+n¤¬1000¤Ë¤Ê¤ëľÁ°¤ÎÊÑ¿ôn¤ÎÃͤòµá¤á¤è # '1+2+3+....+n¤¬1000¤Ë¤Ê¤ëľÁ°¤ÎÊÑ¿ôn¤ÎÃͤòµá¤á¤è'(_n) :- '1+2+3+....+n¤¬'(_n,_¹ç·×), '1000¤Ë¤Ê¤ëľÁ°¤ÎÊÑ¿ôn¤ÎÃÍ'(_¹ç·×,_n),!. '1+2+3+....+n¤¬'(_n,_¹ç·×) :- nth1(_n,_,_), '1+2+3+....+n'(_n,_¹ç·×). '1+2+3+....+n'(_n,_¹ç·×) :- findall(_À°¿ô,between(1,_n,_À°¿ô),_1¤«¤én¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), sum_list(_1¤«¤én¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_¹ç·×). '1000¤Ë¤Ê¤ëľÁ°¤ÎÊÑ¿ôn¤ÎÃÍ'(_¹ç·×,_n) :- _¹ç·× + _n + 1 >= 1000. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364009659/540 # # 540 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§2013/06/09(Æü) 20:07:42.82 (p)ID:FF7F/XIY(6)! # ¼ÁÌä¤Ð¤Ã¤«¤ÇŽºŽÞŽÒŽÝŽÅ޻޲¡£ # [1..4] ¡ä [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)] # ¤ß¤¿¤¤¤Ë½ÐÎϤ·¤¿¤¤¡£ # pairUp :: [a] -> [(a, a)] # pairUp list = case (list) of # [] -> [] # [x, y] -> [(x, y)] # (x:y:xs) -> (x, y) : pairUp (x:xs)¤À¤È # [(1,2),(1,3),(1,4)]¤Þ¤Ç¤·¤«½Ð¤Ê¤¤¡£ # (x:y:xs) -> (x, y) : pairUp (x:xs) ++ pairUp (y:xs) # ¤ä¤ë¤È½ÐÎÏ¥«¥ª¥¹ # # 541 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§sage ¡§2013/06/09(Æü) 20:22:05.24 # pairUp :: [a] -> [(a, a)] # pairUp [] = [] # pairUp (x:xs) = map ((,) x) xs ++ pairUp xs # pairUp(_m,_n,L) :- findall(N,between(_m,_n,N),L1), pairUp(L1,L). pairUp([],[]). pairUp([X|R1],R2) :- pairUp(X,R1,R2,R3), pairUp(R1,R3). pairUp(X,[],R,R). pairUp(X,[Y|R1],[(X,Y)|R2],R) :- pairUp(X,R1,R2,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364009659/540 # # 540 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§2013/06/09(Æü) 20:07:42.82 (p)ID:FF7F/XIY(6)! # ¼ÁÌä¤Ð¤Ã¤«¤ÇŽºŽÞŽÒŽÝŽÅ޻޲¡£ # [1..4] ¡ä [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)] # ¤ß¤¿¤¤¤Ë½ÐÎϤ·¤¿¤¤¡£ # pairUp :: [a] -> [(a, a)] # pairUp list = case (list) of # [] -> [] # [x, y] -> [(x, y)] # (x:y:xs) -> (x, y) : pairUp (x:xs)¤À¤È # [(1,2),(1,3),(1,4)]¤Þ¤Ç¤·¤«½Ð¤Ê¤¤¡£ # (x:y:xs) -> (x, y) : pairUp (x:xs) ++ pairUp (y:xs) # ¤ä¤ë¤È½ÐÎÏ¥«¥ª¥¹ # # 541 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§sage ¡§2013/06/09(Æü) 20:22:05.24 # pairUp :: [a] -> [(a, a)] # pairUp [] = [] # pairUp (x:xs) = map ((,) x) xs ++ pairUp xs # pairUp(_m,_n,L) :- findall(N,between(_m,_n,N),L1), pairUp(L1,L). pairUp([],[]). pairUp([X|R1],R2) :- pairUp(X,R1,R2,R3), pairUp(R1,R3). pairUp(X,[],R,R). pairUp(X,[Y|R1],[(X,Y)|R2],R) :- pairUp(X,R1,R2,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ::C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 160ÂåÌÜ #754 # [1] ŽÌŽßŽÛޏŽÞŽ×ŽÐŽÝޏŽÞ # [2] 1+2+3+....+n¤¬1000¤Ë¤Ê¤ëľÁ°¤ÎÊÑ¿ôn¤ÎÃͤòµá¤á¤è # '1+2+3+....+n¤¬1000¤Ë¤Ê¤ëľÁ°¤ÎÊÑ¿ôn¤ÎÃͤòµá¤á¤è'(_n) :- between(1,1000,_n), findall(M,between(1,_n,M),L), sum_list(L,Sum), Sum + _n + 1 >= 1000. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 158ÂåÌÜ #104 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¡¡¡¡100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á¡¢¤½¤Îɽ¼¨¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤¿¤À¤·¡¢µá¤á¤ëÁÇ¿ô¤ÎÎ̤ϰú¿ô¤È¤·¤Æ´Ø¿ô¦¤ËÅϤ·¤Æµá¤á¤ë¤³¤È¤È¤¹¤ë¡£ # # ¡¡¡¡¡Ú´Ø¿ô»ÅÍÍ¡Û # ¡¡¡¡Ìá¤êÃÍ:¤Ê¤· # ¡¡¡¡´Ø¿ô̾:prime # ¡¡¡¡°ú¿ô:int n # '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á¡¢¤½¤Îɽ¼¨¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢µá¤á¤ëÁÇ¿ô¤ÎÎ̤ϰú¿ô¤È¤·¤Æ´Ø¿ô¦¤ËÅϤ·¤Æµá¤á¤ë¤³¤È¤È¤¹¤ë¡£'(_n) :- '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òn¸Äµá¤á'(_n,_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó), ¤½¤Îɽ¼¨¤ò¤¹¤ë(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó). '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òn¸Äµá¤á'(_n,_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findnsols(_n,_ÁÇ¿ô,'100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á'(_ÁÇ¿ô),_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó),!. '100°Ê²¼¤Þ¤Ç¤ÎÁÇ¿ô¤òµá¤á'(_ÁÇ¿ô) :- '100°Ê²¼¤Þ¤Ç¤Î'(_ÁÇ¿ô¸õÊä), ÁÇ¿ô¤òµá¤á(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô). '100°Ê²¼¤Þ¤Ç¤Î'(_ÁÇ¿ô¸õÊä) :- findall(N,between(2,100,N),_ÁÇ¿ô¸õÊä). ÁÇ¿ô¤òµá¤á(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_ÁÇ¿ô¸õÊä,_ÁÇ¿ô). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],X) :- äÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,L,X). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,_,A). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,L,X) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,X). äÁ(_,[],[]) :- !. äÁ(N,L,R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(N,L,R2). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤òäÁ¤Ë³Ý¤±¤ë'(N,[A|R1],L) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,L,R2), äÁ(N,R1,R2). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,R2,R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò'(A,N). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò¼è¤ê½ü¤¯'(N,A,R1,[A|R2],R2) :- 'N¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤Ï¼è¤ê½ü¤«¤Ê¤¤'(A,N). 'N¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ò'(A,N) :- 0 is A mod N. 'N¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤Ï¼è¤ê½ü¤«¤Ê¤¤'(A,N) :- \+(0 is A mod N). ¤½¤Îɽ¼¨¤ò¤¹¤ë(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_n¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,' ',_n¸Ä¤ÎÁÇ¿ôʸ»úÎó), writef('%w\n',[_n¸Ä¤ÎÁÇ¿ôʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ½Ðŵ::¥Ñ¥¹¥ï¡¼¥É¸þ¤±Ê¸»úÎ󸡺º # Ⱦ³Ñ±Ñ¿ô»ú8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼(_ʸ»úÎó) :- '8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼'(_ʸ»úÎó), forall(sub_atom(_ʸ»úÎó,_,1,_,_ʸ»ú),Ⱦ³Ñ±Ñ¿ô(_ʸ»ú)). Ⱦ³Ñ±Ñ¿ô»ú¤ò¤½¤ì¤¾¤ì1¼ïÎà°Ê¾å´Þ¤à8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼(_ʸ»úÎó) :- '8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼'(_ʸ»úÎó), forall(sub_atom(_ʸ»úÎó,_,1,_,_ʸ»ú),Ⱦ³Ñ±Ñ¿ô(_ʸ»ú)), Ⱦ³Ñ±Ñ»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó), Ⱦ³Ñ¿ô»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó). Ⱦ³Ñ±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤ò¤½¤ì¤¾¤ì1¼ïÎà°Ê¾å´Þ¤à8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼(_ʸ»úÎó) :- '8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼'(_ʸ»úÎó), forall(sub_atom(_ʸ»úÎó,_,1,_,_ʸ»ú),Ⱦ³Ñ±Ñ¿ô(_ʸ»ú)), Ⱦ³Ñ±ÑÂçʸ»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó), Ⱦ³Ñ±Ñ¾®Ê¸»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó), Ⱦ³Ñ¿ô»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó). Ⱦ³Ñ±Ñ¿ô»úµ­¹æ¤ò¤½¤ì¤¾¤ì1¼ïÎà°Ê¾å´Þ¤à8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼(_ʸ»úÎó) :- '8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼'(_ʸ»úÎó), forall(sub_atom(_ʸ»úÎó,_,1,_,_ʸ»ú),Ⱦ³Ñ±Ñ¿ô»úµ­¹æ(_ʸ»ú)), Ⱦ³Ñ±ÑÂçʸ»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó), Ⱦ³Ñ±Ñ¾®Ê¸»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó), Ⱦ³Ñ¿ô»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó), Ⱦ³Ñ±Ñµ­¹æ¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó). '8ʸ»ú°Ê¾å100ʸ»ú°Ê²¼'(_ʸ»úÎó) :- atom_length(_ʸ»úÎó,_ʸ»úÎó¤ÎŤµ), between(8,100,_ʸ»úÎó¤ÎŤµ),!. Ⱦ³Ñ±Ñ»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó) :- sub_atom(_ʸ»úÎó,_,1,_,_Ⱦ³Ñ±Ñ»ú), Ⱦ³Ñ±Ñ»ú(_Ⱦ³Ñ±Ñ»ú),!. Ⱦ³Ñ¿ô»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó) :- sub_atom(_ʸ»úÎó,_,1,_,_Ⱦ³Ñ¿ô»ú), Ⱦ³Ñ±Ñ»ú(_Ⱦ³Ñ¿ô»ú). Ⱦ³Ñ±ÑÂçʸ»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó) :- sub_atom(_ʸ»úÎó,_,1,_,_Ⱦ³Ñ±ÑÂçʸ»ú), Ⱦ³Ñ±ÑÂçʸ»ú(_Ⱦ³Ñ±ÑÂçʸ»ú),!. Ⱦ³Ñ±Ñ¾®Ê¸»ú¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó) :- sub_atom(_ʸ»úÎó,_,1,_,_Ⱦ³Ñ±Ñ¾®Ê¸»ú), Ⱦ³Ñ±Ñ¾®Ê¸»ú(_Ⱦ³Ñ±Ñ¾®Ê¸»ú),!. Ⱦ³Ñ±Ñµ­¹æ¤¬°ìʸ»ú¤Ï¤¢¤ë(_ʸ»úÎó) :- sub_atom(_ʸ»úÎó,_,1,_,_Ⱦ³Ñ±Ñµ­¹æ), Ⱦ³Ñ±Ñµ­¹æ(_Ⱦ³Ñ±Ñµ­¹æ),!. Ⱦ³Ñ±Ñ¿ô(_ʸ»ú) :- Ⱦ³Ñ±Ñ»ú(_Ⱦ³Ñ±Ñ»ú). Ⱦ³Ñ±Ñ¿ô(_¿ô»ú) :- Ⱦ³Ñ¿ô»ú(_Ⱦ³Ñ¿ô»ú). Ⱦ³Ñ±Ñ¿ô»úµ­¹æ(_Ⱦ³Ñ±Ñ¿ô) :- Ⱦ³Ñ±Ñ¿ô(_Ⱦ³Ñ±Ñ¿ô). Ⱦ³Ñ±Ñ¿ô»úµ­¹æ(_Ⱦ³Ñ±Ñµ­¹æ) :- Ⱦ³Ñ±Ñµ­¹æ(_Ⱦ³Ñ±Ñµ­¹æ). Ⱦ³Ñ±Ñ»ú(_Ⱦ³Ñ±Ñ¾®±Ñ»ú) :- Ⱦ³Ñ±Ñ¾®Ê¸»ú(_Ⱦ³Ñ±Ñ¾®Ê¸»ú). Ⱦ³Ñ±Ñ»ú(_Ⱦ³Ñ±ÑÂçʸ»ú) :- Ⱦ³Ñ±ÑÂçʸ»ú(_Ⱦ³Ñ±ÑÂçʸ»ú). Ⱦ³Ñ±Ñ¾®Ê¸»ú(_Ⱦ³Ñ±Ñ¾®Ê¸»ú) :- _Ⱦ³Ñ±Ñ¾®Ê¸»ú @>= a, _Ⱦ³Ñ±Ñ¾®Ê¸»ú @=< z. Ⱦ³Ñ±ÑÂçʸ»ú(_Ⱦ³Ñ±ÑÂçʸ»ú) :- _Ⱦ³Ñ±ÑÂçʸ»ú @>= 'A', _Ⱦ³Ñ±ÑÂçʸ»ú @=< 'Z'. Ⱦ³Ñ¿ô»ú(_Ⱦ³Ñ¿ô»ú) :- _Ⱦ³Ñ¿ô»ú @>= '0', _Ⱦ³Ñ¿ô»ú @=< '9'. Ⱦ³Ñ±Ñµ­¹æ(_Ⱦ³Ñ±Ñµ­¹æ) :- member(_Ⱦ³Ñ±Ñµ­¹æ,['!','"','#','$','%','&','\'','(',')','=','-','~','^','|','\\','@','[','}',']','+','*',';',':','<',',','>','.','?','/','_','\']). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part4 #520 # ¤ªÂê: £î¤ò£í¤Ç³ä¤Ã¤ÆÍ¾¤ê¤òÀÚ¤ê¾å¤²¤ë´Ø¿ô¤òºî¤ì¡ª # £î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡© # £î¤Ï£°¤Þ¤¿¤Ï¼«Á³¿ô¡¢£í¤Ï¼«Á³¿ô¤È¤¹¤ë¡£ # 10 3 -> 4 '£î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡©'(_n,_m,_´ö¤Ä) :- '£î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò'(_n,_m,_¢¤Ê¤é¤Ó,_¢¤Î²ÄǽÀ­), once('¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡©'(_¢¤Ê¤é¤Ó,_¢¤Ê¤é¤Ó¤Î²ÄǽÀ­,_´ö¤Ä)). '£î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò'(_n,_m,_¢¤Ê¤é¤Ó,_¢¤Ê¤é¤Ó¤Î²ÄǽÀ­) :- findall(_¢,findnsols(_m,_¾ýÎØ,between(1,_n,_),_¢),_¢¤Ê¤é¤Ó,_¢¤Ê¤é¤Ó¤Î²ÄǽÀ­). '¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡©'(_¢¤Ê¤é¤Ó,_¢¤Ê¤é¤Ó¤Î²ÄǽÀ­,_´ö¤Ä) :- _¢¤Ê¤é¤Ó¤Î²ÄǽÀ­ = [], length(_¢¤Ê¤é¤Ó,_´ö¤Ä). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part4 #520 # ¤ªÂê: £î¤ò£í¤Ç³ä¤Ã¤ÆÍ¾¤ê¤òÀÚ¤ê¾å¤²¤ë´Ø¿ô¤òºî¤ì¡ª # £î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡© # £î¤Ï£°¤Þ¤¿¤Ï¼«Á³¿ô¡¢£í¤Ï¼«Á³¿ô¤È¤¹¤ë¡£ # 10 3 -> 4 '£î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡©'(_n,_m,_´ö¤Ä) :- findall(_¢,findnsols(_m,_¾ýÎØ,between(1,_n,_),_¢),_¢¤Ê¤é¤Ó), length(_¢¤Ê¤é¤Ó,_´ö¤Ä). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part4 #520 # ¤ªÂê: £î¤ò£í¤Ç³ä¤Ã¤ÆÍ¾¤ê¤òÀÚ¤ê¾å¤²¤ë´Ø¿ô¤òºî¤ì¡ª # £î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡© # £î¤Ï£°¤Þ¤¿¤Ï¼«Á³¿ô¡¢£í¤Ï¼«Á³¿ô¤È¤¹¤ë¡£ # 10 3 -> 4 '£î¸Ä¤Î¾ýÎØ¤ò£í¸ÄÆþ¤ê¤Î¢¤ËÁ´¤ÆÆþ¤ì¤ë¤Ë¤Ï¢¤ò¾¯¤Ê¤¯¤È¤â´ö¤ÄÍѰդ¹¤ì¤Ð¤è¤¤¤«¡©'(_n,_m,_´ö¤Ä) :- findall(_¢,findnsols(_m,_¾ýÎØ,between(1,_n,_¾ýÎØ),_¢),_¢¤Ê¤é¤Ó), length(_¢¤Ê¤é¤Ó,_´ö¤Ä). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/db/1371476534/493 # SQLServer2008R2¤Ç¤¹¡¥ # ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤ÏDATE¡ÊYYYYMM¤Î6¤±¤¿¤Îint·¿)¡¤CODE(varchar·¿)¡¤VALUE(float·¿) # ¤Î3¥«¥é¥à¤«¤é¤Ê¤ê¤Þ¤¹¡¥³ÆDATE¤Î³ÆCODE¤ËÂФ·¤Æ²áµî3¤«·îʬ¤ÎÁíϤò»»½Ð¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡¥ # ¸µ¥Æ¡¼¥Ö¥ë # DATE, CODE, VALUE # .... # 200101, AAA, 1 # 200102, AAA, 2 # 200103, AAA, 3 # 200104, AAA, 4 # 200101, BBB, 1 # .... # # Íߤ·¤¤·ë²Ì # 200103, AAA, 6 # 200104, AAA, 9 # ....... # # ²¼µ­¤Î¤è¤¦¤ÊSQL¤ò½ñ¤¤¤¿¤Î¤Ç¤¹¤¬¡¤Æ±¤¸·ë²Ì¤Î¹Ô¤¬12¤«·îʬ¤Ç¤Æ¤­¤Þ¤¹¡¥ # ²¿½è¤ò½¤Àµ¤¹¤ì¤Ð¤è¤í¤·¤¤¤Ç¤·¤ç¤¦¤«¡©¤â¤·¤¯¤ÏÁ´Á³°ã¤¦SQL¤Ç¤·¤ç¤¦¤«¡© # # SELECT A.DATE, A.CODE, SUM(B.VALUE) OVER (PARTITION BY B.DATE, B.CODE) # FROM TABLE A, TABLE B # WHERE A.CODE=B.CODE AND B.DATE>=A.DATE AND B.DATE>=(A.DATE¤Î3¤«·îÁ°¢«·×»»¼°¤¬Ä¹¤¤¤Î¤Ç¾Êά¤Ç¤¹) # ORDER BY A.DATE, A.CODE # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡¥ # 'A'(200101,'AAA',1). 'A'(200102,'AAA',2). 'A'(200103,'AAA',3). 'A'(200104,'AAA',4). 'A'(200101,'BBB',1). ²áµî»°¥ö·î¤Î½¸·×(_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó) :- '_DATE,_CODE¤ò¸°¤È¤·¤Æ¡¢²áµî»°¥ö·î¤Î_VALUE¤Î½¸·×'(_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó). '_DATE,_CODE¤ò¸°¤È¤·¤Æ¡¢²áµî»°¥ö·î¤Î_VALUE¤Î½¸·×'(_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó) :- '_DATE,_CODE¤ò¸°¤È¤¹¤ë'(_DATE_CODE¤Ê¤é¤Ó), findall([_DATE,_CODE,_½¸·×],( '²áµî»°¥ö·î¤ÎÁ´¤Æ¤Î_DATE,_CODE¤ËÂФ·¤Æ¡¢_VALUE¤ò½¸Ì󤹤ë'(_DATE,_CODE,_DATE_CODE¤Ê¤é¤Ó,_½¸·×)),_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó). '_DATE,_CODE¤ò¸°¤È¤¹¤ë'(_DATE_CODE¤Ê¤é¤Ó) :- setof([_DATE,_CODE],[_DATE,_CODE,_VALUE] ^ 'A'(_DATE,_CODE,_VALUE),_DATE_CODE¤Ê¤é¤Ó). '²áµî»°¥ö·î¤ÎÁ´¤Æ¤Î_DATE,_CODE¤ËÂФ·¤Æ¡¢_VALUE¤ò½¸Ì󤹤ë'(_DATE,_CODE,_DATE_CODE¤Ê¤é¤Ó,_½¸·×) :- member([_DATE,_CODE],_DATE_CODE¤Ê¤é¤Ó), '²áµî»°¥ö·î¤Î_DATE,_CODE¤Ç_VAULE¤ò½¸Ìó'(_DATE,_CODE,_½¸·×). '²áµî»°¥ö·î¤Î_DATE,_CODE¤Ç_VAULE¤ò½¸Ìó'(_DATE,_CODE,_½¸·×) :- '3¥ö·îÁ°¤Îµ¯ÅÀ·î'(_DATE,_3¥ö·îÁ°¤Îµ¯ÅÀ·î), findsum(_VALUE,( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤Ï²áµî»°¥ö·î¤ÎÈÏ°ÏÆâ(_DATE,_CODE,_3¥ö·îÁ°¤Îµ¯ÅÀ·î,_VALUE)),_½¸·×). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤Ï²áµî»°¥ö·î¤ÎÈÏ°ÏÆâ(_DATE,_CODE,_3¥ö·îÁ°¤Îµ¯ÅÀ·î,_VALUE) :- 'A'(_DATE_1,_CODE,_VALUE), between(_3¥ö·îÁ°¤Îµ¯ÅÀ·î,_DATE,_DATE_1). '3¥ö·îÁ°¤Îµ¯ÅÀ·î'(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î) :- º£·î¤¬1·î¤«¤é3·î¤ÎÈϰϤǤÏÁ°Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î),!. '3¥ö·îÁ°¤Îµ¯ÅÀ·î'(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î) :- º£·î¤¬4·î¤«¤é12·î¤ÎÈϰϤǤϺ£Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î). º£·î¤¬1·î¤«¤é3·î¤ÎÈϰϤǤÏÁ°Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀ·î) :- M is _º£·î mod 100, M =< 3, _3¥ö·îÁ°¤Îµ¯ÅÀ·î is _º£·î - 100 + 9. º£·î¤¬4·î¤«¤é12·î¤ÎÈϰϤǤϺ£Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀ·î) :- _3¥ö·îÁ°¤Îµ¯ÅÀ·î is _º£·î - 3. findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï Àڤ俥ȥé¥ó¥×¤òÍѰդ¹¤ë(_Àڤ俥ȥé¥ó¥×) :- '52Ëç¤ÎÀ°Îó¤·¤¿¥«¡¼¥É'(_52Ëç¤ÎÀ°Îó¤·¤¿¥«¡¼¥É), ¥·¥ã¥Ã¥Õ¥ë(_52Ëç¤ÎÀ°Îó¤·¤¿¥«¡¼¥É,_Àڤ俥ȥé¥ó¥×). '52Ëç¤ÎÀ°Îó¤·¤¿¥«¡¼¥É'(_52Ëç¤ÎÀ°Îó¤·¤¿¥«¡¼¥É) :- findall([_¿ô,_¥¹¡¼¥È], '¥«¡¼¥É¤ò¿ô¡¦¥¹¡¼¥È½ç¤ËÀ¸À®¤¹¤ë'(_¿ô,_¥¹¡¼¥È),_52Ëç¤ÎÀ°Îó¤·¤¿¥«¡¼¥É). '¥«¡¼¥É¤ò¿ô¡¦¥¹¡¼¥È½ç¤ËÀ¸À®¤¹¤ë'(_¿ô,_¥¹¡¼¥È) :- between(1,13,_¿ô), member(_¥¹¡¼¥È,[¥¹¥Ú¡¼¥É,¥Ï¡¼¥È,¥À¥¤¥ä,¥¯¥é¥Ö]). ¥·¥ã¥Ã¥Õ¥ë([],[]) :- !. ¥·¥ã¥Ã¥Õ¥ë(L,[A|R2]) :- °ÌÃÖ¤ò¼¨¤¹Íð¿ô¤ò»È¤¤°ìË示¤Ä¼è¤ê½Ð¤·¤Æ¹Ô¤¯¤³¤È¤Ë¤è¤ê¥·¥ã¥Ã¥Õ¥ë¤¹¤ë(L,A,R2). °ÌÃÖ¤ò¼¨¤¹Íð¿ô¤ò»È¤¤°ìË示¤Ä¼è¤ê½Ð¤·¤Æ¹Ô¤¯¤³¤È¤Ë¤è¤ê¥·¥ã¥Ã¥Õ¥ë¤¹¤ë(L,A,R2) :- °ÌÃÖ¤ò¼¨¤¹Íð¿ô¤ò»È¤¤°ìË示¤Ä¼è¤ê½Ð¤·¤Æ¹Ô¤¯(L,A,R2), select(A,L,R1), ¥·¥ã¥Ã¥Õ¥ë(R1,R2). °ÌÃÖ¤ò¼¨¤¹Íð¿ô¤ò»È¤¤°ìË示¤Ä¼è¤ê½Ð¤·¤Æ¹Ô¤¯(L1,A,R2):- length(L1,Len), _Íð¿ô is random(Len), nth0(_Íð¿ô,L1,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % ¥«¥ì¥ó¥À¡¼¤Î·Á¼°(²¿ÍËÆü¤«¤é»Ï¤Þ¤ë¤«)¤È % ·îÆü¿ô¤È£±Æü¤ÎÍËÆü¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë»þ % ¥«¥ì¥ó¥À¡¼¤ò¤Ê¤é¤Ó¤ËÆÀ¤ë¡£ % Âè°ì½µ¤ÈºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ¤·¤¿ÍËÆüµ¯ÅÀ·î¥«¥ì¥ó¥À¡¼ÊäÀµ(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_¥«¥ì¥ó¥À¡¼) :- ÍËÆüµ¯ÅÀ·î¥«¥ì¥ó¥À¡¼(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_¥«¥ì¥ó¥À¡¼_1), Âè°ì½µ¤ÈºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ¤·¤¿(_¥«¥ì¥ó¥À¡¼_1,_¥«¥ì¥ó¥À¡¼). ÍËÆüµ¯ÅÀ·î¥«¥ì¥ó¥À¡¼(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_¥«¥ì¥ó¥À¡¼) :- findall(N,between(1,_·îÆü¿ô,N),_Æü¤Ê¤é¤Ó), µ¯ÅÀÍËÆüÈÖ¹æ¤òÆÀ¤ë(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_µ¯ÅÀÍËÆüÈÖ¹æ), ÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(_µ¯ÅÀÍËÆüÈÖ¹æ,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼). µ¯ÅÀÍËÆüÈÖ¹æ¤òÆÀ¤ë(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_µ¯ÅÀÍËÆüÈÖ¹æ) :- ÍËÆüÈÖ¹æ(_ÍËÆüÈÖ¹æ_1,_µ¯ÅÀÍËÆü·Á¼°), ÍËÆüÈÖ¹æ(_ÍËÆüÈÖ¹æ,_1Æü¤ÎÍËÆü), _µ¯ÅÀÍËÆüÈÖ¹æ is (7 - (_ÍËÆüÈÖ¹æ - _ÍËÆüÈÖ¹æ_1)) mod 7. ÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(0,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼) :- 'N¸ÄÁÈ'(7,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼),!. ÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(_ÍËÆüÈÖ¹æ,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼) :- ÀèÆ¬¤ËÊÑ¿ôÆü¤òÉղä·¤ÆÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(_ÍËÆüÈÖ¹æ,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼). ÀèÆ¬¤ËÊÑ¿ôÆü¤òÉղä·¤ÆÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(_ÍËÆüÈÖ¹æ,_Æü¤Ê¤é¤Ó,[L0|LL]) :- length(L0,_ÍËÆüÈÖ¹æ), append(L0,L1,_Æü¤Ê¤é¤Ó), 'N¸ÄÁÈ'(7,L1,LL). ÍËÆüÈÖ¹æ(0,ÆüÍË) :- !. ÍËÆüÈÖ¹æ(1,·îÍË) :- !. ÍËÆüÈÖ¹æ(2,²ÐÍË) :- !. ÍËÆüÈÖ¹æ(3,¿åÍË) :- !. ÍËÆüÈÖ¹æ(4,ÌÚÍË) :- !. ÍËÆüÈÖ¹æ(5,¶âÍË) :- !. ÍËÆüÈÖ¹æ(6,ÅÚÍË) :- !. 'N¸ÄÁÈ'(_,[],[]) :- !. 'N¸ÄÁÈ'(N,L,[U|R]) :- ÀèÆ¬¤«¤éN¸Ä(N,L,U,R1), 'N¸ÄÁÈ'(N,R1,R). ÀèÆ¬¤«¤éN¸Ä(N,L1,L2,R) :- 'L1¤ÎÍ×ÁÇ¿ô¤ÏN¸Ä°Ê¾å'(N,L1,L2,R),!. ÀèÆ¬¤«¤éN¸Ä(_,L,L,[]). 'L1¤ÎÍ×ÁÇ¿ô¤ÏN¸Ä°Ê¾å'(N,L1,L2,R) :- length(L2,N), append(L2,R,L1). Âè°ì½µ¤ÈºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ¤·¤¿([L|LL1],[[_1,_2,_3,_4,_5,_6,_7]|LL2]) :- Âè°ì½µ¤òÊÑ¿ô¤ÇÊäÀµ(L,[_1,_2,_3,_4,_5,_6,_7]), ºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ(LL1,LL2). Âè°ì½µ¤òÊÑ¿ô¤ÇÊäÀµ(L,[_1,_2,_3,_4,_5,_6,_7]) :- append(_,L,[_1,_2,_3,_4,_5,_6,_7]). ºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ(LL1,LL2) :- append(LL1_1,[L_2],LL1), append(L_2,_,[_11,_12,_13,_14,_15,_16,_17]), append(LL1_1,[[_11,_12,_13,_14,_15,_16,_17]],LL2). ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë([],_). ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë([A|R],V) :- ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë(A,R,V). ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë(A,R,V) :- '_1¤¬ÊÑ¿ô¤Î¾ì¹ç¤Ï_2¤Ë¤Ê¤ë'(A,V), ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë(R,V). '_1¤¬ÊÑ¿ô¤Î¾ì¹ç¤Ï_2¤Ë¤Ê¤ë'(V,V) :- !. '_1¤¬ÊÑ¿ô¤Î¾ì¹ç¤Ï_2¤Ë¤Ê¤ë'(_,_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 165ÂåÌÜ #321 # ÁíÅö¤ê¤ò¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤Æ²¼¤µ¤¤ # # VC++2010 # Windows Vista Home SP2 # # Îã # Âè1°ú¿ô ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú # Âè2°ú¿ô ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú # Âè3°ú¿ô ÁíÅö¤ê¤¹¤ë·å¿ô # func('a', 'z', 3); # ¤È¤·¤¿»þ¤Îưºî¤Ï # aaa¡Ázzz¡¢aa¡Ázz¡¢a¡Áz # ¤ÎÁ´¤Æ¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤·¤¿¤¤¤Ç¤¹ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ # # ÁíÅö¤ê(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ÁíÅö¤ê¤¹¤ë·å¿ô,_ÁíÅö¤ê) :- ʸ»ú¤Ê¤é¤Ó¤ò³ÎÄꤹ¤ë(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ʸ»ú¤Ê¤é¤Ó), ÁíÅö¤ê(_ÁíÅö¤ê¤¹¤ë·å¿ô,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê). ÁíÅö¤ê(1,_ʸ»ú¤Ê¤é¤Ó,_ʸ»ú¤Ê¤é¤Ó). ÁíÅö¤ê(_·å¿ô,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê) :- ·å¿ô¤ò¸º¤¸¤Æ(_·å¿ô,_·å¿ô_1), Äã°Ì·å¤«¤éÁíÅö¤ê¤òÀ®Ä¹¤µ¤»¤ë(_·å¿ô_1,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê). ·å¿ô¤ò¸º¤¸¤Æ(_·å¿ô,_·å¿ô_1) :- _·å¿ô > 1, succ(_·å¿ô_1,_·å¿ô). Äã°Ì·å¤«¤éÁíÅö¤ê¤òÀ®Ä¹¤µ¤»¤ë(_·å¿ô_1,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê) :- ÁíÅö¤ê(_·å¿ô_1,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2), ÁíÅö¤ê_1(_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2,_ÁíÅö¤ê_1), append(_ÁíÅö¤ê_1,_ÁíÅö¤ê_2,_ÁíÅö¤ê). ÁíÅö¤ê_1(_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2,_ÁíÅö¤ê_1) :- findall(_ʸ»úÎó,( ʸ»úÎó¤ÎÀèÆ¬Ê¸»ú¤Ïʸ»ú¤Ê¤é¤ÓÃæ¤Î°ìʸ»ú(_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2,_ʸ»úÎó)),_ÁíÅö¤ê_1). ʸ»úÎó¤ÎÀèÆ¬Ê¸»ú¤Ïʸ»ú¤Ê¤é¤ÓÃæ¤Î°ìʸ»ú(_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2,_ʸ»úÎó) :- member(_ʸ»ú_1,_ʸ»ú¤Ê¤é¤Ó), member(_ʸ»úÎó_2,_ÁíÅö¤ê_2), atom_concat(_ʸ»ú_1,_ʸ»úÎó_2,_ʸ»úÎó). ʸ»ú¤Ê¤é¤Ó¤ò³ÎÄꤹ¤ë(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ʸ»ú¤Ê¤é¤Ó) :- ʸ»úÈϰϤòʸ»ú¥³¡¼¥ÉÈϰϤËÊÑ´¹(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É), findall(_ʸ»ú,( °ìʸ»ú¤òÆÀ¤ë(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É,_ʸ»ú)),_ʸ»ú¤Ê¤é¤Ó). ʸ»úÈϰϤòʸ»ú¥³¡¼¥ÉÈϰϤËÊÑ´¹(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É) :- char_code(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É), char_code(_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É). °ìʸ»ú¤òÆÀ¤ë(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É,_ʸ»ú) :- between(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É), char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¥¬¥êÉפ¯¤ó¡§¥¹¥Þ»Ò¤µ¤ó¡¢ºÇ¶á¼Â¤Ï¿ô»ú˨¤¨¤ËÌܳФ᤿¤ó¤Ç¤¹¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§ 鮤«¤éËÀ¤Ë¥¢¥Ö¥Î¡¼¥Þ¥ëÀë¸À¤ò¤µ¤ì¤Æ¤âº¤¤ë¤Î¤À¤±¤ì¤É¤â¡Ä¡Ä¡£ # # ¥¬¥êÉפ¯¤ó¡§ÆÃ¤Ë1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤ÏºÇ¹â¤Ã¤¹¤è¡ª¡¡Ä¹½÷¤È¤·¤ÆÂ¾¤Î¿ô»ú»Ò¤Á¤ã¤óã¤ò°ìÀ¸·üÌ¿»Ù¤¨¤ë1¤Á¤ã¤ó¡£Á´¤Æ¤ò̵¤Ëµ¢¤¹ÎϤò»ý¤Ã¤¿¥ß¥¹¥Æ¥ê¥¢¥¹Èþ¾¯½÷¤Î0¤Á¤ã¤ó¡£¡Ä¡Ä¤«¤ï¤¨¤¨¡Á¡£ # # ¥¹¥Þ»Ò¤µ¤ó¡§¡Ä¡Ä¤â¤¦µ¢¤Ã¤Æ¤¤¤¤¤«¤·¤é¡£ # # ¥¬¥êÉס§¤â¤¦¿ô¤ÎÀ¤³¦¤Ë¤Ï1¤Á¤ã¤ó¤È0¤Á¤ã¤ó°Ê³°Íפê¤Þ¤»¤ó¡ª¡¡1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤µ¤¨¤¤¤ì¤Ð¡¢¤½¤ì¤ÇËþ­¤Ç¤¹¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§¤¢¤é¡¢¤½¤ì¤Ï¤Ê¤«¤Ê¤«±Ô¤¤»ØÅ¦¤Í¡£ # # ¥¬¥êÉפ¯¤ó¡§¡Ä¡Ä¤È¸À¤¤¤Þ¤¹¤È¡© # # ¥¹¥Þ»Ò¤µ¤ó¡§¼Â¤Ï¡¢»ä¤¿¤Á¤¬ÉáÃʻȤäƤ¤¤ë¿ô¤Ï¡¢¾¡¼ê¤Ë0¡Á9¤Þ¤Ç¤Î¿ô¤ò»È¤¤¤Þ¤¹¤è¤È·è¤á¤Æ¤¤¤ë¤Ë²á¤®¤Ê¤¤¤Î¡£¼ÂºÝ¤Ë¤Ï0¤È1¤À¤±¤Ç¤â¿ô¤òɽ¤¹¤³¤È¤Ï²Äǽ¤Ê¤Î¤è¡£ # # ¥¬¥êÉפ¯¤ó¡§¤Û¤¦¤Û¤¦¡Ä¡Ä¡£ # # ¥¹¥Þ»Ò¤µ¤ó¡§¤³¤ì¤ò2¿ÊË¡¤Ã¤Æ¸À¤¦¤ó¤À¤±¤ì¤É¤â¤Í¡£°ì¤Î°Ì¤¬1¤Ë¤Ê¤Ã¤¿¤é¡¢¤½¤Î¼¡¤Î°Ì¤Ï°ì¤Î°Ì¤ò0¤ËÌᤷ¤Æ¡¢¤½¤Î¾å¤Î°Ì¤ò1Áý¤ä¤·¤Æ¡Ä¡Ä¤Ã¤Æ¤·¤Æ¤¤¤¯¤È¤¢¤é¤æ¤ë¿ô¤òɽ¤¹¤³¤È¤¬¤Ç¤­¤ë¤ï¡£Î㤨¤Ð¡¢1,10,11,100,101,110,111¡Ä¡Ä¤Ã¤Æ¤Ê¶ñ¹ç¤Ë¤Í¡£ # # ¥¬¥êÉפ¯¤ó¡§¤Ê¤ë¤Û¤É¡ª¡¡¤È¸À¤¦¤³¤È¤ÏÁ´¤Æ¤Î¿ô¤Ï1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤Î¥Ï¡¼¥ì¥à¤È²½¤¹¤ó¤Ç¤¹¤Í¡ª¡¡¤³¤³¤ÏÅ·¹ñ¤«¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§¡Ä¡Ä¡£¤È¤³¤í¤Ç¥¬¥êÉפ¯¤ó¡¢1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤Ï¤É¤Á¤é¤¬¤ª¹¥¤­¡© # # ¥¬¥êÉפ¯¤ó¡§¤¦¡Á¡Á¡Á¤ó¡Ä¡Ä¹Ã²µ¤Ä¤±Æñ¤¤¤Ç¤¹¤¬¡¢¤ä¤Ã¤Ñ¤ê·òµ¤¤Ê1¤Á¤ã¤ó¤Ç¤¹¤«¤Í¡Á¡£ # # ¥¹¥Þ»Ò¤µ¤ó¡§¤¸¤ã¤¢¤½¤Î1¤Á¤ã¤ó¡¢¥Ï¡¼¥ì¥à¤ÎÃæ¤Ë¤É¤ì¤°¤é¤¤¤¤¤ë¤Î¤«¡¢ÃΤꤿ¤¯¤Ê¤¤¡© # # ¥¬¥êÉפ¯¤ó¡§ÃΤꤿ¤¤ÃΤꤿ¤¤¡ª¡¡1¤Á¤ã¤ó¤Î¤³¤È¡¢¤â¤Ã¤ÈÃΤꤿ¤¤¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§¤¦¤ï¤¢¡Ä¡Ä¡£¤Þ¡¢¤Þ¤¢¤¤¤¤¤ï¡ª¡¡1¤Á¤ã¤ó¤Î¿ô¤ò¿ô¤¨¤Æ¡¢¤½¤ì¤¸¤ã¤¢£²£°£±£´Ç¯¤Ë¤Á¤Ê¤ó¤Ç¤³¤ó¤ÊÌäÂê¤ò²ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡ª¡¡¤½¤¦¡¢¥¹¥Þ¡¼¥È¤Ë¤Í¡ª # # # ¡ÚÌä¡Û # 1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«¡¢Åú¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ËÌäÂê¤ÎÅú¤¨¤È¡¢¤½¤ÎÅú¤¨¤òƳ½Ð¤·¤¿¥×¥í¥»¥¹¤òµ­½Ò¤·¤Æ¡¢Äó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ # ¤Þ¤¿¡¢¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ï¥½¡¼¥¹¥³¡¼¥É¤ò²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ËޤêÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£¸À¸ì¤ÏÌ䤤¤Þ¤»¤ó¤¬¡¢ideone(http://ideone.com/)¤Ç¼Â¹Ô¤Ç¤­¤ë¤â¤Î¤ò²òÅú¤È¤·¤ÆÄó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ # '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«¡¢Åú¤¨¤Æ¤¯¤À¤µ¤¤¡£'('¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç',_¥Ú¥¢¤ÎÁÈ¿ô) :- '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç¤Î¡¢1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«'(_¥Ú¥¢¤ÎÁÈ¿ô). '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«¡¢Åú¤¨¤Æ¤¯¤À¤µ¤¤¡£'('¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç',_¥Ú¥¢¤ÎÁÈ¿ô) :- '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¡¢1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«'(_¥Ú¥¢¤ÎÁÈ¿ô). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç¤Î¡¢1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«'(_¥Ú¥¢¤ÎÁÈ¿ô) :- '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó), ÅÙ¿ô('¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó),_¥Ú¥¢¤ÎÁÈ¿ô). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'([A,A|R]). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'([_|R]) :- '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò2¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò3¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'(R). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¡¢1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«'(_¥Ú¥¢¤ÎÁÈ¿ô) :- '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó), ÅÙ¿ô('¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó),_¥Ú¥¢¤ÎÁÈ¿ô). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'([A,A|R]). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'([A,A|R]) :- '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'(R). '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'([A,B|R]) :- \+(A=B), '¥Ú¥¢¤òACCCB¤ÎC¤Î¥Ú¥¢¤ò1¡¤ACCCCB¤ÎC¤Î¥Ú¥¢¤ò2¤È¹Í¤¨¤ë¾ì¹ç¤Î¥Ú¥¢'([B|R]). '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó) :- findall(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô,( between(1,2014,_¿ô), '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¿ô,_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô)),_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó). '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¿ô,_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô) :- ÅÙ¿ô('·å¤ò2¤Ç³ä¤Ã¤¿»þ¤Î¾ê;¤¬1'(_¿ô),_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô). ·å¤ò2¤Ç³ä¤Ã¤¿»þ¤Î¾ê;¤¬1(N) :- 1 is N mod 2. ·å¤ò2¤Ç³ä¤Ã¤¿»þ¤Î¾ê;¤¬1(N) :- ºÇ¾å°Ì·å¤Þ¤Ç¾ê;¤¬1¤«¤É¤¦¤«Ä´¤Ù¤ë(N). ºÇ¾å°Ì·å¤Þ¤Ç¾ê;¤¬1¤«¤É¤¦¤«Ä´¤Ù¤ë(N) :- N > 0, N_1 is N // 2, ·å¤ò2¤Ç³ä¤Ã¤¿»þ¤Î¾ê;¤¬1(N_1). ÅÙ¿ô(_ÌÜɸ,_ÅÙ¿ô) :- findall(1,_ÌÜɸ,_ÅÙ¿ô¤ò¼¨¤¹1¤Î¤Ê¤é¤Ó), length(_ÅÙ¿ô¤ò¼¨¤¹1¤Î¤Ê¤é¤Ó,_ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 164ÂåÌÜ #833 # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # [1] ¾ðÊó½èÍý±é½¬­µ # [2] ¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ, ¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºî # À®¤»¤è. # ¡¡[3.1] Linux # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§visual studio¡¡2010 # ¡¡[3.3] C¸À¸ì # [4] »ØÄê¤Ê¤· # [5] ÆÃ¤Ë¤Ê¤· # # '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ, ¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë' :- '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ,'(_n), '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô),!. '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ,'(_n) :- À°¿ô¤òÆÀ¤ë('0¤è¤êÂ礭¤¤¼«Á³¿ô',_n > 0,_n). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô), ½ÐÎϤ¹¤ë(_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò'(_n,L), °ì¤Ä(L,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò'(_n,L) :- findall(_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô,'¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô),L). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- _n_1 is _n - 1, between(2,_n_1,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô), 0 is _n mod _¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô. °ì¤Ä([H|T],_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- length([H|T],Len), _Íð¿ô is random(Len), nth0(_Íð¿ô,[H|T],_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô). ½ÐÎϤ¹¤ë(_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- writef('%t\n',[_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ¤Ê¤é¤Ó,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô¤Ê¤é¤Ó) :- list(_ºÅ¥ʸ¤Ê¤é¤Ó), findall(_À°¿ô,( member(_ºÅ¥ʸ,_ºÅ¥ʸ¤Ê¤é¤Ó), À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ), get_line(Instream,Line), '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,_À°¿ô¤ò´Þ¤à¾ò·ï,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_,_) :- !,fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- atom_to_term(Line,_À°¿ô,_), integer(_À°¿ô), '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- \+((atom_to_term(Line,_À°¿ô,_),integer(_À°¿ô))), writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¤Ï¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_) :- !,fail. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- call(_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤Ï %t ¤¬µ¶¤È¤Ê¤ê¤Þ¤¹¡£\n',[_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï]), fail. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,true,_À°¿ô). À°¿ô¤òÆÀ¤ë(_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,'',true,_À°¿ô). ºÅ¥ʸ¤Î½ÐÎÏ('') :- !. ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ) :- writef('%t¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : ',[_ºÅ¥ʸ]). n¸Ä¤ÎÀ°¿ô¤òÆÀ¤ë(_n,_ºÅ¥ʸ,_À°¿ô¤Ê¤é¤Ó) :- length(_À°¿ô¤Ê¤é¤Ó,_n), findall(_À°¿ô,( Éôʬ¤Ê¤é¤Ó(_À°¿ô¤Ê¤é¤Ó,_,_,_²¿ÈÖÌÜ,_,_,_,L3), writef('[%t/%t]ÈÖÌܤÎ',[_²¿ÈÖÌÜ,_n]), À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó). °ì¹ÔÆÉ¤ß¹þ¤à(_¹Ô) :- get_line(_¹Ô). get_line(Stream,X) :- get_char(Stream,C), get_line_1(Stream,C,Chars), atom_chars(X,Chars). get_line_1(Stream,'\n',[]) :- !. get_line_1(Stream,end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(Stream,C,[C|R]) :- get_char(Stream,C2), get_line_1(Stream,C2,R). get_line(X) :- get_char(C), get_line_1(C,Chars), atom_chars(X,Chars). get_line_1('\n',[]) :- !. get_line_1(end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(C,[C|R]) :- get_char(C2), get_line_1(C2,R). list([_|_]) :- !. list([]. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 164ÂåÌÜ #833 # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # [1] ¾ðÊó½èÍý±é½¬­µ # [2] ¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ, ¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºî # À®¤»¤è. # ¡¡[3.1] Linux # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§visual studio¡¡2010 # ¡¡[3.3] C¸À¸ì # [4] »ØÄê¤Ê¤· # [5] ÆÃ¤Ë¤Ê¤· # # '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ, ¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë' :- '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ,'(_n), '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô),!. '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ,'(_n) :- À°¿ô¤òÆÀ¤ë('0¤è¤êÂ礭¤¤¼«Á³¿ô',_n > 0,_n). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô), ½ÐÎϤ¹¤ë(_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò'(_n,L), °ì¤Ä(L,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò'(_n,L) :- findall(_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô,'¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô),L). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë'(_n,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- _n_1 is _n - 1, between(2,_n_1,_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô), 0 is _n mod _¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô. °ì¤Ä([H|T],_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- length([H|T],Len), _Íð¿ô is random(Len), nth0(_Íð¿ô,[H|T],_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô). ½ÐÎϤ¹¤ë(_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô) :- writef('%t\n',[_¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ¤Ê¤é¤Ó,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô¤Ê¤é¤Ó) :- list(_ºÅ¥ʸ¤Ê¤é¤Ó), findall(_À°¿ô,( member(_ºÅ¥ʸ,_ºÅ¥ʸ¤Ê¤é¤Ó), À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ), get_line(Instream,Line), '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,_À°¿ô¤ò´Þ¤à¾ò·ï,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_,_) :- !,fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- atom_to_term(Line,_À°¿ô,_), integer(_À°¿ô), '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- \+((atom_to_term(Line,_À°¿ô,_),integer(_À°¿ô))), writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¤Ï¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_) :- !,fail. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- call(_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤Ï %t ¤¬µ¶¤È¤Ê¤ê¤Þ¤¹¡£\n',[_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï]), fail. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,true,_À°¿ô). À°¿ô¤òÆÀ¤ë(_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,'',true,_À°¿ô). ºÅ¥ʸ¤Î½ÐÎÏ('') :- !. ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ) :- writef('%t¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : ',[_ºÅ¥ʸ]). n¸Ä¤ÎÀ°¿ô¤òÆÀ¤ë(_n,_ºÅ¥ʸ,_À°¿ô¤Ê¤é¤Ó) :- length(_À°¿ô¤Ê¤é¤Ó,_n), findall(_À°¿ô,( Éôʬ¤Ê¤é¤Ó(_À°¿ô¤Ê¤é¤Ó,_,_,_²¿ÈÖÌÜ,_,_,_,L3), writef('[%t/%t]ÈÖÌܤÎ',[_²¿ÈÖÌÜ,_n]), À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó). °ì¹ÔÆÉ¤ß¹þ¤à(_¹Ô) :- get_line(_¹Ô). get_line(Stream,X) :- get_char(Stream,C), get_line_1(Stream,C,Chars), atom_chars(X,Chars). get_line_1(Stream,'\n',[]) :- !. get_line_1(Stream,end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(Stream,C,[C|R]) :- get_char(Stream,C2), get_line_1(Stream,C2,R). get_line(X) :- get_char(C), get_line_1(C,Chars), atom_chars(X,Chars). get_line_1('\n',[]) :- !. get_line_1(end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(C,[C|R]) :- get_char(C2), get_line_1(C2,R). list([_|_]) :- !. list([]. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹¡¡152ÂåÌÜ #33 # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§1¤«¤é15¤Î¿ô»ú¤«¤é5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬ # »È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤Ê¤µ¤¤¡£ # Îã¡§1 2 3 4 5 # 1 3 2 4 5 # 11 12 10 9 8 # :- op(750,xfx,¤¹¤Ù¤Æ). '1¤«¤é15¤Î¿ô»ú¤«¤é5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤ë' :- '1¤«¤é15¤Î¿ô»ú¤«¤é'(_1¤«¤é15¤Î¿ô»ú), '5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤ë'(_1¤«¤é15¤Î¿ô»ú). '1¤«¤é15¤Î¿ô»ú¤«¤é'(_1¤«¤é15¤Î¿ô»ú) :- findall(N,between(1,15,N),_1¤«¤é15¤Î¿ô»ú). '5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤ë'(_1¤«¤é15¤Î¿ô»ú) :- Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò(_1¤«¤é15¤Î¿ô»ú,5,_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó) ¤¹¤Ù¤Æ ɽ¼¨¤µ¤»¤ë(_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó). Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò(_1¤«¤é15¤Î¿ô»ú,5,_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó) :- ½çÎó(_1¤«¤é15¤Î¿ô»ú,5,_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó). ɽ¼¨¤µ¤»¤ë(_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó) :- atomic_list_concat(_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%w\n',[_ɽ¼¨Ê¸»úÎó]). P ¤¹¤Ù¤Æ Q :- forall(P,Q). ½çÎó(_,0,[]). ½çÎó(L1,N,[A|L2]) :- select(A,L1,R), succ(M,N), ½çÎó(R,M,L2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 152ÂåÌÜ #33 # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§1¤«¤é15¤Î¿ô»ú¤«¤é5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬ # »È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤Ê¤µ¤¤¡£ # Îã¡§1 2 3 4 5 # 1 3 2 4 5 # 11 12 10 9 8 # :- op(750,xfx,¤¹¤Ù¤Æ). '1¤«¤é15¤Î¿ô»ú¤«¤é5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤ë' :- '1¤«¤é15¤Î¿ô»ú¤«¤é'(_1¤«¤é15¤Î¿ô»ú), '5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤ë'(_1¤«¤é15¤Î¿ô»ú). '1¤«¤é15¤Î¿ô»ú¤«¤é'(_1¤«¤é15¤Î¿ô»ú) :- findall(N,between(1,15,N),_1¤«¤é15¤Î¿ô»ú). '5¸Ä¤Î¿ô»ú¤ò¼è¤Ã¤ÆÆ±¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò¤¹¤Ù¤ÆÉ½¼¨¤µ¤»¤ë'(_1¤«¤é15¤Î¿ô»ú) :- Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò(_1¤«¤é15¤Î¿ô»ú,5,_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó) ¤¹¤Ù¤Æ ɽ¼¨¤µ¤»¤ë(_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó). Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò(_,0,[]). Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò(L1,N,[_¿ô»ú|L2]) :- select(_¿ô»ú,L1,R), succ(M,N), Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤ӤÎÄ̤ê¤ò(R,M,L2). ɽ¼¨¤µ¤»¤ë(_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó) :- atomic_list_concat(_Ʊ¤¸¿ô»ú¤¬»È¤ï¤ì¤Ê¤¤Ê¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%w\n',[_ɽ¼¨Ê¸»úÎó]). P ¤¹¤Ù¤Æ Q :- forall(P,Q). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: twitter_by_horiesiniti_20150901_2 # À²¤ì¤ÎÍâÆü¤Ï¤½¤ì¤¾¤ì1/3¤º¤Ä¤Î³ÎΨ¤ÇÀ²¤ì¡¡ÆÞ¤ê¡¡±« # ÆÞ¤ê¤ÎÍâÆü¤Ï¤½¤ì¤¾¤ì1/£²¤Î³ÎΩ¤ÇÆÞ¤ê¡¡±« # ±«¤ÎÍâÆü¤Ï¤½¤ì¤¾¤ì1/£²¤Î³ÎΩ¤ÇÀ²¤ì¤«ÆÞ¤ê # ½éÆü¤òÀ²¤ì¤È¤·¤Æ£îÆü´Ö¤Î´Ö¤ÎÀ²¤ìÆÞ¤ê±«¤Î³ä¹ç¤òÅú¤¨¤è¡£ ÍâÆü¤ÎÅ·µ¤³ÎΨ(À²¤ì,À²¤ì,1 rdiv 3). ÍâÆü¤ÎÅ·µ¤³ÎΨ(À²¤ì,ÆÞ¤ê,1 rdiv 3). ÍâÆü¤ÎÅ·µ¤³ÎΨ(À²¤ì,±«,1 rdiv 3). ÍâÆü¤ÎÅ·µ¤³ÎΨ(ÆÞ¤ê,ÆÞ¤ê,1 rdiv 2). ÍâÆü¤ÎÅ·µ¤³ÎΨ(ÆÞ¤ê,±«,1 rdiv 2). ÍâÆü¤ÎÅ·µ¤³ÎΨ(±«,À²¤ì,1 rdiv 2). ÍâÆü¤ÎÅ·µ¤³ÎΨ(±«,ÆÞ¤ê,1 rdiv 2). '½éÆü¤òÀ²¤ì¤È¤·¤Æ£îÆü´Ö¤Î´Ö¤ÎÀ²¤ìÆÞ¤ê±«¤Î³ä¹ç'(_nÆü´Ö,_mÆüÌÜ,_Å·µ¤,_³ÎΨ) :- findall([_mÆüÌÜ,_Å·µ¤,_³ÎΨ],( 'Á´¤Æ¤ÎÅ·µ¤ÀáÅÀ¤Î³ÎΨ'(_nÆü´Ö,_mÆüÌÜ,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ)),_Å·µ¤ÀáÅÀ¤Î³ÎΨ¤Ê¤é¤Ó), 'nÆü´Ö¤ÎÅ·µ¤¤Î³ÎΨ¤òÆÀ¤ë'(_nÆü´Ö,_Å·µ¤ÀáÅÀ¤Î³ÎΨ¤Ê¤é¤Ó,_mÆüÌÜ,_Å·µ¤,_³ÎΨ). 'Á´¤Æ¤ÎÅ·µ¤ÀáÅÀ¤Î³ÎΨ'(_nÆü´Ö,_mÆüÌÜ,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ) :- 'Å·µ¤ÀáÅÀ¤Ç¤Î³ÎΨ'(_nÆü´Ö,1,_mÆüÌÜ,À²¤ì,1,[À²¤ì],_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ). 'Å·µ¤ÀáÅÀ¤Ç¤Î³ÎΨ'(_nÆü´Ö,_mÆüÌÜ,_mÆüÌÜ,_Å·µ¤,_³ÎΨ,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ). 'Å·µ¤ÀáÅÀ¤Ç¤Î³ÎΨ'(_nÆü´Ö,_m_1ÆüÌÜ,_mÆüÌÜ,_Å·µ¤_1,_³ÎΨ_1,_Å·µ¤¤ÎÊÑÁ«_1,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ) :- ¿¼¤µÍ¥Àè¤ÇÅ·µ¤ÀáÅÀ¤Î³ÎΨ¤òõº÷¤¹¤ë(_nÆü´Ö,_m_1ÆüÌÜ,_mÆüÌÜ,_Å·µ¤_1,_³ÎΨ_1,_Å·µ¤¤ÎÊÑÁ«_1,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ). ¿¼¤µÍ¥Àè¤ÇÅ·µ¤ÀáÅÀ¤Î³ÎΨ¤òõº÷¤¹¤ë(_nÆü´Ö,_m_1ÆüÌÜ,_mÆüÌÜ,_Å·µ¤_1,_³ÎΨ_1,_Å·µ¤¤ÎÊÑÁ«_1,_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ) :- _m_1ÆüÌÜ < _nÆü´Ö, ÍâÆü¤ÎÅ·µ¤³ÎΨ¤ò·×»»¤¹¤ë(_Å·µ¤_1,_³ÎΨ_1,_ÍâÆü¤ÎÅ·µ¤,_³ÎΨ_3), succ(_m_1ÆüÌÜ,_m_2ÆüÌÜ), 'Å·µ¤ÀáÅÀ¤Ç¤Î³ÎΨ'(_nÆü´Ö,_m_2ÆüÌÜ,_mÆüÌÜ,_ÍâÆü¤ÎÅ·µ¤,_³ÎΨ_3,[_ÍâÆü¤ÎÅ·µ¤|_Å·µ¤¤ÎÊÑÁ«_1],_Å·µ¤¤ÎÊÑÁ«,_Å·µ¤,_³ÎΨ). ÍâÆü¤ÎÅ·µ¤³ÎΨ¤ò·×»»¤¹¤ë(_Å·µ¤_1,_³ÎΨ_1,_ÍâÆü¤ÎÅ·µ¤,_³ÎΨ_3) :- ÍâÆü¤ÎÅ·µ¤³ÎΨ(_Å·µ¤_1,_ÍâÆü¤ÎÅ·µ¤,_³ÎΨ_2), _³ÎΨ_3 is _³ÎΨ_1 * _³ÎΨ_2. 'nÆü´Ö¤ÎÅ·µ¤¤Î³ÎΨ¤òÆÀ¤ë'(_nÆü´Ö,_Å·µ¤ÀáÅÀ¤Î³ÎΨ¤Ê¤é¤Ó,_mÆüÌÜ,_Å·µ¤,_³ÎΨ) :- between(1,_nÆü´Ö,_mÆüÌÜ), member(_Å·µ¤,[À²¤ì,ÆÞ¤ê,±«]), findsum(_³ÎΨ_1,member([_mÆüÌÜ,_Å·µ¤,_³ÎΨ_1],_Å·µ¤ÀáÅÀ¤Î³ÎΨ¤Ê¤é¤Ó),_³ÎΨ). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï À°¿ô¤«¤éƬÉôÎíʸ»úÎó(_·å,_À°¿ô,_¿ôÃͤòɽ¤¹Ê¸»úÎó) :- À°¿ô¤ò¿ô»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤·¤Æ¤½¤Î·å¿ô¤òÆÀ¤ë(_À°¿ô,_¿ô»ú¤Ê¤é¤Ó,_¿ô»úÉôʬ¤Î·å), ƬÉô¤ÎÎí¤Ê¤é¤Ó¤òºî¤ê¿ô»ú¤Ê¤é¤Ó¤òÄɲä·¤¿Æ¬ÉôÎí¿ô»ú¤Ê¤é¤Ó¤òºî¤ë(_·å,_¿ô»ú¤Ê¤é¤Ó,_¿ô»úÉôʬ¤Î·å,_ƬÉôÎí¿ô»ú¤Ê¤é¤Ó), ƬÉôÎí¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤòɽ¤¹Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë(_ƬÉôÎí¿ô»ú¤Ê¤é¤Ó,_¿ôÃͤòɽ¤¹Ê¸»úÎó). À°¿ô¤ò¿ô»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤·¤Æ¤½¤Î·å¿ô¤òÆÀ¤ë(_À°¿ô,_¿ô»ú¤Ê¤é¤Ó,_¿ô»úÉôʬ¤Î·å) :- number_chars(_À°¿ô,_¿ô»ú¤Ê¤é¤Ó), length(_¿ô»ú¤Ê¤é¤Ó,_¿ô»úÉôʬ¤Î·å). ƬÉô¤ÎÎí¤Ê¤é¤Ó¤òºî¤ê¿ô»ú¤Ê¤é¤Ó¤òÄɲä·¤¿Æ¬ÉôÎí¿ô»ú¤Ê¤é¤Ó¤òºî¤ë(_·å,_¿ô»ú¤Ê¤é¤Ó,_¿ô»úÉôʬ¤Î·å,_ƬÉôÎí¿ô»ú¤Ê¤é¤Ó) :- _ƬÉôÎí¤Î·å is _·å - _¿ô»úÉôʬ¤Î·å, findall('0',between(1,_ƬÉôÎí¤Î·å,_),_ƬÉôÎí¿ô»ú¤Ê¤é¤Ó,_¿ô»ú¤Ê¤é¤Ó). ƬÉôÎí¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤòɽ¤¹Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë(_ƬÉôÎí¿ô»ú¤Ê¤é¤Ó,_¿ôÃͤòɽ¤¹Ê¸»úÎó) :- atom_chars(_¿ôÃͤòɽ¤¹Ê¸»úÎó,_ƬÉôÎí¿ô»ú¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥·¥ã¥Ã¥Õ¥ë(L1,L2) :- length(L1,Len), findall(N,between(1,Len,N),L), ¥·¥ã¥Ã¥Õ¥ë(Len,L,L1,L2). ¥·¥ã¥Ã¥Õ¥ë(0,_,_,[]) :- !. ¥·¥ã¥Ã¥Õ¥ë(Len,L,L1,[_ÃÍ|R]) :- 'L1¤«¤é¥é¥ó¥À¥à¤Ë¼è¤ê½Ð¤·¤Æ¿·¤¿¤Ê¥ê¥¹¥È¤ò¹½À®¤¹¤ë'(Len,L,L1,_ÃÍ,R). 'L1¤«¤é¥é¥ó¥À¥à¤Ë¼è¤ê½Ð¤·¤Æ¿·¤¿¤Ê¥ê¥¹¥È¤ò¹½À®¤¹¤ë'(Len,L,L1,_ÃÍ,R) :- ÆÀ¤é¤ì¤¿Íð¿ô¤Î°ÌÃ֤ˤ¢¤ëL1¤ÎÃͤò¼è¤ê½Ð¤¹(Len,L,L1,L_1,_ÃÍ), succ(Len_1,Len), ¥·¥ã¥Ã¥Õ¥ë(Len_1,L_1,L1,R). ÆÀ¤é¤ì¤¿Íð¿ô¤Î°ÌÃ֤ˤ¢¤ëL1¤ÎÃͤò¼è¤ê½Ð¤¹(Len,L,L1,L_1,_ÃÍ) :- ÆÀ¤é¤ì¤¿Íð¿ô¤Î°ÌÃ֤ˤ¢¤ë(Len,L,M), 'L1¤ÎÃͤò¼è¤ê½Ð¤¹'(L,L1,M,L_1,_ÃÍ). ÆÀ¤é¤ì¤¿Íð¿ô¤Î°ÌÃ֤ˤ¢¤ë(Len,L,M) :- N is random(Len) + 1, nth1(N,L,M). 'L1¤ÎÃͤò¼è¤ê½Ð¤¹'(L,L1,M,L_1,_ÃÍ) :- nth1(M,L1,_ÃÍ), select(M,L,L_1). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '¦²'(_n_1,_n_2,_k,_ÌÜɸ¤Î½¸ÌóÃÍ,_ÌÜɸ,_½¸Ìó¹ç·×) :- findsum(_ÌÜɸ¤Î½¸ÌóÃÍ,( between(_n_1,_n_2,_k),_ÌÜɸ),_½¸Ìó¹ç·×). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). 'ºÇ¾®Æó¾èË¡¤òÍѤ¤¤Æ¡¢1¼¡´Ø¿ô ax+b ¤ò¥â¥Ç¥ë¤È¤·¤Æ¶á»÷¤·¡¢·¸¿ôa,b¤ò·èÄꤹ¤ë¡£ ºÇ¾®Æó¾èË¡¤È¤Ï¡¢Â¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤò¡¢Å¬Åö¤Ê¥â¥Ç¥ë¤«¤éÁÛÄꤵ¤ì¤ë ÁÛÄꤹ¤ë´Ø¿ô¤¬Â¬ÄêÃͤËÂФ·¤Æ¤è¤¤¶á»÷¤È¤Ê¤ë¤è¤¦¤Ë¡¢»Äº¹¤ÎÆó¾èϤòºÇ¾®¤È ¤¹¤ë¤è¤¦¤Ê·¸¿ô¤ò·èÄꤹ¤ëÊýË¡¡£'(_¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁÈ,_a,_b) :- length(_¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁÈ,_ɸËÜ¿ô), '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'(_¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁÈ,Lx,Ly), 'ŬÅö¤Ê¥â¥Ç¥ë¤«¤éÁÛÄꤵ¤ì¤ë1¼¡´Ø¿ô ax+b ¤òÍѤ¤¤Æ¶á»÷¤¹¤ë¤È¤­¤Ë¡¢ ÁÛÄꤹ¤ë´Ø¿ô¤¬Â¬ÄêÃͤËÂФ·¤Æ¤è¤¤¶á»÷¤È¤Ê¤ë¤è¤¦¤Ë¡¢»Äº¹¤ÎÆó¾èϤò ºÇ¾®¤È¤¹¤ë¤è¤¦¤Ê·¸¿ô¤ò·èÄꤹ¤ë'(_ɸËÜ¿ô,Lx,Ly,_a,_b). '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'([],[],[]). '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'([(X,Y)|R],[X|Rx],[Y|Ry]) :- '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'(R,Rx,Ry). 'ŬÅö¤Ê¥â¥Ç¥ë¤«¤éÁÛÄꤵ¤ì¤ë1¼¡´Ø¿ô ax+b ¤òÍѤ¤¤Æ¶á»÷¤¹¤ë¤È¤­¤Ë¡¢ ÁÛÄꤹ¤ë´Ø¿ô¤¬Â¬ÄêÃͤËÂФ·¤Æ¤è¤¤¶á»÷¤È¤Ê¤ë¤è¤¦¤Ë¡¢»Äº¹¤ÎÆó¾èϤò ºÇ¾®¤È¤¹¤ë¤è¤¦¤Ê·¸¿ô¤ò·èÄꤹ¤ë'(_ɸËÜ¿ô,Lx,Ly,_a,_b) :- ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a), ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b). ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a) :- ·¸¿ôa¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò), ·¸¿ôa¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì), _a is _ʬ»Ò / _ʬÊì. ·¸¿ôa¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_3), _ʬ»Ò is _ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 * _¹ç·×_3. ·¸¿ôa¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), _ʬÊì is _ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 ^ 2. ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b) :- ·¸¿ôb¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò), ·¸¿ôb¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì), _b is _ʬ»Ò / _ʬÊì. ·¸¿ôb¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_2), '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_3), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_4), _ʬ»Ò is _¹ç·×_1 * _¹ç·×_2 - _¹ç·×_3 * _¹ç·×_4. ·¸¿ôb¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), _ʬÊì is _ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 ^ 2. % °Ê²¼¤Î¥µ¥¤¥È¤Ï '¦²'(_n_1,_n_2,_k,_ÌÜɸ¤Î½¸ÌóÃÍ,_ÌÜɸ,_½¸Ìó¹ç·×) :- findsum(_ÌÜɸ¤Î½¸ÌóÃÍ,( between(_n_1,_n_2,_k),_ÌÜɸ),_½¸Ìó¹ç·×). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). 'ºÇ¾®Æó¾èË¡¤òÍѤ¤¤Æ¡¢1¼¡´Ø¿ô ax+b ¤ò¥â¥Ç¥ë¤È¤·¤Æ¶á»÷¤·¡¢·¸¿ôa,b¤ò·èÄꤹ¤ë¡£ ºÇ¾®Æó¾èË¡¤È¤Ï¡¢Â¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤò¡¢Å¬Åö¤Ê¥â¥Ç¥ë¤«¤éÁÛÄꤵ¤ì¤ë ÁÛÄꤹ¤ë´Ø¿ô¤¬Â¬ÄêÃͤËÂФ·¤Æ¤è¤¤¶á»÷¤È¤Ê¤ë¤è¤¦¤Ë¡¢»Äº¹¤ÎÆó¾èϤòºÇ¾®¤È ¤¹¤ë¤è¤¦¤Ê·¸¿ô¤ò·èÄꤹ¤ëÊýË¡¡£'(_¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁÈ,_a,_b) :- length(_¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁÈ,_ɸËÜ¿ô), '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'(_¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁÈ,Lx,Ly), 'ŬÅö¤Ê¥â¥Ç¥ë¤«¤éÁÛÄꤵ¤ì¤ë1¼¡´Ø¿ô ax+b ¤òÍѤ¤¤Æ¶á»÷¤¹¤ë¤È¤­¤Ë¡¢ ÁÛÄꤹ¤ë´Ø¿ô¤¬Â¬ÄêÃͤËÂФ·¤Æ¤è¤¤¶á»÷¤È¤Ê¤ë¤è¤¦¤Ë¡¢»Äº¹¤ÎÆó¾èϤò ºÇ¾®¤È¤¹¤ë¤è¤¦¤Ê·¸¿ô¤ò·èÄꤹ¤ë'(_ɸËÜ¿ô,Lx,Ly,_a,_b). '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'([],[],[]). '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'([(X,Y)|R],[X|Rx],[Y|Ry]) :- '¬Äê¤ÇÆÀ¤é¤ì¤¿¿ôÃͤÎÁȤòLx,Ly¤Ëʬ²ò¤¹¤ë'(R,Rx,Ry). 'ŬÅö¤Ê¥â¥Ç¥ë¤«¤éÁÛÄꤵ¤ì¤ë1¼¡´Ø¿ô ax+b ¤òÍѤ¤¤Æ¶á»÷¤¹¤ë¤È¤­¤Ë¡¢ ÁÛÄꤹ¤ë´Ø¿ô¤¬Â¬ÄêÃͤËÂФ·¤Æ¤è¤¤¶á»÷¤È¤Ê¤ë¤è¤¦¤Ë¡¢»Äº¹¤ÎÆó¾èϤò ºÇ¾®¤È¤¹¤ë¤è¤¦¤Ê·¸¿ô¤ò·èÄꤹ¤ë'(_ɸËÜ¿ô,Lx,Ly,_a,_b) :- ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a), ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b). ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a) :- ·¸¿ôa¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò), ·¸¿ôa¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì), _a is _ʬ»Ò / _ʬÊì. ·¸¿ôa¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_3), _ʬ»Ò is _ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 * _¹ç·×_3. ·¸¿ôa¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), _ʬÊì is _ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 ^ 2. ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b) :- ·¸¿ôb¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò), ·¸¿ôb¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì), _b is _ʬ»Ò / _ʬÊì. ·¸¿ôb¤Î¼°¤Îʬ»Ò(_ɸËÜ¿ô,Lx,Ly,_ʬ»Ò) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_2), '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_3), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_4), _ʬ»Ò is _¹ç·×_1 * _¹ç·×_2 - _¹ç·×_3 * _¹ç·×_4. ·¸¿ôb¤Î¼°¤ÎʬÊì(_ɸËÜ¿ô,Lx,Ly,_ʬÊì) :- '¦²'(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), '¦²'(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), _ʬÊì is _ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 ^ 2. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¦²(_n_1,_n_2,_k,_ÌÜɸ¤Î½¸ÌóÃÍ,_ÌÜɸ,_½¸Ìó¹ç·×) :- findsum(_ÌÜɸ¤Î½¸ÌóÃÍ,( between(_n_1,_n_2,_k), call(_ÌÜɸ)),_½¸Ìó¹ç·×). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). '°ì¼¡ÊýÄø¼° y=ax+b ¤Î·¸¿ô_a,_b¤òºÇ¾®Æó¾èË¡¤ò»È¤Ã¤ÆÆÀ¤ë'(_ɸËÜ¿ô,Lx,Ly,_a,_b) :- ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a), ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b). ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a) :- ¦²(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_1), ¦²(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), ¦²(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_3), ¦²(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_4), ¦²(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_5), _a is (_ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 * _¹ç·×_3) / ( _ɸËÜ¿ô * _¹ç·×_4 - _¹ç·×_5 ^ 2). ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b) :- ¦²(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), ¦²(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_2), ¦²(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_3), ¦²(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_4), ¦²(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_5), ¦²(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_6), _b is (_¹ç·×_1 * _¹ç·×_2 - _¹ç·×_3 * _¹ç·×_4) / ( _ɸËÜ¿ô * _¹ç·×_5 - _¹ç·×_6 ^ 2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï sigma(_n_1,_n_2,_k,S,P,_¹ç·×) :- findsum(S,( between(_n_1,_n_2,_k), call(P)),_¹ç·×). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). '°ì¼¡ÊýÄø¼° y=ax+b ¤Î·¸¿ô_a,_b¤òºÇ¾®Æó¾èË¡¤ò»È¤Ã¤ÆÆÀ¤ë'(_ɸËÜ¿ô,Lx,Ly,_a,_b) :- ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a), ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b). ·¸¿ôa(_ɸËÜ¿ô,Lx,Ly,_a) :- sigma(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_1), sigma(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_2), sigma(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_3), sigma(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_4), sigma(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_5), _a is (_ɸËÜ¿ô * _¹ç·×_1 - _¹ç·×_2 * _¹ç·×_3) / ( _ɸËÜ¿ô * _¹ç·×_4 - _¹ç·×_5 ^ 2). ·¸¿ôb(_ɸËÜ¿ô,Lx,Ly,_b) :- sigma(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_1), sigma(1,_ɸËÜ¿ô,_k,S,nth1(_k,Ly,S),_¹ç·×_2), sigma(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),nth1(_k,Ly,Y),S is X * Y),_¹ç·×_3), sigma(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_4), sigma(1,_ɸËÜ¿ô,_k,S,(nth1(_k,Lx,X),S is X ^ 2),_¹ç·×_5), sigma(1,_ɸËÜ¿ô,_k,S,nth1(_k,Lx,S),_¹ç·×_6), _b is (_¹ç·×_1 * _¹ç·×_2 - _¹ç·×_3 * _¹ç·×_4) / ( _ɸËÜ¿ô * _¹ç·×_5 - _¹ç·×_6 ^ 2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1533 # # Ãæ³Ø¿ô³Ø¤Î¤Ò¤È¤Ä¤Î»³¤È¤â¤¤¤¨¤ë¡¢°ø¿ôʬ²ò¡£ # ¿ô³Ø¤ò·ù¤¤¤Ë¤Ê¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¿Í¤â¿¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡© # ¤½¤ó¤Ê°ø¿ôʬ²ò¤ò¡¢¥×¥í¥°¥é¥ß¥ó¥°¤Ç²ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡ª # # ¢£ÌäÂê # Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ # ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢a, b, c, d¤ÎÃͤò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # # # ¢£Îã # ¡ÚÆþÎÏ¡Û # 4, -23, 15 # ¡Ú½ÐÎÏ¡Û # 4, -3, 1, -5 # # ¤Ä¤Þ¤ê¡¢4x2-23x+15¡á(4x-3)(x-5)¤È¤¤¤¦°ø¿ôʬ²ò¤ò¹Ô¤Ã¤¿·ë²Ì¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ # ¡Ê½ÐÎϤϡ¢½çÈÖ¤òÆþ¤ìÂØ¤¨¤¿1, -5, 4, -3¤Ç¤âÀµ²ò¤È¤Ê¤ê¤Þ¤¹¤¬¡¢¤¤¤º¤ì¤«°ìÊý¤ò½ÐÎϤ¹¤ë¤â¤Î¤È¤·¤Þ¤¹¡£¡Ë # ¤Ê¤ª¡¢¦Á¡¢¦Â¡¢¦Ã¤È¤·¤ÆÍ¿¤¨¤é¤ì¤ë¿ô»ú¤Ï¸ß¤¤¤ËÁǤÊÀ°¿ô¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ # ¢¨½ÐÎÏ¥¨¥é¡¼¤Îɽµ­¤Ï¡¢¥¨¥é¡¼¤È¤ï¤«¤ë²¿¤é¤«¤Î½ÐÎϤǹ½¤¤¤Þ¤»¤ó¡£¡Ê¢¨2015ǯ4·î20Æü13:30Äɵ­¡Ë # # # ºÇÄã¸Â¡¢°Ê²¼¤Î¥Æ¥¹¥È¥Ç¡¼¥¿¤ÇÀµ¤·¤¤½ÐÎϤ¬ÆÀ¤é¤ì¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿1¡§ÆþÎÏ¡Û # 3, 10, 3 # ¡Ú½ÐÎÏ¡Û # 1, 3, 3, 1 ¤Þ¤¿¤Ï 3, 1, 1, 3 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿2¡§ÆþÎÏ¡Û # 6, -1, -15 # ¡Ú½ÐÎÏ¡Û # 2, 3, 3, -5 ¤Þ¤¿¤Ï 3, -5, 2, 3 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿3¡§ÆþÎÏ¡Û # 12, -1, -6 # ¡Ú½ÐÎÏ¡Û # 3, 2, 4, -3 ¤Þ¤¿¤Ï 4, -3, 3, 2 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿4¡§ÆþÎÏ¡Û # 3, -8, 4 # ¡Ú½ÐÎÏ¡Û # 1, -2, 3, -2 ¤Þ¤¿¤Ï 3, -2, 1, -2 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿5¡§ÆþÎÏ¡Û # 3, 5, 7 # ¡Ú½ÐÎÏ¡Û # ¥¨¥é¡¼ # 'Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢a, b, c, d¤ÎÃͤò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'(_¦Á,_¦Â,_¦Ã,_a,_b,_c,_d) :- findall([_a,_b,_c,_d], 'Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢'(_¦Á,_¦Â,_¦Ã,_a,_b,_c,_d),_²ò¤Ê¤é¤Ó), ½ÅÊ£²ò¤ò¼è¤ê½ü¤¯(_²ò¤Ê¤é¤Ó,_a,_b,_c,_d). 'Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢'(_¦Á,_¦Â,_¦Ã,_a,_b,_c,_d) :- '_a,_b,_c,_d¤Î¸õÊä¤òÆÀ¤ë'(_¦Á,_¦Ã,_a,_b,_c,_d), _¦Â is _a * _d + _b * _c. '_a,_b,_c,_d¤Î¸õÊä¤òÆÀ¤ë'(_¦Á,_¦Ã,_a,_b,_c,_d) :- '_a,_c¸õÊä'(_¦Á,_a,_c), '_b,_d¸õÊä'(_¦Ã,_b,_d). '_a,_c¸õÊä'(_¦Á,_a,_c) :- °ø¿ô¤Ëʬ²ò¤¹¤ë(_¦Á,_a,_c) . '_b,_d¸õÊä'(_¦Ã,_b,_d) :- °ø¿ô¤Ëʬ²ò¤¹¤ë(_¦Ã,_b,_d) . °ø¿ô¤Ëʬ²ò¤¹¤ë(A,B,C) :- 'A¤ÎÀäÂÐÃͤ«¤éB_1¸õÊä¤òÆÀ¤ë'(A,_Àµ¤ÎA,B_1), '°ø¿ôB_1,C_1¤òÆÀ¤ë'(_Àµ¤ÎA,B_1,C_1), É乿¤ÎÁȹ礻(A,B_1,C_1,B,C). 'A¤ÎÀäÂÐÃͤ«¤éB_1¸õÊä¤òÆÀ¤ë'(A,_Àµ¤ÎA,B_1) :- _Àµ¤ÎA is abs(A), between(1,_Àµ¤ÎA,B_1). '°ø¿ôB_1,C_1¤òÆÀ¤ë'(_Àµ¤ÎA,B_1,C_1) :- 0 is _Àµ¤ÎA mod B_1, C_1 is _Àµ¤ÎA // B_1. É乿¤ÎÁȹ礻(A,B_1,C_1,B,C) :- 'A¤¬Àµ¤Î»þ¤ÏÆó¿ô¤ÎÉ乿¤ÏƱ¤¸¤Ë¤Ê¤ë'(A,B_1,C_1,B,C). É乿¤ÎÁȹ礻(A,B_1,C_1,B,C) :- 'A¤¬Éé¤Î»þ¤ÏÆó¿ô¤ÎÉ乿¤Ï°Û¤Ê¤ë'(A,B_1,C_1,B,C). 'A¤¬Àµ¤Î»þ¤ÏÆó¿ô¤ÎÉ乿¤ÏƱ¤¸¤Ë¤Ê¤ë'(A,B_1,C_1,B,C) :- A > 0, Æó¿ô¤ÎÉ乿¤ÏƱ¤¸¤Ë¤Ê¤ë(A,B_1,C_1,B,C). Æó¿ô¤ÎÉ乿¤ÏƱ¤¸¤Ë¤Ê¤ë(A,B,C,B,C). Æó¿ô¤ÎÉ乿¤ÏƱ¤¸¤Ë¤Ê¤ë(A,B_1,C_1,B,C) :- B is B_1 * -1, C is C_1 * -1. 'A¤¬Éé¤Î»þ¤ÏÆó¿ô¤ÎÉ乿¤Ï°Û¤Ê¤ë'(A,B_1,C_1,B,C) :- A < 0, Æó¿ô¤ÎÉ乿¤Ï°Û¤Ê¤ë(A,B_1,C_1,B,C). Æó¿ô¤ÎÉ乿¤Ï°Û¤Ê¤ë(A,B_1,C,B,C) :- B is B_1 * -1. Æó¿ô¤ÎÉ乿¤Ï°Û¤Ê¤ë(A,B,C_1,B,C) :- C is C_1 * -1. ½ÅÊ£²ò¤ò¼è¤ê½ü¤¯(_²ò¤Ê¤é¤Ó,_a,_b,_c,_d) :- append(L0,[[_a,_b,_c,_d]|_],_²ò¤Ê¤é¤Ó), \+(member([_c,_d,_a,_b],L0)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1533 # # Ãæ³Ø¿ô³Ø¤Î¤Ò¤È¤Ä¤Î»³¤È¤â¤¤¤¨¤ë¡¢°ø¿ôʬ²ò¡£ # ¿ô³Ø¤ò·ù¤¤¤Ë¤Ê¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¿Í¤â¿¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡© # ¤½¤ó¤Ê°ø¿ôʬ²ò¤ò¡¢¥×¥í¥°¥é¥ß¥ó¥°¤Ç²ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡ª # # ¢£ÌäÂê # Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ # ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢a, b, c, d¤ÎÃͤò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # # # ¢£Îã # ¡ÚÆþÎÏ¡Û # 4, -23, 15 # ¡Ú½ÐÎÏ¡Û # 4, -3, 1, -5 # # ¤Ä¤Þ¤ê¡¢4x2-23x+15¡á(4x-3)(x-5)¤È¤¤¤¦°ø¿ôʬ²ò¤ò¹Ô¤Ã¤¿·ë²Ì¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ # ¡Ê½ÐÎϤϡ¢½çÈÖ¤òÆþ¤ìÂØ¤¨¤¿1, -5, 4, -3¤Ç¤âÀµ²ò¤È¤Ê¤ê¤Þ¤¹¤¬¡¢¤¤¤º¤ì¤«°ìÊý¤ò½ÐÎϤ¹¤ë¤â¤Î¤È¤·¤Þ¤¹¡£¡Ë # ¤Ê¤ª¡¢¦Á¡¢¦Â¡¢¦Ã¤È¤·¤ÆÍ¿¤¨¤é¤ì¤ë¿ô»ú¤Ï¸ß¤¤¤ËÁǤÊÀ°¿ô¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ # ¢¨½ÐÎÏ¥¨¥é¡¼¤Îɽµ­¤Ï¡¢¥¨¥é¡¼¤È¤ï¤«¤ë²¿¤é¤«¤Î½ÐÎϤǹ½¤¤¤Þ¤»¤ó¡£¡Ê¢¨2015ǯ4·î20Æü13:30Äɵ­¡Ë # # # ºÇÄã¸Â¡¢°Ê²¼¤Î¥Æ¥¹¥È¥Ç¡¼¥¿¤ÇÀµ¤·¤¤½ÐÎϤ¬ÆÀ¤é¤ì¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿1¡§ÆþÎÏ¡Û # 3, 10, 3 # ¡Ú½ÐÎÏ¡Û # 1, 3, 3, 1 ¤Þ¤¿¤Ï 3, 1, 1, 3 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿2¡§ÆþÎÏ¡Û # 6, -1, -15 # ¡Ú½ÐÎÏ¡Û # 2, 3, 3, -5 ¤Þ¤¿¤Ï 3, -5, 2, 3 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿3¡§ÆþÎÏ¡Û # 12, -1, -6 # ¡Ú½ÐÎÏ¡Û # 3, 2, 4, -3 ¤Þ¤¿¤Ï 4, -3, 3, 2 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿4¡§ÆþÎÏ¡Û # 3, -8, 4 # ¡Ú½ÐÎÏ¡Û # 1, -2, 3, -2 ¤Þ¤¿¤Ï 3, -2, 1, -2 # # ¡Ú¥Æ¥¹¥È¥Ç¡¼¥¿5¡§ÆþÎÏ¡Û # 3, 5, 7 # ¡Ú½ÐÎÏ¡Û # ¥¨¥é¡¼ # 'Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢a, b, c, d¤ÎÃͤò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'(_¦Á,_¦Â,_¦Ã,_a,_b,_c,_d) :- findall([_a,_b,_c,_d], 'Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢'(_¦Á,_¦Â,_¦Ã,_a,_b,_c,_d),_²ò¤Ê¤é¤Ó), ½ÅÊ£²ò¤ò¼è¤ê½ü¤¯(_²ò¤Ê¤é¤Ó,_a,_b,_c,_d). 'Æó¼¡¼°¦Áx2+¦Âx¡Ü¦Ã¤Ë¤ª¤¤¤Æ¡¢·¸¿ô¦Á¡¢¦Â¡¢¦Ã¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤ò(ax+b)(cx+d)¤Î·Á¤Ë°ø¿ôʬ²ò¤·¡¢'(_¦Á,_¦Â,_¦Ã,_a,_b,_c,_d) :- ¸¡ººÈϰϤγÎÄê(_¦Á,_¦Ã,S_1,E_1,S_2,E_2), '_a,_b,_c,_d¤Î¸õÊä¤òÆÀ¤ë'(_¦Á,_¦Ã,S_1,E_1,S_2,E_2,_a,_b,_c,_d), _¦Â is _a * _d + _c * _b. '_a,_b,_c,_d¤Î¸õÊä¤òÆÀ¤ë'(_¦Á,_¦Ã,S_1,E_1,S_2,E_2,_a,_b,_c,_d) :- '_a,_c¸õÊä'(_¦Á,S_1,E_1,_a,_c), '_b,_d¸õÊä'(_¦Ã,S_2,E_2,_b,_d). '_a,_c¸õÊä'(_¦Á,S_1,E_1,_a,_c) :- between(S_1,E_1,_a), between(S_1,E_1,_c), _¦Á is _a * _c. '_b,_d¸õÊä'(_¦Ã,S_2,E_2,_b,_d) :- between(S_2,E_2,_b), between(S_2,E_2,_d), _¦Ã is _b * _d. ¸¡ººÈϰϤγÎÄê(_¦Á,_¦Ã,S_1,E_1,S_2,E_2) :- '_¦Á¤Î¸¡ººÈϰÏ'(_¦Á,S_1,E_1), '_¦Ã¤Î¸¡ººÈϰÏ'(_¦Ã,S_2,E_2). '_¦Á¤Î¸¡ººÈϰÏ'(_¦Á,S_1,E_1) :- E_1 is abs(_¦Á), S_1 is -1 * E_1. '_¦Ã¤Î¸¡ººÈϰÏ'(_¦Ã,S_2,E_2) :- E_2 is abs(_¦Ã), S_2 is -1 * E_2. ½ÅÊ£²ò¤ò¼è¤ê½ü¤¯(_²ò¤Ê¤é¤Ó,_a,_b,_c,_d) :- append(L0,[[_a,_b,_c,_d]|_],_²ò¤Ê¤é¤Ó), \+(member([_c,_d,_a,_b],L0)), '_a,_c¤È_b,_d¤Ë¤½¤ì¤¾¤ì-1¤ò³Ý¤±¤ë'(_a,_b,_c,_d,_a_1,_b_1,_c_1,_d_1), \+(member([_a_1,_b_1,_c_1,_d_1],L0)). '_a,_c¤È_b,_d¤Ë¤½¤ì¤¾¤ì-1¤ò³Ý¤±¤ë'(_a,_b,_c,_d,_a_1,_b_1,_c_1,_d_1) :- _a_1 is _a * -1, _b_1 is _b * -1, _c_1 is _c * -1, _d_1 is _d * -1. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1365 # # À®ÀÓ¤ÎʬÉۤʤɤòɽ¤¹¤Î¤Ë»È¤ï¤ì¤ëÅÙ¿ôʬÉÛɽ¡£ # ¤Ò¤ÈÌܤÇÁ´ÂΤ붤é¤Ð¤ê¶ñ¹ç¤¬¤ï¤«¤Ã¤ÆÊØÍø¤Ç¤¹¡£ # # ¡ÚÌäÂê¡Û # º£²ó¤ÏÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ¤òºî¤Ã¤Æ¤ß¤Þ¤¹¡£ # ÆþÎϤȤ·¤Æ2¤Ä¤ÎÀµ¤ÎÀ°¿ô¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ # °ì¤ÄÌܤÏʬÉÛ¤µ¤»¤ëÁÇ¿ô¤ÎºÇÂçÃÍ¡¢Æó¤ÄÌܤ϶èÀÚ¤ê¤ÎÂ礭¤µ¤Ç¤¹¡£ # Î㤨¤Ð¡¢30¤È5¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢30¤Þ¤Ç¤ÎÁÇ¿ô¤ò5¤Ç¶èÀڤäƽÐÎϤ·¤Þ¤¹¡£ # 30¤Þ¤Ç¤ÎÁÇ¿ô¤Ï2, 3, 5, 7, 11, 13, 17, 19, 23, 29¤Ç¤¹¤Î¤Ç¡¢ # ½ÐÎÏÆâÍÆ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ # 01-05:*** # 06-10:* # 11-15:** # 16-20:** # 21-25:* # 26-30:* # ƱÍͤˡ¢40¤È7¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£ # 01-07:**** # 08-14:** # 15-21:** # 22-28:* # 29-35:** # 36-42:* # ¾åµ­¤Î¤è¤¦¤Ë½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ # ¤Ê¤ª¡¢ºÇÄã¸Â¡¢°Ê²¼¤ÎÆþÎϤËÂФ·¤ÆÀµ¾ï¤Ëưºî¤¹¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ # ÆþÎÏ£±¡§100 15 # ÆþÎÏ£²¡§1200 25 # ÆþÎÏ£³¡§12345 789 # 'º£²ó¤ÏÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ¤òºî¤Ã¤Æ¤ß¤Þ¤¹¡£'(_ºÇÂçÃÍ,_¶èÀÚ¤ê) :- ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÅÙ¿ôʬÉÛɽ), ÅÙ¿ôʬÉۿޤȤ·¤ÆÉ½¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ºÇÂçÃÍ,_¶èÀÚ¤ê,_ÅÙ¿ôʬÉÛɽ) :- ÁÇ¿ô¤òÀ¸À®¤¹¤ë(_ºÇÂçÃÍ,_ÁÇ¿ô¤Ê¤é¤Ó), ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ÁÇ¿ô¤Ê¤é¤Ó,_¶èÀÚ¤ê,_ºÇÂçÃÍ,_ÅÙ¿ôʬÉÛɽ). ÁÇ¿ô¤òÀ¸À®¤¹¤ë(_ºÇÂçÃÍ,_ÁÇ¿ô¤Ê¤é¤Ó) :- findall(_¼«Á³¿ô,between(2,_ºÇÂçÃÍ,_¼«Á³¿ô),L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([M|R1],[M|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(M,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(M,R1,L) :- findall(N,( member(N,R1), \+(0 is N mod M)),L). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛɽ(_ÁÇ¿ô¤Ê¤é¤Ó,_¶èÀÚ¤ê,_ºÇÂçÃÍ,_ÅÙ¿ôʬÉÛɽ) :- findall([_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô],( ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,1,_¶èÀÚ¤ê,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô)),_ÅÙ¿ôʬÉÛɽ). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- ÈϰϤÈÅÙ¿ô¤òÆÀ¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô). ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- 'ÈϰϤò¤º¤é¤·¤Ê¤¬¤é¡¢ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ¤òÆÀ¤ë'(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô). ÈϰϤÈÅÙ¿ô¤òÆÀ¤ë(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- _Èϰϲ¼¸Â =< _ºÇÂçÃÍ, ÅÙ¿ô((between(_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÁÇ¿ô),member(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó)),_ÅÙ¿ô). 'ÈϰϤò¤º¤é¤·¤Ê¤¬¤é¡¢ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ¤òÆÀ¤ë'(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- _Èϰϲ¼¸Â_1 =< _ºÇÂçÃÍ, ¼¡¤ÎÈϰϤò³ÎÄꤹ¤ë(_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_¼¡¤ÎÈϰϲ¼¸Â,_¼¡¤ÎÈϰϾå¸Â), ÁÇ¿ô¤ÎÅÙ¿ôʬÉÛ(_ÁÇ¿ô¤Ê¤é¤Ó,_ºÇÂçÃÍ,_¶èÀÚ¤ê,_¼¡¤ÎÈϰϲ¼¸Â,_¼¡¤ÎÈϰϾå¸Â,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô). ¼¡¤ÎÈϰϤò³ÎÄꤹ¤ë(_¶èÀÚ¤ê,_Èϰϲ¼¸Â_1,_ÈϰϾå¸Â_1,_¼¡¤ÎÈϰϲ¼¸Â,_¼¡¤ÎÈϰϾå¸Â) :- _¼¡¤ÎÈϰϲ¼¸Â is _Èϰϲ¼¸Â_1 + _¶èÀÚ¤ê, _¼¡¤ÎÈϰϾå¸Â is _ÈϰϾå¸Â_1 + _¶èÀÚ¤ê. ÅÙ¿ô(_ÌÜɸ,_ÅÙ¿ô) :- findall(_,_ÌÜɸ,L), length(L,_ÅÙ¿ô). ÅÙ¿ôʬÉۿޤȤ·¤ÆÉ½¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ) :- ÈϰϤβ¼¸ÂÃͤȾå¸ÂÃͤΤ½¤ì¤¾¤ì¤ÎºÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô), ÈϰÏËè¤ËÃì¤òɽ¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô). ÈϰϤβ¼¸ÂÃͤȾå¸ÂÃͤΤ½¤ì¤¾¤ì¤ÎºÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô) :- Èϰϲ¼¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô), ÈϰϾå¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô). Èϰϲ¼¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô) :- findall(_·å¿ô,Èϰϲ¼¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_·å¿ô),L), max_list(L,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô). Èϰϲ¼¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_²¼¸Â·å¿ô) :- member([_Èϰϲ¼¸Â,_,_],_ÅÙ¿ôʬÉÛɽ), number_chars(_Èϰϲ¼¸Â,Chars), length(Chars,_²¼¸Â·å¿ô). ÈϰϾå¸ÂÃͤκÇÂçÃͤηå¿ô¤òÆÀ¤ë(_ÅÙ¿ôʬÉÛɽ,_ÈϰϤÎɽ¼¨·å¿ô) :- findall(_·å¿ô,ÈϰϾå¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_·å¿ô),L), max_list(L,_ÈϰϤÎɽ¼¨·å¿ô). ÈϰϾå¸ÂÃͤηå¿ô(_ÅÙ¿ôʬÉÛɽ,_¾å¸Â·å¿ô) :- member([_,_ÈϰϾå¸Â,_],_ÅÙ¿ôʬÉÛɽ), number_chars(_ÈϰϾå¸Â,Chars), length(Chars,_¾å¸Â·å¿ô). ÈϰÏËè¤ËÃì¤òɽ¼¨¤¹¤ë(_ÅÙ¿ôʬÉÛɽ,_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô) :- forall( member([_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô],_ÅÙ¿ôʬÉÛɽ), Ãì¤òɽ¼¨¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô)). Ãì¤òɽ¼¨¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÅÙ¿ô) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ÇÈϰϤòɽ¸½¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÈϰÏɽ¸½Ê¸»úÎó), À±Ê¸»úÎó(_ÅÙ¿ô,_À±Ê¸»úÎó), writef('%w:%w\n',[_ÈϰÏɽ¸½Ê¸»úÎó,_À±Ê¸»úÎó]). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ÇÈϰϤòɽ¸½¤¹¤ë(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ÈϰϾå¸Â,_ÈϰÏɽ¸½Ê¸»úÎó) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(_Èϰϲ¼¸Â¤Îɽ¼¨·å¿ô,_Èϰϲ¼¸Â,_ɽ¼¨Èϰϲ¼¸Â), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(_ÈϰϾå¸Â¤Îɽ¼¨·å¿ô,_ÈϰϾå¸Â,_ɽ¼¨ÈϰϾå¸Â), atomic_list_concat([_ɽ¼¨Èϰϲ¼¸Â,'-',_ɽ¼¨ÈϰϾå¸Â],_ÈϰÏɽ¸½Ê¸»úÎó). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(_·å¿ô,_¿ôÃÍ,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ò¹½À®¤¹¤ëÏȤòºî¤ë(_·å¿ô,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È), ¿ôÃͤòʸ»ú¤Î¥ê¥¹¥ÈÊÑ´¹¤·¤Æ¤½¤ÎƬÉô¤Ë¥¼¥í¤òËä¤á¤ë(_¿ôÃÍ,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È), ʸ»ú¥ê¥¹¥È¤òʸ»úÎó¤ËÊÑ´¹(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤ò¹½À®¤¹¤ëÏȤòºî¤ë(_·å¿ô,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È) :- length(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È,_·å¿ô). ¿ôÃͤòʸ»ú¤Î¥ê¥¹¥ÈÊÑ´¹¤·¤Æ¤½¤ÎƬÉô¤Ë¥¼¥í¤òËä¤á¤ë(_¿ôÃÍ,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È) :- number_chars(_¿ôÃÍ,_¿ô»ú¤Î¥ê¥¹¥È), append(_ƬÉô¤ÎÏȥꥹ¥È,_¿ô»ú¤Î¥ê¥¹¥È,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È), Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸(_ƬÉô¤ÎÏȥꥹ¥È,'0'). Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸([],_). Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸([V|R],V) :- Á´¤Æ¤ÎÍ×ÁǤ¬Æ±¤¸(R,V). À±Ê¸»úÎó(_ÅÙ¿ô,_À±Ê¸»úÎó) :- findall(*,between(1,_ÅÙ¿ô,_),L), atomic_list_concat(L,_À±Ê¸»úÎó). ʸ»ú¥ê¥¹¥È¤òʸ»úÎó¤ËÊÑ´¹(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½) :- atom_chars(_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¿ôÃÍɽ¸½,_¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤µ¤ì¤¿¥ê¥¹¥È). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¸¡º÷¤·¤¿ÍѸì¤Î°åÎÅÍѸì¤Ç¤¢¤ë³Î¿®ÅÙ(_ʸ»úÎó,_¸¡º÷¤·¤¿ÍѸì,_ÊѰÌ,_ʸ»ú¿ô,_°åÎÅÍѸì,_°åÎÅÍѸìʸ»ú¿ô,_³Î¿®ÅÙ) :- ºÇ¤âŤ¤°åÎÅÍѸì(_ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô), ¸¡º÷¤·¤¿ÍѸì(_ʸ»úÎó,_ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô,_ÊѰÌ,_ʸ»ú¿ô,_¸¡º÷¤·¤¿ÍѸì), ¸¡º÷¤·¤¿ÍѸì¤Ï°åÎÅÍѸì¤Ç¤¢¤ê¤½¤Î³Î¿®ÅÙ¤Ï(_¸¡º÷¤·¤¿ÍѸì,_ʸ»ú¿ô,_°åÎÅÍѸì,_°åÎÅÍѸìʸ»ú¿ô,_³Î¿®ÅÙ). ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô(_ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô) :- findmax(_ʸ»ú¿ô,( °åÎÅÍѸ콸(_°åÎÅÍѸì), sub_atom(_°åÎÅÍѸì,0,_ʸ»ú¿ô,0,_°åÎÅÍѸì)),_ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô). ¸¡º÷¤·¤¿ÍѸì(_ʸ»úÎó,_ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô,_ÊѰÌ,_ʸ»ú¿ô,_¸¡º÷¤·¤¿ÍѸì) :- sub_atom(_ʸ»úÎó,_ÊѰÌ,_ʸ»ú¿ô,_,_¸¡º÷¤·¤¿ÍѸì), between(1,_ºÇ¤âŤ¤°åÎÅÍѸìʸ»ú¿ô,_ʸ»ú¿ô). ¸¡º÷¤·¤¿ÍѸì¤Ï°åÎÅÍѸì¤Î°ìÉô¤ò¹½À®¤¹¤ë(_¸¡º÷¤·¤¿ÍѸì,_ʸ»ú¿ô,_°åÎÅÍѸì,_°åÎÅÍѸìʸ»ú¿ô) :- °åÎÅÍѸ콸(_°åÎÅÍѸì), sub_atom(_°åÎÅÍѸì,0,_°åÎÅÍѸì¤Îʸ»ú¿ô,0,_°åÎÅÍѸì), sub_atom(_°åÎÅÍѸì,_,_ʸ»ú¿ô,_,_¸¡º÷¤·¤¿ÍѸì). ¸¡º÷¤·¤¿ÍѸì¤Ï°åÎÅÍѸì¤Ç¤¢¤ê¤½¤Î³Î¿®ÅÙ¤Ï(_¸¡º÷¤·¤¿ÍѸì,_ʸ»ú¿ô,_°åÎÅÍѸì,_°åÎÅÍѸìʸ»ú¿ô,_³Î¿®ÅÙ) :- ¸¡º÷¤·¤¿ÍѸì¤Ï°åÎÅÍѸì¤Î°ìÉô¤ò¹½À®¤¹¤ë(_¸¡º÷¤·¤¿ÍѸì,_ʸ»ú¿ô,_°åÎÅÍѸì,_°åÎÅÍѸìʸ»ú¿ô), _³Î¿®ÅÙ is _ʸ»ú¿ô / _°åÎÅÍѸì¤Îʸ»ú¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¾®¤Î·î(_¾®¤Î·î) :- '½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦'(_¾®¤Î·î). '½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦'(_¾®¤Î·î) :- ½½Æó¥ö·î¤ÎÃæ¤Ç(_¾®¤Î·î), 'Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦'(_¾®¤Î·î). ½½Æó¥ö·î¤ÎÃæ¤Ç(_·î) :- between(1,12,_·î). 'Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦'(_¾®¤Î·î) :- 'Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢'(_Âç¤Î·î), ¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦(_Âç¤Î·î,_¾®¤Î·î). 'Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢'(_Âç¤Î·î) :- Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(_Âç¤Î·î). Âç¤Î·î(_Âç¤Î·î) :- 'Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢'(_Âç¤Î·î). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(1). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(3). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(5). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(7). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(8). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(10). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î(12). ¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦(_Âç¤Î·î,_¾®¤Î·î) :- \+(_Âç¤Î·î = _¾®¤Î·î). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¾®¤Î·î(_¾®¤Î·î) :- ½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦(_¾®¤Î·î). ½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦(_¾®¤Î·î) :- ½½Æó¥ö·î¤ÎÃæ¤Ç(_¾®¤Î·î), Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò(_¾®¤Î·î). ½½Æó¥ö·î¤ÎÃæ¤Ç(_·î) :- between(1,12,_·î). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò(_¾®¤Î·î) :- \+((·îËöÆü¤¬31Æü¤Î·î(_·îËöÆü¤¬31Æü¤Î·î¤Ê¤é¤Ó),member(_¾®¤Î·î,_·îËöÆü¤¬31Æü¤Î·î¤Ê¤é¤Ó)). ·îËöÆü¤¬31Æü¤Î·î([1,3,5,7,8,10,12]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¾®¤Î·î(_¾®¤Î·î) :- ½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦(_¾®¤Î·î). ½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦(_¾®¤Î·î) :- ½½Æó¥ö·î¤ÎÃæ¤Ç(_¾®¤Î·î), Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò(_¾®¤Î·î). ½½Æó¥ö·î¤ÎÃæ¤Ç(_·î) :- between(1,12,_·î). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò(_¾®¤Î·î) :- \+(·îËöÆü¤¬31Æü¤Î·î(_¾®¤Î·î)). ·îËöÆü¤¬31Æü¤Î·î(1). ·îËöÆü¤¬31Æü¤Î·î(3). ·îËöÆü¤¬31Æü¤Î·î(5). ·îËöÆü¤¬31Æü¤Î·î(7). ·îËöÆü¤¬31Æü¤Î·î(8). ·îËöÆü¤¬31Æü¤Î·î(10). ·îËöÆü¤¬31Æü¤Î·î(12). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¾®¤Î·î(_¾®¤Î·î) :- '½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦'(_¾®¤Î·î). '½½Æó¥ö·î¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Î·î¤òÂç¤Î·î¤È¤¤¤¤¡¢¤³¤ÎÂç¤Î·î¤Ç¤Ê¤¤·î¤ò¾®¤Î·î¤È¤¤¤¦'(_¾®¤Î·î) :- ½½Æó¥ö·î¤ÎÃæ¤Ç(_¾®¤Î·î), Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò(_¾®¤Î·î). ½½Æó¥ö·î¤ÎÃæ¤Ç(_·î) :- between(1,12,_·î). Äê¤á¤é¤ì¤¿·îËöÆü¤¬31Æü¤Ç¤Ï¤Ê¤¤·î¤ò(_¾®¤Î·î) :- \+(·îËöÆü¤¬31Æü¤Î·î(_¾®¤Î·î)). ·îËöÆü¤¬31Æü¤Î·î(1). ·îËöÆü¤¬31Æü¤Î·î(3). ·îËöÆü¤¬31Æü¤Î·î(5). ·îËöÆü¤¬31Æü¤Î·î(7). ·îËöÆü¤¬31Æü¤Î·î(8). ·îËöÆü¤¬31Æü¤Î·î(10). ·îËöÆü¤¬31Æü¤Î·î(12). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1385 ¸À¸ìÉÔÌä¡§ÄÌʬ¤ÈÌóʬ¤ò¼ÂÁõ¤·¤è¤¦ # # ¾®³ØÀ¸¤¬Ê¬¿ô¤ò³Ø¤Ö¤È¤­¤Ë¡¢ºÇ½é¤Ëíµ¤¯¤Î¤¬¡ÖÄÌʬ¡×¤Ç¤¹¡£ # # ʬÊì¤Î°Û¤Ê¤ëʬ¿ô¤Î­¤·»»¤ä°ú¤­»»¤ò¹Ô¤¦¤È¤­¡¢Àè¤ËÄÌʬ¤ò¹Ô¤Ã¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ # # ¤Þ¤¿¡¢·×»»¤·¤¿·ë²Ì¡¢¡ÖÌóʬ¡×¤Ç¤­¤ë¾ì¹ç¤Ï¡¢²Äǽ¤Ê¸Â¤ê´Êñ¤Êʬ¿ô¤Ë¤·¤Ê¤¤¤ÈÀµ²ò¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ # # ¡ÚÌäÂê¡Û # # ¤Ç¤Ï¡¢ÆþÎϤµ¤ì¤ëÆó¤Ä¤Îʬ¿ô¤Ë¤Ä¤¤¤ÆÂ­¤·»»¤ò¹Ô¤Ã¤¿»þ¤Ë¡¢ # # Àµ¤·¤¤Åú¤¨¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºî¤ê¡¢ # # Ìä1¡ÁÌä5¤Îɸ½àÆþÎϤËÂФ·¤Æ¡¢½ÐÎÏÆâÍÆ¤òÅú¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # ¢¨Ê¬Ê줬£±¤Î»þ¤Ë¤ÏÀ°¿ô¤È¤·¤Æ½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # # ¢£Îã # # Îã1¡Ë # # ¡Úɸ½àÆþÎÏ¡Û # # 5/6 # # 1/10 # # ¡Úɸ½à½ÐÎÏ¡Û # # 14/15 # # Îã2¡Ë # # ¡Úɸ½àÆþÎÏ¡Û # # 1/3 # # 2/3 # # ¡Úɸ½à½ÐÎÏ¡Û # # 1 # # ¢£Ìä1¡Á5 # # Ìä1) # # 1/3 # # 2/7 # # Ìä2) # # 2/8 # # 3/5 # # Ìä3) # # 3/10 # # 1/6 # # Ìä4) # # 3/4 # # 5/8 # # Ìä5) # # 2/5 # # 2/3 # # ¡Ú²òÅúÊýË¡¡Û # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ëanswer_q1385.txt¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢É¬Í×»ö¹à¤ò¤´µ­Æþ¤¯¤À¤µ¤¤¡£ # # ɬ¿Ü»ö¹à¤¬¤¹¤Ù¤Æµ­Æþ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò¤´³Îǧ¤¤¤¿¤À¤¤¤¿¸å¡¢¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î¤Þ¤Þ¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡ÚÃí°Õ¡Û # # ¡¦¤´Äó½Ð¤¤¤¿¤À¤¤¤¿¥×¥í¥°¥é¥à¤Ï¸ÄÊ̤˼¹ԥƥ¹¥È¤ò¹Ô¤¤¤Þ¤¹¤Î¤Ç¡¢ # # ¡¡²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤¿²òÅú¤¬Àµ²ò¤·¤Æ¤¤¤Æ¤âºÇ¹âɾ²Á¤Ë¤Ê¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£ # # ¡¦¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÏÉÔÌä¤Ç¤¹¤¬¡¢¸Å¤¹¤®¤ë¼Â¹Ô´Ä¶­¡¦ÆÃ¼ì¤ÊÀßÈ÷¤òÍפ¹¤ë¼Â¹Ô´Ä¶­¤Ç¤ÏºÎÅÀ¤Ç¤­¤Ê¤¤¾ì¹ç¤¬¤´¤¶¤¤¤Þ¤¹¡£ # # ¡¦»ÈÍѤ¹¤ë¸À¸ì¤Ï1²òÅú¤Ë¤Ä¤­É¬¤º1¼ïÎà¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£ # # ¡¡¤É¤¦¤·¤Æ¤âÊ£¿ô¤Î¸À¸ì¤òÍѤ¤¤ë¾ì¹ç¤Ï¡¢²òÅú¤Ë¡Ö¥á¥¤¥ó¤Î¸À¸ì̾¡×¤òÌÀµ­¤·¤Æ¤¯¤À¤µ¤¤¡£ # 'Ìä1¡ÁÌä5¤Îɸ½àÆþÎϤËÂФ·¤Æ¡¢½ÐÎÏÆâÍÆ¤òÅú¤¨¤Æ¤¯¤À¤µ¤¤¡£ ¢£Ìä1¡Á5 Ìä1) 1/3 2/7 Ìä2) 2/8 3/5 Ìä3) 3/10 1/6 Ìä4) 3/4 5/8 Ìä5) 2/5 2/3' :- between(1,5,N), 'ÆþÎϤµ¤ì¤ëÆó¤Ä¤Îʬ¿ô¤Ë¤Ä¤¤¤ÆÂ­¤·»»¤ò¹Ô¤Ã¤¿»þ¤Ë¡¢Àµ¤·¤¤Åú¤¨¤ò½ÐÎϤ¹¤ë', N = 5. 'ÆþÎϤµ¤ì¤ëÆó¤Ä¤Îʬ¿ô¤Ë¤Ä¤¤¤ÆÂ­¤·»»¤ò¹Ô¤Ã¤¿»þ¤Ë¡¢Àµ¤·¤¤Åú¤¨¤ò½ÐÎϤ¹¤ë' :- ÆþÎϤµ¤ì¤ëÆó¤Ä¤Îʬ¿ô(_ʬ»Ò_1 / _ʬÊì_1,_ʬ»Ò_2 / _ʬÊì_2), ʬ¿ô¤Î²Ã»»(_ʬ»Ò_1 / _ʬÊì_1,_ʬ»Ò_2 / _ʬÊì_2,_²Ã»»¤µ¤ì¤¿Ê¬»Ò / _²Ã»»¤µ¤ì¤¿Ê¬Êì), Ìóʬ(_²Ã»»¤µ¤ì¤¿Ê¬»Ò / _²Ã»»¤µ¤ì¤¿Ê¬Êì,_Ìóʬ¤µ¤ì¤¿Ê¬»Ò / _Ìóʬ¤µ¤ì¤¿Ê¬Êì), Åú¤¨¤ò½ÐÎϤ¹¤ë(_Ìóʬ¤µ¤ì¤¿Ê¬»Ò / _Ìóʬ¤µ¤ì¤¿Ê¬Êì). ʬ¿ô¤Î²Ã»»(_ʬ»Ò_1 / _ʬÊì_1,_ʬ»Ò_2 / _ʬÊì_2,_²Ã»»¤µ¤ì¤¿Ê¬»Ò / _ÄÌʬ¤µ¤ì¤¿Ê¬Êì) :- ÄÌʬ(_ʬ»Ò_1 / _ʬÊì_1,_ʬ»Ò_2 / _ʬÊì_2,_ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_1 / _ÄÌʬ¤µ¤ì¤¿Ê¬Êì,_ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_2 / _ÄÌʬ¤µ¤ì¤¿Ê¬Êì), _²Ã»»¤µ¤ì¤¿Ê¬»Ò is _ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_1 + _ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_2,!. ÆþÎϤµ¤ì¤ëÆó¤Ä¤Îʬ¿ô(_ʬ»Ò_1 / _ʬÊì_1,_ʬ»Ò_2 / _ʬÊì_2) :- ÆþÎϤµ¤ì¤ëʬ¿ô(_ʬ»Ò_1 / _ʬÊì_1), ÆþÎϤµ¤ì¤ëʬ¿ô(_ʬ»Ò_2 / _ʬÊì_2). ÆþÎϤµ¤ì¤ëʬ¿ô(_ʬ»Ò / _ʬÊì) :- ¹ÔÆþÎÏ(_¹Ô), read_term_from_atom(_¹Ô,_ʬ»Ò / _ʬÊì,[]). ¹ÔÆþÎÏ(_¹Ô) :- get_char(_ÀèÆÉ¤ßʸ»ú), ¹Ô¤Ê¤é¤Ó¤òÆÀ¤ë(_ÀèÆÉ¤ßʸ»ú,_¹Ô¤Ê¤é¤Ó), atom_chars(_¹Ô,_¹Ô¤Ê¤é¤Ó). ¹Ô¤Ê¤é¤Ó¤òÆÀ¤ë('\n',[]) :- !. ¹Ô¤Ê¤é¤Ó¤òÆÀ¤ë(_ÀèÆÉ¤ßʸ»ú,[_ÀèÆÉ¤ßʸ»ú|R]) :- get_char(_¼¡¤Îʸ»ú), ¹Ô¤Ê¤é¤Ó¤òÆÀ¤ë(_¼¡¤Îʸ»ú,R). Åú¤¨¤ò½ÐÎϤ¹¤ë(_Ìóʬ¤µ¤ì¤¿Ê¬»Ò / _Ìóʬ¤µ¤ì¤¿Ê¬Êì) :- writef('%t\n',[_Ìóʬ¤µ¤ì¤¿Ê¬»Ò / _Ìóʬ¤µ¤ì¤¿Ê¬Êì]). Ìóʬ(_ʬ»Ò / _ʬÊì,X) :- ºÇÂç¸øÌó¿ô¤Çʬ»ÒʬÊì¤ò³ä¤Ã¤ÆÌóʬ¤¹¤ë(_ʬ»Ò,_ʬÊì,_ʬ»Ò_1,_ʬÊì_1), Éé¿ô¤Î¾ì¹ç¤Î¥Þ¥¤¥Ê¥¹É乿¤Ïʬ»Ò¦¤ËÉÕ¤±¤ë(_ʬ»Ò_1,_ʬÊì_1,_ʬ»Ò_2,_ʬÊì_2), ʬÊ줬1¤Î»þ¤ÏÀ°¿ô¤ËÊÑ·Á(_ʬ»Ò_2,_ʬÊì_2,X). ºÇÂç¸øÌó¿ô¤Çʬ»ÒʬÊì¤ò³ä¤Ã¤ÆÌóʬ¤¹¤ë(_ʬ»Ò_1,_ʬÊì_1,_ʬ»Ò,_ʬÊì) :- ºÇÂç¸øÌó¿ô(_ʬ»Ò_1,_ʬÊì_1,_ºÇÂç¸øÌó¿ô), _ʬ»Ò is _ʬ»Ò_1 // _ºÇÂç¸øÌó¿ô, _ʬÊì is _ʬÊì_1 // _ºÇÂç¸øÌó¿ô. Éé¿ô¤Î¾ì¹ç¤Î¥Þ¥¤¥Ê¥¹É乿¤Ïʬ»Ò¦¤ËÉÕ¤±¤ë(_ʬ»Ò_1,_ʬÊì_1,_ʬ»Ò,_ʬÊì) :- ʬÊ줬Éé¿ô¤À¤Ã¤¿¤éʬ»ÒʬÊì¤È¤â¤ËÉ乿¤òȿž¤¹¤ë(_ʬ»Ò_1,_ʬÊì_1,_ʬ»Ò,_ʬÊì),!. Éé¿ô¤Î¾ì¹ç¤Î¥Þ¥¤¥Ê¥¹É乿¤Ïʬ»Ò¦¤ËÉÕ¤±¤ë(_ʬ»Ò,_ʬÊì,_ʬ»Ò,_ʬÊì). ʬÊ줬Éé¿ô¤À¤Ã¤¿¤éʬ»ÒʬÊì¤È¤â¤ËÉ乿¤òȿž¤¹¤ë(_ʬ»Ò_1,_ʬÊì_1,_ʬ»Ò,_ʬÊì) :- _ʬÊì_1 =< 0, _ʬ»Ò is _ʬ»Ò_1 * -1, _ʬÊì is _ʬÊì_1 * -1. ʬÊ줬1¤Î»þ¤ÏÀ°¿ô¤ËÊÑ·Á(_ʬ»Ò,1,_ʬ»Ò) :- !. ʬÊ줬1¤Î»þ¤ÏÀ°¿ô¤ËÊÑ·Á(_ʬ»Ò,1.0,_ʬ»Ò) :- !. ʬÊ줬1¤Î»þ¤ÏÀ°¿ô¤ËÊÑ·Á(_ʬ»Ò,_ʬÊì,_ʬ»Ò / _ʬÊì). ÄÌʬ(_ʬ»Ò_1 / _ʬÊì_1,_ʬ»Ò_2 / _ʬÊì_2,_ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_1 / _ºÇ¾®¸øÇÜ¿ô,_ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_2 / _ºÇ¾®¸øÇÜ¿ô) :- ºÇ¾®¸øÇÜ¿ô([_ʬÊì_1,_ʬÊì_2],_ºÇ¾®¸øÇÜ¿ô), _ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_1 is _ʬ»Ò_1 * (_ºÇ¾®¸øÇÜ¿ô // _ʬÊì_1), _ÄÌʬ¤µ¤ì¤¿Ê¬»Ò_2 is _ʬ»Ò_2 * (_ºÇ¾®¸øÇÜ¿ô // _ʬÊì_2). ºÇÂç¸øÌó¿ô([_À°¿ô],_À°¿ô). ºÇÂç¸øÌó¿ô([_À°¿ô|R],_ºÇÂç¸øÌó¿ô) :- ºÇÂç¸øÌó¿ô(R,_ºÇÂç¸øÌó¿ô_2), Æó¤Ä¤ÎÀ°¿ô¤ÎºÇÂç¸øÌó¿ô(_À°¿ô,_ºÇÂç¸øÌó¿ô_2,_ºÇÂç¸øÌó¿ô). Æó¤Ä¤ÎÀ°¿ô¤ÎºÇÂç¸øÌó¿ô(M,N,X) :- Æó¤Ä¤ÎÀ°¿ô¤ÎÀäÂÐÃͤò¤È¤ë(M,N,M_2,N_2), ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M_2,N_2,Y), Éé¿ô²ò¤Î²ÄǽÀ­¤âõ¤ë(M,M_2,N,N_2,Y,X). Éé¿ô²ò¤Î²ÄǽÀ­¤âõ¤ë(M,M_2,N,N_2,Y,X) :- setof(X,[M,M_2,N,N_2,Y,X] ^ Éé¿ô²ò¤Î²ÄǽÀ­(M,M_2,N,N_2,Y,X),L), member(X,L). Éé¿ô²ò¤Î²ÄǽÀ­(M,M_2,_,_,Y,X) :- X is Y * (M // M_2). Éé¿ô²ò¤Î²ÄǽÀ­(_,_,N,N_2,Y,X) :- X is Y * (N // N_2). Æó¤Ä¤ÎÀ°¿ô¤ÎÀäÂÐÃͤò¤È¤ë(M,N,M_2,N_2) :- M_2 is abs(M), N_2 is abs(N). ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X). ºÇ¾®¸øÇÜ¿ô(_À°¿ô_1,_À°¿ô_2,_ºÇ¾®¸øÇÜ¿ô) :- Æó¤Ä¤ÎÀ°¿ô¤ÎºÇ¾®¸øÇÜ¿ô(_À°¿ô_1,_À°¿ô_2,_ºÇ¾®¸øÇÜ¿ô). ºÇ¾®¸øÇÜ¿ô(_À°¿ô¤Ê¤é¤Ó,_ºÇ¾®¸øÇÜ¿ô) :- 'ºÇ¾®¸øÇÜ¿ô¤È¤Ï¡¢0¤Ç¤Ï¤Ê¤¤Ê£¿ô¤ÎÀ°¿ô¤Î¸øÇÜ¿ô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤ò¤µ¤¹'(_À°¿ô¤Ê¤é¤Ó,_ºÇ¾®¸øÇÜ¿ô). 'ºÇ¾®¸øÇÜ¿ô¤È¤Ï¡¢0¤Ç¤Ï¤Ê¤¤Ê£¿ô¤ÎÀ°¿ô¤Î¸øÇÜ¿ô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤ò¤µ¤¹'([_À°¿ô],_À°¿ô). 'ºÇ¾®¸øÇÜ¿ô¤È¤Ï¡¢0¤Ç¤Ï¤Ê¤¤Ê£¿ô¤ÎÀ°¿ô¤Î¸øÇÜ¿ô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤ò¤µ¤¹'([_À°¿ô|R],_ºÇ¾®¸øÇÜ¿ô) :- 'ºÇ¾®¸øÇÜ¿ô¤È¤Ï¡¢0¤Ç¤Ï¤Ê¤¤Ê£¿ô¤ÎÀ°¿ô¤Î¸øÇÜ¿ô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤ò¤µ¤¹'(R,_ºÇ¾®¸øÇÜ¿ô_1), Æó¤Ä¤ÎÀ°¿ô¤ÎºÇ¾®¸øÇÜ¿ô(_À°¿ô,_ºÇ¾®¸øÇÜ¿ô_1,_ºÇ¾®¸øÇÜ¿ô). Æó¤Ä¤ÎÀ°¿ô¤ÎºÇ¾®¸øÇÜ¿ô(A,B,X) :- Æó¤Ä¤ÎÀ°¿ô¤ÎºÇÂç¸øÌó¿ô(A,B,_ºÇÂç¸øÌó¿ô), X is A * B // _ºÇÂç¸øÌó¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë # # »öÎã¤È¤·¤Æ¡¢¤¢¤¼¤È¤¤¤Ø¤«¤ÎËüÍÕ²¾Ì¾É½µ­Éôʬ¤ÎÀ¸À® # ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,_½Ä½ñʸ½ñ) :- ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,0,_½Ä½ñʸ½ñ). ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,_¹Ô¤Ê¤é¤Ó), ¹Ô¤Ê¤é¤Ó¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). ¹Ô¤Ê¤é¤Ó¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- ºÇÂçʸ»úÎóŤòÄ´¤Ù¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_¶ë·Á¤Ê¤é¤Ó), ¹Ô¤Ê¤é¤Ó¤òžÃÖ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤·¤Æ½Ä½ñʸ½ñ¤Ë¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤·¤Æ½Ä½ñʸ½ñ¤Ë¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,[_Á°Ê¸»úÎó|R]) :- ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë(_²£½ñʸ½ñ,_Á°Ê¸»úÎó,_¸åʸ»úÎó), ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_¸åʸ»úÎó,R). ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_ʸ»úÎó,R) :- ²þ¹Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹çÄä»ß¤¹¤ë(_ʸ»úÎó,R). ²þ¹Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹çÄä»ß¤¹¤ë('',[]) :- !. ²þ¹Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹çÄä»ß¤¹¤ë(_ʸ½ñ,[_ʸ½ñ]). ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë(_²£½ñʸ½ñ,_Á°Ê¸»úÎó,_¸åʸ»úÎó) :- sub_atom(_²£½ñʸ½ñ,S,1,R,'\n'), sub_atom(_²£½ñʸ½ñ,0,S,_,_Á°Ê¸»úÎó), sub_atom(_²£½ñʸ½ñ,_,R,0,_¸åʸ»úÎó),!. ºÇÂçʸ»úÎóŤòÄ´¤Ù¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_¶ë·Á¤Ê¤é¤Ó) :- ºÇÂçʸ»úÎóŤòÄ´¤Ù(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ), ¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ,_¶ë·Á¤Ê¤é¤Ó). ºÇÂçʸ»úÎóŤòÄ´¤Ù(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ) :- findmax(_ʸ»ú¿ô,( member(_¹Ô,_¹Ô¤Ê¤é¤Ó), atom_length(_¹Ô,_ʸ»ú¿ô)),_ºÇÂçʸ»úÎóĹ). ¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ,_¶ë·Á¤Ê¤é¤Ó) :- findall(_¶õÇò¤òÉղä·¤¿Ê¸»úÎó,( member(_¹Ô,_¹Ô¤Ê¤é¤Ó), ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó)),_¶ë·Á¤Ê¤é¤Ó). ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó) :- atom_length(_¹Ô,_ʸ»úÎóĹ), ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó). ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó) :- 㤷¤Ê¤¤Ê¸»ú¿ô¤Î¶õÇò(_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇòʸ»úÎó), atom_concat(_¹Ô,_¶õÇòʸ»úÎó,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó). 㤷¤Ê¤¤Ê¸»ú¿ô¤Î¶õÇò(_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇòʸ»úÎó) :- _nth1 is _ºÇÂçʸ»úÎóĹ - _ʸ»úÎóĹ, findall('¡¡',( between(1,_nth1,_)),_¶õÇòʸ»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_¶õÇòʸ»úÎó,_¶õÇòʸ»ú¤Ê¤é¤Ó). ¹Ô¤Ê¤é¤Ó¤òžÃÖ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó) :- ¶ë·Áʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_¶ë·Áʸ»ú¤Ê¤é¤Ó), žÃÖ(_¶ë·Áʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó), žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó¤ò¹Ô¤Ê¤é¤Ó¤ËÊÑ´¹(_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó). ¶ë·Áʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_¶ë·Áʸ»ú¤Ê¤é¤Ó) :- findall(_ʸ»ú¤Ê¤é¤Ó,( member(_¹Ô,_¶ë·Á¤Ê¤é¤Ó), ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¹Ô,_ʸ»ú¤Ê¤é¤Ó)),_¶ë·Áʸ»ú¤Ê¤é¤Ó). žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó¤ò¹Ô¤Ê¤é¤Ó¤ËÊÑ´¹(_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó) :- findall(_ʸ»úÎó,( member(_ʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó)),_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó). žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó¤Î³Æ¹Ôʸ»úÎó¤òȿž¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_ȿž¤·¤¿¹Ôʸ»úÎó) :- member(_¹Ôʸ»úÎó,_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ʸ»úÎó¤Îȿž(_¹Ôʸ»úÎó,_ȿž¤·¤¿¹Ôʸ»úÎó). ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó) :- findall(_ȿž¤·¤¿¹Ôʸ»úÎó,( member(_¹Ôʸ»úÎó,_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ʸ»úÎó¤Îȿž(_¹Ôʸ»úÎó,_ȿž¤·¤¿¹Ôʸ»úÎó)),_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó). ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç(_¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_¶ë·Á¤Ê¤é¤Ó_1), ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_½Ä½ñʸ½ñ). Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç(_¶ë·Á¤Ê¤é¤Ó_1,_Îó´Ö³Öʸ»ú¿ô,_¶ë·Á¤Ê¤é¤Ó_2) :- Îó´Ö³Öʸ»ú(_Îó´Ö³Öʸ»ú¿ô,_Îó´Ö³Öʸ»ú), findall(_¹Ô,( ¹Ôʸ»ú¤Î´Ö¤ËÎó´Ö³Öʸ»ú¤òÁÞÆþ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_Îó´Ö³Öʸ»ú,_¹Ô)),_¶ë·Á¤Ê¤é¤Ó_2). Îó´Ö³Öʸ»ú(_Îó´Ö³Öʸ»ú¿ô,_Îó´Ö³Öʸ»ú) :- findall('¡¡',( between(1,_Îó´Ö³Öʸ»ú¿ô,_)),_Îó´Ö³Öʸ»ú¤Ê¤é¤Ó), atomic_list_concat(_Îó´Ö³Öʸ»ú¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú). ¹Ôʸ»ú¤Î´Ö¤ËÎó´Ö³Öʸ»ú¤òÁÞÆþ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_Îó´Ö³Öʸ»ú,_¹Ô) :- member(_¹Ô_1,_¶ë·Á¤Ê¤é¤Ó_1), ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¹Ô_1,_ʸ»ú¤Ê¤é¤Ó), atomic_list_concat(_ʸ»ú¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú,_¹Ô). ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_½Ä½ñʸ½ñ) :- atomic_list_concat(_¶ë·Á¤Ê¤é¤Ó_1,'\n',_½Ä½ñʸ½ñ). ʸ»úÎó¤Îȿž(_ʸ»úÎó,_ȿž¤·¤¿Ê¸»úÎó) :- ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òȿž¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_ȿž¤·¤¿Ê¸»úÎó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó) :- atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó). ʸ»ú¤Ê¤é¤Ó¤òȿž¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó) :- reverse(_ʸ»ú¤Ê¤é¤Ó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó). ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_ȿž¤·¤¿Ê¸»úÎó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó) :- atom_chars(_ȿž¤·¤¿Ê¸»úÎó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó). žÃÖ([],[],[]) :- !. žÃÖ([[A|R1]|R2],[R1|R3],[A|R4]) :- žÃÖ(R2,R3,R4). žÃÖ([[]|_],[]) :- !. žÃÖ(L,[L1|R2]) :- žÃÖ(L,L2,L1), žÃÖ(L2,R2). findmax(A,P,_ºÇÂçÃÍ) :- findall(A,P,L), max_list(L,_ºÇÂçÃÍ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë # # »öÎã¤È¤·¤Æ¡¢¤¢¤¼¤È¤¤¤Ø¤«¤ÎËüÍÕ²¾Ì¾É½µ­Éôʬ¤ÎÀ¸À® # :- op(700,xfx,¤Ï). ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,_½Ä½ñʸ½ñ) :- ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,0,_½Ä½ñʸ½ñ). ²£½ñʸ½ñ¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,_¹Ô¤Ê¤é¤Ó), ¹Ô¤Ê¤é¤Ó¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). ¹Ô¤Ê¤é¤Ó¤ò½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- ºÇÂçʸ»úÎóŤòÄ´¤Ù¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_¶ë·Á¤Ê¤é¤Ó), ¹Ô¤Ê¤é¤Ó¤òžÃÖ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤·¤Æ½Ä½ñʸ½ñ¤Ë¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤·¤Æ½Ä½ñʸ½ñ¤Ë¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_²£½ñʸ½ñ,[_Á°Ê¸»úÎó|R]) :- ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë(_²£½ñʸ½ñ,_Á°Ê¸»úÎó,_¸åʸ»úÎó), ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_¸åʸ»úÎó,R). ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë¹Ô¤Ê¤é¤Ó¤ËÊÑ·Á¤¹¤ë(_ʸ»úÎó,R) :- ²þ¹Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹çÄä»ß¤¹¤ë(_ʸ»úÎó,R). ²þ¹Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹çÄä»ß¤¹¤ë('',[]) :- !. ²þ¹Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹çÄä»ß¤¹¤ë(_ʸ½ñ,[_ʸ½ñ]). ²þ¹Ô¤ò¶èÀÚ¤ê¤Ë(_²£½ñʸ½ñ,_Á°Ê¸»úÎó,_¸åʸ»úÎó) :- Éûʸ»úÎó(_²£½ñʸ½ñ,_ÀèÆ¬¤«¤é¤ÎÊѰÌ,1,_ËöÈø¤«¤é¤ÎÊѰÌ,'\n'), Éûʸ»úÎó(_²£½ñʸ½ñ,0,_ÀèÆ¬¤«¤é¤ÎÊѰÌ,_,_Á°Ê¸»úÎó), Éûʸ»úÎó(_²£½ñʸ½ñ,_,_ËöÈø¤«¤é¤ÎÊѰÌ,0,_¸åʸ»úÎó),!. ºÇÂçʸ»úÎóŤòÄ´¤Ù¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_¶ë·Á¤Ê¤é¤Ó) :- ºÇÂçʸ»úÎóŤòÄ´¤Ù(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ), ¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ,_¶ë·Á¤Ê¤é¤Ó). ºÇÂçʸ»úÎóŤòÄ´¤Ù(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ) :- ²ò¤ÎºÇÂçÃÍ(_ʸ»ú¿ô,( ¹Ô¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ô,_¹Ô¤Ê¤é¤Ó), ʸ»úÎóĹ(_¹Ô,_ʸ»ú¿ô)),_ºÇÂçʸ»úÎóĹ). ¤½¤ÎŤµ¤Ë·¤¨¤ÆÊ¸½ñ¤ò¶ë·Á¤Ë¤¹¤ë(_¹Ô¤Ê¤é¤Ó,_ºÇÂçʸ»úÎóĹ,_¶ë·Á¤Ê¤é¤Ó) :- ²ò¤ò½¸¤á¤ë(_¶õÇò¤òÉղä·¤¿Ê¸»úÎó,( ¹Ô¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ô,_¹Ô¤Ê¤é¤Ó), ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó)),_¶ë·Á¤Ê¤é¤Ó). ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó) :- ʸ»úÎóĹ(_¹Ô,_ʸ»úÎóĹ), ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó). ºÇÂçʸ»úÎóŤË㤷¤Ê¤¤Éôʬ¤Ï¶õÇò¤òÉղ乤ë(_¹Ô,_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó) :- 㤷¤Ê¤¤Ê¸»ú¿ô¤Î¶õÇò(_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇòʸ»úÎó), Æó¤Ä¤Îʸ»úÎó¤ò·ë¹ç¤¹¤ë(_¹Ô,_¶õÇòʸ»úÎó,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó). 㤷¤Ê¤¤Ê¸»ú¿ô¤Î¶õÇò(_ºÇÂçʸ»úÎóĹ,_ʸ»úÎóĹ,_¶õÇòʸ»úÎó) :- _ºÇÂçʸ»úÎóŤÈʸ»úÎóĹ¤Îº¹ ¤Ï _ºÇÂçʸ»úÎóĹ - _ʸ»úÎóĹ, ²ò¤ò½¸¤á¤ë('¡¡',( À°¿ô¤ò½ç¤ËÀ¸À®¤¹¤ë(1,_ºÇÂçʸ»úÎóŤÈʸ»úÎóĹ¤Îº¹,_)),_¶õÇòʸ»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_¶õÇòʸ»úÎó,_¶õÇòʸ»ú¤Ê¤é¤Ó). ¹Ô¤Ê¤é¤Ó¤òžÃÖ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó) :- ¶ë·Áʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_¶ë·Áʸ»ú¤Ê¤é¤Ó), žÃÖ(_¶ë·Áʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó), žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó¤ò¹Ô¤Ê¤é¤Ó¤ËÊÑ´¹(_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó). ¶ë·Áʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_¶ë·Áʸ»ú¤Ê¤é¤Ó) :- ²ò¤ò½¸¤á¤ë(_ʸ»ú¤Ê¤é¤Ó,( ¶ë·Á¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ô,_¶ë·Á¤Ê¤é¤Ó), ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¹Ô,_ʸ»ú¤Ê¤é¤Ó)),_¶ë·Áʸ»ú¤Ê¤é¤Ó). žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó¤ò¹Ô¤Ê¤é¤Ó¤ËÊÑ´¹(_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó) :- ²ò¤ò½¸¤á¤ë(_ʸ»úÎó,( ¶ë·Áʸ»ú¤Ê¤é¤Ó¤«¤éʸ»ú¤Ê¤é¤Ó¤ò¼è¤ê½Ð¤¹(_ʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó)),_žÃÖ¤µ¤ì¤¿¶ë·Á¤Ê¤é¤Ó). žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó¤Î³Æ¹Ôʸ»úÎó¤òȿž¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_ȿž¤·¤¿¹Ôʸ»úÎó) :- Í×ÁǤμè¤ê½Ð¤·(_¹Ôʸ»úÎó,_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ʸ»úÎó¤Îȿž(_¹Ôʸ»úÎó,_ȿž¤·¤¿¹Ôʸ»úÎó). ¶ë·Á¤Ê¤é¤Ó¤Î³ÆÍ×ÁÇ¹Ô¤ÎÆâÍÆ¤òȿž¤¹¤ë(_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó) :- ²ò¤ò½¸¤á¤ë(_ȿž¤·¤¿¹Ôʸ»úÎó,( ¶ë·Á¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ôʸ»úÎó,_žÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó), ʸ»úÎó¤Îȿž(_¹Ôʸ»úÎó,_ȿž¤·¤¿¹Ôʸ»úÎó)),_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó). ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_Í×ÁǤ¬È¿Å¾¤·¤¿Å¾ÃÖ¤·¤¿¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ). Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_½Ä½ñʸ½ñ) :- Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç(_¶ë·Á¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú¿ô,_¶ë·Á¤Ê¤é¤Ó_1), ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_½Ä½ñʸ½ñ). Îó´Ö³Öʸ»ú¤ò¶´¤ó¤Ç(_¶ë·Á¤Ê¤é¤Ó_1,_Îó´Ö³Öʸ»ú¿ô,_¶ë·Á¤Ê¤é¤Ó_2) :- Îó´Ö³Öʸ»ú(_Îó´Ö³Öʸ»ú¿ô,_Îó´Ö³Öʸ»ú), ²ò¤ò½¸¤á¤ë(_¹Ô,( ¹Ôʸ»ú¤Î´Ö¤ËÎó´Ö³Öʸ»ú¤òÁÞÆþ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_Îó´Ö³Öʸ»ú,_¹Ô)),_¶ë·Á¤Ê¤é¤Ó_2). Îó´Ö³Öʸ»ú(_Îó´Ö³Öʸ»ú¿ô,_Îó´Ö³Öʸ»ú) :- ²ò¤ò½¸¤á¤ë('¡¡',( À°¿ô¤ò½ç¤ËÀ¸À®¤¹¤ë(1,_Îó´Ö³Öʸ»ú¿ô,_)),_Îó´Ö³Öʸ»ú¤Ê¤é¤Ó), ʸ»úÎó¤ò·ë¹ç¤¹¤ë(_Îó´Ö³Öʸ»ú¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú). ¹Ôʸ»ú¤Î´Ö¤ËÎó´Ö³Öʸ»ú¤òÁÞÆþ¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_Îó´Ö³Öʸ»ú,_¹Ô) :- ¶ë·Á¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ô_1,_¶ë·Á¤Ê¤é¤Ó_1), ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_¹Ô_1,_ʸ»ú¤Ê¤é¤Ó), ʸ»úÎó¤ò·ë¹ç¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó,_Îó´Ö³Öʸ»ú,_¹Ô). ½Ä½ñʸ½ñ¤ËÊÑ·Á¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,_½Ä½ñʸ½ñ) :- ʸ»úÎó¤ò·ë¹ç¤¹¤ë(_¶ë·Á¤Ê¤é¤Ó_1,'\n',_½Ä½ñʸ½ñ). ʸ»úÎó¤Îȿž(_ʸ»úÎó,_ȿž¤·¤¿Ê¸»úÎó) :- ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òȿž¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó), ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_ȿž¤·¤¿Ê¸»úÎó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Éûʸ»úÎó(_ʸ»úÎó,_³«»Ï°ÌÃÖ,_Ťµ,_»Ä¤êʸ»ú¿ô,_Éûʸ»úÎó) :- sub_atom(_ʸ»úÎó,_³«»Ï°ÌÃÖ,_Ťµ,_»Ä¤êʸ»ú¿ô,_Éûʸ»úÎó). ¶ë·Á¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ô,_¶ë·Á¤Ê¤é¤Ó) :- member(_¹Ô,_¶ë·Á¤Ê¤é¤Ó). ¶ë·Áʸ»ú¤Ê¤é¤Ó¤«¤éʸ»ú¤Ê¤é¤Ó¤ò¼è¤ê½Ð¤¹(_ʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó) :- member(_ʸ»ú¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿¶ë·Áʸ»ú¤Ê¤é¤Ó). ¹Ô¤Ê¤é¤Ó¤«¤é¹Ô¤ò¼è¤ê½Ð¤¹(_¹Ô,_¹Ô¤Ê¤é¤Ó) :- member(_¹Ô,_¹Ô¤Ê¤é¤Ó). Æó¤Ä¤Îʸ»úÎó¤ò·ë¹ç¤¹¤ë(_ʸ»úÎó_1,_ʸ»úÎó_2,_·ë¹ç¤·¤¿Ê¸»úÎó) :- atom_concat(_ʸ»úÎó_1,_ʸ»úÎó_2,_·ë¹ç¤·¤¿Ê¸»úÎó). ʸ»úÎó¤ò·ë¹ç¤¹¤ë(_ʸ»úÎó¤Ê¤é¤Ó,_ÁÞÆþʸ»ú,_·ë¹ç¤·¤¿Ê¸»úÎó) :- atomic_list_concat(_ʸ»úÎó¤Ê¤é¤Ó,_ÁÞÆþʸ»ú,_·ë¹ç¤·¤¿Ê¸»úÎó). ʸ»úÎó¤ò·ë¹ç¤¹¤ë(_ʸ»úÎó¤Ê¤é¤Ó,_·ë¹ç¤·¤¿Ê¸»úÎó) :- atomic_list_concat(_ʸ»úÎó¤Ê¤é¤Ó,_·ë¹ç¤·¤¿Ê¸»úÎó). ʸ»úÎó¤òʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤¹¤ë(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó) :- atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó). ʸ»ú¤Ê¤é¤Ó¤òȿž¤¹¤ë(_ʸ»ú¤Ê¤é¤Ó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó) :- reverse(_ʸ»ú¤Ê¤é¤Ó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó). ʸ»ú¤Ê¤é¤Ó¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë(_ȿž¤·¤¿Ê¸»úÎó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó) :- atom_chars(_ȿž¤·¤¿Ê¸»úÎó,_ȿž¤·¤¿Ê¸»ú¤Ê¤é¤Ó). ʸ»úÎóĹ(_ʸ»úÎó,_ʸ»úÎóĹ) :- atom_length(_ʸ»úÎó,_ʸ»úÎóĹ). À°¿ô¤ò½ç¤ËÀ¸À®¤¹¤ë(1,_Îó´Ö³Öʸ»ú¿ô,_) :- between(1,_Îó´Ö³Öʸ»ú¿ô,_). žÃÖ([],[],[]) :- !. žÃÖ([[A|R1]|R2],[R1|R3],[A|R4]) :- žÃÖ(R2,R3,R4). žÃÖ([[]|_],[]) :- !. žÃÖ(L,[L1|R2]) :- žÃÖ(L,L2,L1), žÃÖ(L2,R2). ²ò¤ò½¸¤á¤ë(_¸õÊä¹à,_ÌÜɸ,_²ò¤Ê¤é¤Ó) :- findall(_¸õÊä¹à,_ÌÜɸ,_²ò¤Ê¤é¤Ó). ²ò¤ÎºÇÂçÃÍ(_¸õÊä¹à,_ÌÜɸ,_²ò¤ÎºÇÂçÃÍ) :- findall(_¸õÊä¹à,_ÌÜɸ,_²ò¤Ê¤é¤Ó), ºÇÂçÃÍ(_²ò¤Ê¤é¤Ó,_²ò¤ÎºÇÂçÃÍ). ºÇÂçÃÍ(_¤Ê¤é¤Ó,_ºÇÂçÃÍ) :- select(_ºÇÂçÃÍ,_¤Ê¤é¤Ó,_»Ä¤ê¤Ê¤é¤Ó), forall(member(_ÃÍ,_»Ä¤ê¤Ê¤é¤Ó),_ºÇÂçÃÍ @>= _ÃÍ). ²ò¤ÎºÇ¾®ÃÍ(_¸õÊä¹à,_ÌÜɸ,_²ò¤ÎºÇ¾®ÃÍ) :- findall(_¸õÊä¹à,_ÌÜɸ,_²ò¤Ê¤é¤Ó), ºÇ¾®ÃÍ(_²ò¤Ê¤é¤Ó,_²ò¤ÎºÇ¾®ÃÍ). ºÇ¾®ÃÍ(_¤Ê¤é¤Ó,_ºÇ¾®ÃÍ) :- select(_ºÇ¾®ÃÍ,_¤Ê¤é¤Ó,_»Ä¤ê¤Ê¤é¤Ó), forall(member(_ÃÍ,_»Ä¤ê¤Ê¤é¤Ó),_ºÇ¾®ÃÍ @=< _ÃÍ). _ÃÍ ¤Ï _¼° :- _ÃÍ is _¼°. % °Ê²¼¤Î¥µ¥¤¥È¤Ï 'PGM¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¼è¤ê'(_ÆþÎÏ¥Õ¥¡¥¤¥ë) :- abolish(²èÁü¹½Â¤/2), raw_read_pgm(_ÆþÎÏ¥Õ¥¡¥¤¥ë). raw_read_pgm(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_²èÁü¹½Â¤¤Ê¤é¤Ó) :- header¤òÆÉ¤ß¼è¤ë(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_header¤Îʸ»ú¿ô), ²èÁü¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_header¤Îʸ»ú¿ô,_²èÁü¥Ç¡¼¥¿), assertz(²èÁü¹½Â¤(²èÁü¥Ç¡¼¥¿,_²èÁü¥Ç¡¼¥¿)). header¤òÆÉ¤ß¼è¤ë(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- open(_ÆþÎÏ¥Õ¥¡¥¤¥ë,read,Input), '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô), close(Input). '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- get_line(Input,Line), '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,Line,[],0,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô), '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÄêµÁ¤¹¤ë'(_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ). '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,Line,[_¿§¤Î¿¼¤µ,_¶ë·Á¥µ¥¤¥º,_·¿],_¥Ø¥Ã¥À¤Îʸ»ú¿ô,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- !. '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,Line,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_1,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- '¥³¥á¥ó¥È¹Ô¤Ï̵»ë¤·¤Æ¡¢_¥Ø¥Ã¥À¤Îʸ»ú¿ô¤À¤±¹¹¿·'(Input,Line,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_1,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô),!. '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,Line,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_1,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òËä¤á¤Æ¤¤¤¯'(Input,Line,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_1,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô). '¥³¥á¥ó¥È¹Ô¤Ï̵»ë¤·¤Æ¡¢_¥Ø¥Ã¥À¤Îʸ»ú¿ô¤À¤±¹¹¿·'(Input,Line,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_1,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- sub_atom(Line,0,1,_,'#'), '²þ¹Ô¤ò´Þ¤à¥³¥á¥ó¥È¹Ô¤Îʸ»ú¿ô¤òµá¤á¤Æ_¥Ø¥Ã¥Àʸ»ú¿ô¤ò¹¹¿·¤¹¤ë'(Line,_¥Ø¥Ã¥Àʸ»ú¿ô_1,_¥Ø¥Ã¥Àʸ»ú¿ô_2), get_line(Input,Line2), '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,Line2,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_2,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô). '²þ¹Ô¤ò´Þ¤à¥³¥á¥ó¥È¹Ô¤Îʸ»ú¿ô¤òµá¤á¤Æ_¥Ø¥Ã¥Àʸ»ú¿ô¤ò¹¹¿·¤¹¤ë'(Line,_¥Ø¥Ã¥Àʸ»ú¿ô_1,_¥Ø¥Ã¥Àʸ»ú¿ô_2) :- atom_length(Line,Length), _¥Ø¥Ã¥À¤Îʸ»ú¿ô_2 is _¥Ø¥Ã¥À¤Îʸ»ú¿ô + Length + 1. '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òËä¤á¤Æ¤¤¤¯'(Input,Line,L1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_1,_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- get_line(Input,Line2), atom_length(Line,Length), _¥Ø¥Ã¥À¤Îʸ»ú¿ô_2 is _¥Ø¥Ã¥À¤Îʸ»ú¿ô_1 + Length + 1, '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÆÀ¤ë'(Input,Line2,_¥Ø¥Ã¥À¤Îʸ»ú¿ô_2,[Line|L1],_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ,_¥Ø¥Ã¥À¤Îʸ»ú¿ô). '·¿¡¦¶ë·Á¥µ¥¤¥º¡¦¿§¤Î¿¼¤µ¤òÄêµÁ¤¹¤ë'(_·¿,_¶ë·Á¥µ¥¤¥º,_¿§¤Î¿¼¤µ) :- assertz(²èÁü¹½Â¤(·¿,_·¿)), assertz(²èÁü¹½Â¤(¶ë·Á¥µ¥¤¥º,_¶ë·Á¥µ¥¤¥º)), assertz(²èÁü¹½Â¤(¿§¤Î¿¼¤µ,_¿§¤Î¿¼¤µ)). ²èÁü¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_¥Ø¥Ã¥À¤Îʸ»ú¿ô,_²èÁü¥Ç¡¼¥¿) :- open(_ÆþÎÏ¥Õ¥¡¥¤¥ë,read,Input,[type(binary)]), ¥Ø¥Ã¥ÀÉôʬ¤ò¶õÆÉ¤ß(Input,_¥Ø¥Ã¥À¤Îʸ»ú¿ô), ²èÁü¥Ç¡¼¥¿Éôʬ¤ÎÆÉ¤ß¼è¤ê(Input,_²èÁü¥Ç¡¼¥¿), close(input). ¥Ø¥Ã¥ÀÉôʬ¤ò¶õÆÉ¤ß(Input,_¥Ø¥Ã¥À¤Îʸ»ú¿ô) :- between(1,_¥Ø¥Ã¥À¤Îʸ»ú¿ô,N), get_byte(Input,_), N = _¥Ø¥Ã¥À¤Îʸ»ú¿ô,!. ²èÁü¥Ç¡¼¥¿Éôʬ¤ÎÆÉ¤ß¼è¤ê(Input,_²èÁü¥Ç¡¼¥¿) :- findall(C,(repeat,get_byte(Input,C),(C = -1,!,fail;true)),_²èÁü¥Ç¡¼¥¿). get_line(Input,Line) :- get_char(Input,A), get_line(Input,A,L), atom_chars(Line,L). get_line(Input,'\n',[]) :- !. get_line(Input,A,[A|R]) :- get_char(Input,B), get_line(Input,B,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1347 # # 3¿Í¤ÎÑÜÄ¢Ì̤ÊÃˤ¿¤Á¤¬¤¤¤Þ¤·¤¿¡£ # ¥¸¥§¥·¡¼¡Ö¤ß¤«¤ó¤ò¤¿¤¯¤µ¤ó夤¤¿¤ó¤À¡£¤ß¤ó¤Ê¤Çʬ¤±¤è¤¦YO¡ª¡× # ¥À¥Ë¥¨¥ë¡Ö¥¤¥¤¥Í¡ª¡Ä¤¨¤¨¤È¡¢¤ß¤«¤ó¤ÏÁ´Éô¤Ç30¸Ä¤¢¤ë¤ß¤¿¤¤¤À¤«¤é¡¢¤Ò¤È¤ê10¸Ä¤º¤Ä¤Ê¤é¤­¤Á¤ó¤Èʬ¤±¤é¤ì¤ëNE¡ª¡× # ¥¸¥ç¥¼¥Õ¡Ö¤½¤ì¤À¤±¤¸¤ã¥À¥á¤ÀYO¡ª¤ß¤«¤ó¤Ï°ì¤Ä¤Ò¤È¤ÄÂ礭¤µ¤¬°ã¤¦¤ó¤À¤«¤é¡¢¤½¤ÎÊÕ¤â¹Í¤¨¤Æ¤­¤Ã¤Á¤êʬ¤±NIGHT¡ª¡× # # # ¡ÚÌäÂê¡Û # # 30¸Ä¤Î¤ß¤«¤ó¤¬¤¢¤ê¤Þ¤¹¡£3¿Í¤Ç10¸Ä¤º¤Äʬ¤±¤è¤¦¤È»×¤¤¤Þ¤¹¤¬¡¢ÉÔ¸øÊ¿¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¡¢¤ß¤«¤ó¤Î½Å¤µ¤Î¹ç·×¤¬¶Ñ°ì¤Ë¤Ê¤ë¤è¤¦¤Ëʬ¤±¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê½Å¤µ¤Î¤ß¤«¤ó6¸Ä # 101g # 103g # 110g # 105g # 114g # 112g # # ¤ò¡¢3¿Í¤Ç2¤Ä¤º¤Äʬ¤±¤ë¾ì¹ç¡¢½Å¤µ¤Î¹ç·×¤¬Åù¤·¤¯¤Ê¤ë¤è¤¦¤Ëʬ¤±¤ë¤È # (101g, 114g) # (103g, 112g) # (105g, 110g) # # ¤Î¤è¤¦¤Ë¡¢¹ç·×¤¬215¥°¥é¥à¤Ë¤Ê¤ë¤è¤¦¤Ëʬ¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ # # ¤ß¤«¤ó¤Î½Å¤µ¤Î¥Ç¡¼¥¿¤òɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤ß¡¢¤½¤ì¤ò½Å¤µ¤Î¹ç·×¡¦¸Ä¿ô¤È¤â¤Ë3Åùʬ¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£ # # # ¡ÚÆþÎÏ¡Û # # ÆþÎϤϥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ÇÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤òɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤ó¤Ç¤¯¤À¤µ¤¤¡£ # ÆþÎÏ¥Õ¥¡¥¤¥ë¤Î1¹ÔÌܤˤϡ¢¤ß¤«¤ó¤Î¸Ä¿ôN¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ # 2¹ÔÌܰʹߤÎN¹Ôʬ¤¬¡¢¤ß¤«¤ó¤Î½Å¤µ¡ÊÀµ¤ÎÀ°¿ô¡Ë¤Ç¤¹¡£ # # # ¡Ú½ÐÎÏ¡Û # # ɸ½à½ÐÎϤˡ¢3Åùʬ¤·¤¿¤ß¤«¤ó¤Î¥°¥ë¡¼¥×¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # 1¹Ô¤Ë¤Ä¤­1¥°¥ë¡¼¥×¡¢·×3¹Ô¤ò½ÐÎϤ·¤Þ¤¹¡£¤½¤ì°Ê³°¤Ï½ÐÎϤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ # ʬ¤±Êý¤¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢¤½¤ÎÃæ¤Î1¼ïÎà¤À¤±¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # # # ¡ÚÆþ½ÐÎÏÎã¡Û # # - sample1.in.txt # 6 # 101 # 103 # 110 # 105 # 114 # 112 # # - sample1.out.txt # (101, 114) # (103, 112) # (105, 110) # # # # - sample2.in.txt # 12 # 147 # 105 # 99 # 116 # 105 # 119 # 93 # 132 # 123 # 95 # 101 # 82 # # - sample2.out.txt # (82, 105, 105, 147) # (93, 95, 119, 132) # (99, 101, 116, 123) 'ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤Æ¡¢»°¿Í¤È¤âƱÎ̤νŤµ¤Ç¡¢ÇÛʬ¤·¤¿¸õÊä¤òÆÀ¤Æ¡¢½ÅÊ£¤ò¼è¤ê½ü¤¤¤Æ½ÐÎϤ¹¤ë'(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_½ÐÎÏ¥Õ¥¡¥¤¥ë) :- 'ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤Æ¡¢»°¿Í¤È¤âƱÎ̤νŤµ¤Ç'(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_°ì¿Í¤¢¤¿¤ê¤Î½Å¤µ¹ç·×), ÇÛʬ¤·¤¿¸õÊä¤òÆÀ¤Æ(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_°ì¿Í¤¢¤¿¤ê¤Î½Å¤µ¹ç·×,_½ÅÊ£¤òµö¤¹ÇÛʬ¤·¤¿¸õÊä), ½ÅÊ£¤ò¼è¤ê½ü¤¤¤Æ½ÐÎϤ¹¤ë(_½ÐÎÏ¥Õ¥¡¥¤¥ë,_½ÅÊ£¤òµö¤¹ÇÛʬ¤·¤¿¸õÊä). 'ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤Æ¡¢»°¿Í¤È¤âƱÎ̤νŤµ¤Ç'(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_°ì¿Í¤¢¤¿¤ê¤Î½Å¤µ¹ç·×) :- ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤Æ(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó), sum_list(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¤ß¤«¤ó¤Î½Å¤µ¤Î¹ç·×), _°ì¿Í¤¢¤¿¤ê¤Î½Å¤µ¹ç·× is _¤ß¤«¤ó¤Î½Å¤µ¤Î¹ç·× // 3. ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤Æ(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó) :- see(_ÆþÎÏ¥Õ¥¡¥¤¥ë), ÀèÆ¬¹Ô¤«¤é¹Ô¿ô¤òÆÀ¤ë(_¤ß¤«¤ó¤Î¸Ä¿ô), »Ä¤ê¹Ô¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤ë(_¤ß¤«¤ó¤Î¸Ä¿ô,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó), seen. ÀèÆ¬¹Ô¤«¤é¹Ô¿ô¤òÆÀ¤ë(_¹Ô¿ô) :- À°¿ôÆþÎÏ(_¹Ô¿ô). »Ä¤ê¹Ô¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤ë(_¤ß¤«¤ó¤Î¸Ä¿ô,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó) :- findall(_¤ß¤«¤ó¤Î½Å¤µ,( between(1,_¤ß¤«¤ó¤Î¸Ä¿ô,_), À°¿ôÆþÎÏ(_¤ß¤«¤ó¤Î½Å¤µ)),_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó). ÇÛʬ¤·¤¿¸õÊä¤òÆÀ¤Æ(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¹ç·×ÌÜɸ,_½ÅÊ£¤òµö¤¹ÇÛʬ¤·¤¿¸õÊä) :- findall(LL,ƱÎ̤ËÇÛʬ¤¹¤ë(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¹ç·×ÌÜɸ,[],LL),_½ÅÊ£¤òµö¤¹ÇÛʬ¤·¤¿¸õÊä). ƱÎ̤ËÇÛʬ¤¹¤ë([],_,LL,LL). ƱÎ̤ËÇÛʬ¤¹¤ë(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¹ç·×ÌÜɸ,LL1,LL) :- ÁȤ߹ç·×¤òÆÀ¤ë(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¹ç·×ÌÜɸ,[],L,_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó), forall(member(L1,LL1),L1 @>= L), ƱÎ̤ËÇÛʬ¤¹¤ë(_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¹ç·×ÌÜɸ,[L|LL1],LL). ÁȤ߹ç·×¤òÆÀ¤ë(_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¹ç·×ÌÜɸ,L,L,_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó) :- sum_list(L,_¹ç·×ÌÜɸ). ÁȤ߹ç·×¤òÆÀ¤ë(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó_1,_¹ç·×ÌÜɸ,L1,L,_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó) :- select(_°ì¸Ä,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó_1,_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó_2), forall(member(A,L1),A @>= _°ì¸Ä), ÁȤ߹ç·×¤òÆÀ¤ë(_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó_2,_¹ç·×ÌÜɸ,[_°ì¸Ä|L1],L,_»Ä¤ê¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó). ½ÅÊ£¤ò¼è¤ê½ü¤¤¤Æ½ÐÎϤ¹¤ë(_½ÐÎÏ¥Õ¥¡¥¤¥ë,_½ÅÊ£¤òµö¤¹ÇÛʬ¤·¤¿¸õÊä) :- ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë(_½ÅÊ£¤òµö¤¹ÇÛʬ¤·¤¿¸õÊä,_¸õÊä¥ê¥¹¥È), °ì¹Ô¤º¤Ä½ÐÎϤ¹¤ë(_½ÐÎÏ¥Õ¥¡¥¤¥ë,_¸õÊä¥ê¥¹¥È). ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë(L1,L2) :- ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë(L1,[],L2). ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë([],L,L). ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë([_¼´Í×ÁÇ|L1],L2,L3) :- ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,L1,LS,LB), ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë(LS,[_¼´Í×ÁÇ|L3_2],L3), ½ÅÊ£¤Ê¤¯¾º½ç¤ËÀ°Î󤹤ë(LB,L2,L3_2). ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_,[],[],[]). ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,[A|R1],[A|R2],R3) :- A @< _¼´Í×ÁÇ, ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,R1,R2,R3). ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,[A|R1],R2,[A|R3]) :- A @> _¼´Í×ÁÇ, ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,R1,R2,R3). ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,[_¼´Í×ÁÇ|R1],R2,R3) :- ½ÅÊ£¤Î¤Ê¤¤¾º½çʬ³ä(_¼´Í×ÁÇ,R1,R2,R3). °ì¹Ô¤º¤Ä½ÐÎϤ¹¤ë(_½ÐÎÏ¥Õ¥¡¥¤¥ë,_¸õÊä¥ê¥¹¥È) :- tell(_½ÐÎÏ¥Õ¥¡¥¤¥ë), forall(member(_»°¿Íʬ¤Î¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_¸õÊä¥ê¥¹¥È),ÇÛʬ¸õÊä¤Ê¤é¤Ó¤ò»°¹Ô¤Ç½ÐÎϤ¹¤ë(_»°¿Íʬ¤Î¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó)), told. ÇÛʬ¸õÊä¤Ê¤é¤Ó¤ò»°¹Ô¤Ç½ÐÎϤ¹¤ë(_»°¿Íʬ¤Î¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó) :- forall(member(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_»°¿Íʬ¤Î¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó),( ɽ¼¨¥Ñ¥¿¡¼¥ó¤Î¤Ä¤¯¤ê(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_ɽ¼¨¥Ñ¥¿¡¼¥ó), writef(_ɽ¼¨¥Ñ¥¿¡¼¥ó,_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó))). ɽ¼¨¥Ñ¥¿¡¼¥ó¤Î¤Ä¤¯¤ê(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_ɽ¼¨¥Ñ¥¿¡¼¥ó) :- length(_¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó,_Í×ÁÇ¿ô), findall('%t',between(1,_Í×ÁÇ¿ô,_),_ɽ¼¨¥Ñ¥¿¡¼¥ó¤Ê¤é¤Ó), atomic_list_concat(_ɽ¼¨¥Ñ¥¿¡¼¥ó¤Ê¤é¤Ó,',',_ɽ¼¨¥Ñ¥¿¡¼¥ó_1), atomic_list_concat(['(',_ɽ¼¨¥Ñ¥¿¡¼¥ó_1,')\n'],_ɽ¼¨¥Ñ¥¿¡¼¥ó). À°¿ôÆþÎÏ(_À°¿ô) :- ¹ÔÆþÎÏ(_¹Ô), read_term_from_atom(_¹Ô,_À°¿ô,[]). ¹ÔÆþÎÏ(_¹Ô) :- get_char(_ʸ»ú), ¹Ô¤Îʸ»ú¤Ê¤é¤Ó(_ʸ»ú,_¹Ô¤Îʸ»ú¤Ê¤é¤Ó), atom_chars(_¹Ô,_¹Ô¤Îʸ»ú¤Ê¤é¤Ó). ¹Ô¤Îʸ»ú¤Ê¤é¤Ó(end_of_file,[]) :- !. ¹Ô¤Îʸ»ú¤Ê¤é¤Ó('\n',[]) :- !. ¹Ô¤Îʸ»ú¤Ê¤é¤Ó(_ʸ»ú,[_ʸ»ú|R]) :- get_char(_¼¡¤Îʸ»ú), ¹Ô¤Îʸ»ú¤Ê¤é¤Ó(_¼¡¤Îʸ»ú,R). ¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿¤Ê¤é¤Ó(_¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿¤Ê¤é¤Ó) :- current_prolog_flag(argv,_¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿¤Ê¤é¤Ó). program :- ¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿¤Ê¤é¤Ó([_ÆþÎÏ¥Õ¥¡¥¤¥ë,_½ÐÎÏ¥Õ¥¡¥¤¥ë]), 'ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¤ß¤«¤ó¤Î½Å¤µ¤Ê¤é¤Ó¤òÆÀ¤Æ¡¢»°¿Í¤È¤âƱÎ̤νŤµ¤Ç¡¢ÇÛʬ¤·¤¿¸õÊä¤òÆÀ¤Æ¡¢½ÅÊ£¤ò¼è¤ê½ü¤¤¤Æ½ÐÎϤ¹¤ë'(_ÆþÎÏ¥Õ¥¡¥¤¥ë,_½ÐÎÏ¥Õ¥¡¥¤¥ë). :- program,halt. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1346 # # ¤¢¤ë¤È¤­¡¢¥Þ¥·¥å¡¼¤ÏÈþ¿Í¤ÊÁлҤȽвñ¤Ã¤¿¡£¤ª»Ð¤µ¤ó¡¢Ë夵¤ó¡¢¼Â¤ËÈþ¤·¤¤¤Î¤À¡ª¤³¤Î£²¿Í¡¢ÁлҤǤ¢¤ê¤Ä¤Ä¡¢¤È¤Æ¤âÃ礬Îɤ¤¡£Ã礬Îɤ¹¤®¤Æ¡¢Æ±¤¸¥¿¥¤¥ß¥ó¥°¤ÇÏ乤Ȥ¤¤¦ÆÃµ»¤¬¤¢¤ë¡£ # # »Ð¡õËå¡¡¡Ö¤¢¡£¥Þ¥·¥å¡¼¤À¡£¡× # ¥Þ¥·¥å¡¼¡Ö¤¤¤«¤Ë¤â¥Þ¥·¥å¡¼¤À¡£¡× # »Ð¡õËå¡¡¡ÖÁлҤʤé¤Ç¤Ï¤Î¥¯¥¤¥º¤ò½Ð¤·¤Æ¤â¤¤¤¤¡©¡× # ¥Þ¥·¥å¡¼¡Ö¤¨¡¢¤¢¡¢¤¤¤¤¤è¡£¡× # »Ð¡õËå¡¡¡Ö1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤ò¤¹¤Ù¤Æ½ÐÎϤ»¤è¡£¡× # ¥Þ¥·¥å¡¼¡Ö¡¦¡¦¡¦¤¨¡©¡× # »Ð¡õËå¡¡¡Ö1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤ò¤¹¤Ù¤Æ½ÐÎϤ»¤è¡£¡× # # ¤Ê¤ó¤À¤«¤È¤ó¤Ç¤â¤Ê¤¤¥¯¥¤¥º¤Ë´¬¤­¹þ¤Þ¤ì¤Æ¤·¤Þ¤Ã¤¿¡ª¥×¥í¥°¥é¥à¤ò½ñ¤¤¤ÆÅú¤¨¤Æ¤Û¤·¤¤¡£ # # ²ò¤­Êý¤À¤¬¡¢ (3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ·¤ÆÍߤ·¤¤¡£ # '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë' :- '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(M,between(2,1000,M),_¾®¤µ¤¤½ç¤Ëʤó¤À2¤«¤é1000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'(_¾®¤µ¤¤½ç¤Ëʤó¤À2¤«¤é1000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'([],[]) :- !. '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'([_³ÎÄꤷ¤¿ÁÇ¿ô|R1],[_³ÎÄꤷ¤¿ÁÇ¿ô|R2]) :- 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤·äÁ¤Ë³Ý¤±¤ë'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,R2). 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤·äÁ¤Ë³Ý¤±¤ë'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,R2) :- 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤¹'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,_»Ä¤Ã¤¿¤Ê¤é¤Ó), '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'(_»Ä¤Ã¤¿¤Ê¤é¤Ó,R2). 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤¹'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,_»Ä¤Ã¤¿¤Ê¤é¤Ó) :- findall(_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î,'R1¤ÎÃæ¤Ç_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î'(R1,_³ÎÄꤷ¤¿ÁÇ¿ô,_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î),_»Ä¤Ã¤¿¤Ê¤é¤Ó). 'R1¤ÎÃæ¤Ç_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î'(R1,_³ÎÄꤷ¤¿ÁÇ¿ô,_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î) :- member(_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î,R1), \+(0 is _³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î mod _³ÎÄꤷ¤¿ÁÇ¿ô). '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó), '(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó) :- findall([_1,_2],'1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1,_2),_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1,_2) :- append(_,[_1,_2|_],_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), 2 is _2 - _1. '(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó) :- ¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈÖ¤Ë(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó,_1,_2,R), '¥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(R,_1,_2), R = []. ¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈÖ¤Ë(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó,_1,_2,R) :- append(_,[[_1,_2]|R],_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó). '¥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(R,_1,_2) :- 'R¤¬[]¤Î»þ¤Ï_1,_2½ÐÎϸ奫¥ó¥Þ¤Ï¾Êά¤·¤Æ²þ¹Ô¤¹¤ë'(R,_1,_2). '¥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(R,_1,_2) :- 'R¤¬[]¤Ç¤Ê¤¤»þ¤Ï_1,_2½ÐÎϸ奫¥ó¥Þ¤ò½ÐÎϤ¹¤ë'(R,_1,_2). 'R¤¬[]¤Î»þ¤Ï_1,_2½ÐÎϸ奫¥ó¥Þ¤Ï¾Êά¤·¤Æ²þ¹Ô¤¹¤ë'([],_1,_2) :- writef('(%t,%t)\n',[_1,_2]). 'R¤¬[]¤Ç¤Ê¤¤»þ¤Ï_1,_2½ÐÎϸ奫¥ó¥Þ¤ò½ÐÎϤ¹¤ë'([_|_],_1,_2) :- writef('(%t,%t), ',[_1,_2]). :- '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë',halt. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: CodeIQ q1346 # # ¤¢¤ë¤È¤­¡¢¥Þ¥·¥å¡¼¤ÏÈþ¿Í¤ÊÁлҤȽвñ¤Ã¤¿¡£¤ª»Ð¤µ¤ó¡¢Ë夵¤ó¡¢¼Â¤ËÈþ¤·¤¤¤Î¤À¡ª¤³¤Î£²¿Í¡¢ÁлҤǤ¢¤ê¤Ä¤Ä¡¢¤È¤Æ¤âÃ礬Îɤ¤¡£Ã礬Îɤ¹¤®¤Æ¡¢Æ±¤¸¥¿¥¤¥ß¥ó¥°¤ÇÏ乤Ȥ¤¤¦ÆÃµ»¤¬¤¢¤ë¡£ # # »Ð¡õËå¡¡¡Ö¤¢¡£¥Þ¥·¥å¡¼¤À¡£¡× # ¥Þ¥·¥å¡¼¡Ö¤¤¤«¤Ë¤â¥Þ¥·¥å¡¼¤À¡£¡× # »Ð¡õËå¡¡¡ÖÁлҤʤé¤Ç¤Ï¤Î¥¯¥¤¥º¤ò½Ð¤·¤Æ¤â¤¤¤¤¡©¡× # ¥Þ¥·¥å¡¼¡Ö¤¨¡¢¤¢¡¢¤¤¤¤¤è¡£¡× # »Ð¡õËå¡¡¡Ö1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤ò¤¹¤Ù¤Æ½ÐÎϤ»¤è¡£¡× # ¥Þ¥·¥å¡¼¡Ö¡¦¡¦¡¦¤¨¡©¡× # »Ð¡õËå¡¡¡Ö1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤ò¤¹¤Ù¤Æ½ÐÎϤ»¤è¡£¡× # # ¤Ê¤ó¤À¤«¤È¤ó¤Ç¤â¤Ê¤¤¥¯¥¤¥º¤Ë´¬¤­¹þ¤Þ¤ì¤Æ¤·¤Þ¤Ã¤¿¡ª¥×¥í¥°¥é¥à¤ò½ñ¤¤¤ÆÅú¤¨¤Æ¤Û¤·¤¤¡£ # # ²ò¤­Êý¤À¤¬¡¢ (3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ·¤ÆÍߤ·¤¤¡£ # '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë' :- '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤ò¾®¤µ¤¤½ç¤ËÆÀ¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(M,between(2,1000,M),_¾®¤µ¤¤½ç¤Ëʤó¤À2¤«¤é1000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_¾®¤µ¤¤½ç¤Ëʤó¤À2¤«¤é1000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([_³ÎÄꤷ¤¿ÁÇ¿ô|R1],[_³ÎÄꤷ¤¿ÁÇ¿ô|R2]) :- 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤·äÁ¤Ë³Ý¤±¤ë'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,R2). 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤·äÁ¤Ë³Ý¤±¤ë'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,R2) :- 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤¹'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,_»Ä¤Ã¤¿¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_»Ä¤Ã¤¿¤Ê¤é¤Ó,R2). 'R1¤ÎÃæ¤Î_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î¤À¤±¤ò»Ä¤¹'(_³ÎÄꤷ¤¿ÁÇ¿ô,R1,_»Ä¤Ã¤¿¤Ê¤é¤Ó) :- findall(_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î,( 'R1¤ÎÃæ¤Ç_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î'(R1,_³ÎÄꤷ¤¿ÁÇ¿ô,_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î)),_»Ä¤Ã¤¿¤Ê¤é¤Ó). 'R1¤ÎÃæ¤Ç_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î'(R1,_³ÎÄꤷ¤¿ÁÇ¿ô,_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î) :- member(_³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î,R1), \+(0 is _³ÎÄꤷ¤¿ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¤â¤Î mod _³ÎÄꤷ¤¿ÁÇ¿ô). '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó), '(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó) :- findall([_1,_2],'1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1,_2),_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó). '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î'(_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_1,_2) :- append(_,[_1,_2|_],_1000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), 2 is _2 - _1. '(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó) :- ¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈÖ¤Ë(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó,_1,_2,R), '¥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(R,_1,_2), R = []. ¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈÖ¤Ë(_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó,_1,_2,R) :- append(_,[[_1,_2]|R],_1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Ê¤é¤Ó). '¥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(R,_1,_2) :- 'R¤¬[]¤Î»þ¤Ï_1,_2½ÐÎϸ奫¥ó¥Þ¤Ï¾Êά¤·¤Æ²þ¹Ô¤·¤Æ½ª¤ï¤ë'(R,_1,_2),!. '¥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë'(_,_1,_2) :- writef('(%t,%t), ',[_1,_2]). 'R¤¬[]¤Î»þ¤Ï_1,_2½ÐÎϸ奫¥ó¥Þ¤Ï¾Êά¤·¤Æ²þ¹Ô¤·¤Æ½ª¤ï¤ë'([],_1,_2) :- writef('(%t,%t)\n',[_1,_2]). :- '1000°Ê²¼¤ÎÁлÒÁÇ¿ô¤Î¤¹¤Ù¤Æ¤ò(3, 5), (5, 7), (11, 13),¤Ê¤É¤Î¤è¤¦¤Ë¾®¤µ¤¤¿ô¤ÎÁȤ߹ç¤ï¤»¤«¤é½çÈ֤˥«¥ó¥Þ¶èÀÚ¤ê¤Çɸ½à½ÐÎϤ¹¤ë',halt. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: twitter_by_@a_hisame_20150219 # # "a¤¬n²ó°Ê¾å³¤¤¤¿Ä¾¸å¤Ëb¤¬n²ó³¤¯"¤³¤È¤ò(³ÈÄ¥)Àµµ¬É½¸½¤ÇÍ­¸ÂŤÇɽ¸½¤Ç¤­¤ë¤ó¤Ç¤·¤¿¤Ã¤±¡© (n¤Ï0°Ê¾å¤ÎǤ°Õ¤ÎÀ°¿ô) # 'a¤¬n²ó°Ê¾å³¤¤¤¿Ä¾¸å¤Ëb¤¬n²ó³¤¯(n¤Ï0°Ê¾å¤ÎǤ°Õ¤ÎÀ°¿ô)'(_ʸ»úÎó,_n,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó,_¸åʸ»úÎó) :- 'a¤¬n²ó°Ê¾å³¤¤¤¿'(_n,_ʸ»úÎó,_Á°Ê¸»úÎó,L2,L3), 'ľ¸å¤Ëb¤¬n²ó³¤¯'(_n,L2,L3,L2_2,L3_2), atom_chars(_Ŭ¹çʸ»úÎó,L2_2), atom_chars(_¸åʸ»úÎó,L3_2). 'a¤¬n²ó°Ê¾å³¤¤¤¿'(_n,_ʸ»úÎó,_Á°Ê¸»úÎó,L2,L3) :- sub_atom(_ʸ»úÎó,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó_1,_¸åʸ»úÎó_1,L1,L2,L3), all(L2,a), \+(last(L1,a)), \+(L3 = [a|_]), length(L2,Len_1), Len_1 >= _n. 'ľ¸å¤Ëb¤¬n²ó³¤¯'(_n,L2,L3,L2_2,L3_2) :- findall(b,between(1,_n,_),L), append(L,L3_2,L3), \+(L3_2 = [b|_]), append(L2,L,L2_2). all([],A). all([A|R],A) :- all(R,A). sub_atom(A,H,X,T,HL,XL,TL) :- atomic(X), atom_chars(A,L), atom_chars(X,XL), sub_atom_2(L,S,Len,R,HL,XL,TL), atom_chars(H,HL), atom_chars(X,XL), atom_chars(T,TL). sub_atom(A,H,X,T,HL,XL,TL) :- var(X), atom_chars(A,L), sub_atom_2(L,S,Len,R,HL,XL,TL), atom_chars(H,HL), atom_chars(X,XL), \+(XL = []), atom_chars(T,TL). % °Ê²¼¤Î¥µ¥¤¥È¤Ï 250 ToastXToast Í×Ìó ¡¡²¿¼ïÎफ¤Î¥Ñ¥ó¤¬¤¢¤ê¡¤¼ïÎऴ¤È¤Ë¤Á¤ç¤¦¤É¤è¤¤¾Æ¤­»þ´Ö¤¬·è¤Þ¤Ã¤Æ¤¤¤ë¡¥¤½¤Î¾Æ¤­»þ´Ö¤è¤êû¤±¤ì¤ÐÀ¸¾Æ¤±¤Ç¡¤Ä¹¤±¤ì¤Ð¾Ç¤²¤Æ¤·¤Þ¤¦¡¥¤Þ¤¿¤É¤Î¼ïÎà¤Î¥Ñ¥ó¤«¤Ï¸«¤¿ÌܤˤϤ狼¤é¤Ê¤¤¡¥À¸¾Æ¤±¤Î¥Ñ¥ó¤È¾Ç¤²¤¿¥Ñ¥ó¤¬¤¤¤¯¤Ä¤«Í¿¤¨¤é¤ì¤Æ¤¤¤Æ¡¥¤½¤ì¤¾¤ì¤Î¥Ñ¥ó¤Î¾Æ¤¤¤¿»þ´Ö¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¡¥¤Þ¤¿¡¤¤½¤ì¤¾¤ì¤Î¼ïÎà¤ÇÀ¸¾Æ¤±¤Î¥Ñ¥ó¤È¾Ç¤²¤¿¥Ñ¥ó¤¬¾¯¤Ê¤¯¤È¤â1Ë示¤Ä¤¢¤ë»ö¤â¤ï¤«¤Ã¤Æ¤¤¤ë¡¥¥Ñ¥ó¤Î¼ïÎà¤È¤·¤Æ¹Í¤¨¤é¤ì¤ë¤â¤Î¤Î¤¦¤ÁºÇ¾®Ãͤòµá¤á¤è¡¥ ¡¡À¸¾Æ¤±¤Î¥Ñ¥ó¤Î¿ô¤È¾Ç¤²¤¿¥Ñ¥ó¤Î¿ô¤Ï1°Ê¾å50°Ê²¼¡¤¤½¤ì¤¾¤ì¤Î¥Ñ¥ó¤Î¾Æ¤¤¤¿»þ´Ö¤Ï1°Ê¾å1000000°Ê²¼¡¥Æ±¤¸»þ´Ö¤À¤±¾Æ¤¤¤¿¥Ñ¥ó¤Ï2Ëç°Ê¾å¸ºß¤·¤Ê¤¤»ö¤ÏÊݾڤµ¤ì¤Æ¤¤¤ë¡¥ Êý¿Ë À¸¾Æ¤±¤Î¥Ñ¥ó¤ò¡û¡¤¾Ç¤²¤¿¥Ñ¥ó¤ò¡ü¤Çɽ¤·¡¤¾Æ¤­»þ´Ö¤ò²£¼´¤Çɽ¤¹¤È¡¤°ìÈÌŪ¤Ê¾õ¶·¤Ç¤Ï ¡û¡û¡¼¡û¡û¡û¡û¡û¡û¡¼¡¼¡¼¡¼¡û¡û¡¼¡¼¡û¡¼¡û¡û¡û¡¼¡¼ ¡¼¡¼¡ü¡¼¡¼¡¼¡¼¡¼¡¼¡ü¡ü¡ü¡ü¡¼¡¼¡ü¡ü¡¼¡ü¡¼¡¼¡¼¡ü¡ü ¤ÎÍѤˤʤäƤ¤¤ë¡¥¤³¤Î¾ì¹ç¡¤ ¡û¡û¡¼¡û¡û¡û¡û¡û¡û¡¼¡¼¡¼¡¼¡û¡û¡¼¡¼¡û¡¼¡û¡û¡û¡¼¡¼ ¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡ü¡ü ¤È ¡û¡û¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼ ¡¼¡¼¡ü¡¼¡¼¡¼¡¼¡¼¡¼¡ü¡ü¡ü¡ü¡¼¡¼¡ü¡ü¡¼¡ü¡¼¡¼¡¼¡¼¡¼ ¤È¤ï¤±¤ë¤³¤È¤¬¤Ç¤­¡¤Åú¤¨¤Ï2¼ïÎà¤È¤ï¤«¤ë¡¥¤¢¤È¤Ï¤³¤Î¾õ¶·¤Ë¤Ê¤é¤Ê¤¤¤Î¤Ï¤¤¤Ä¤«¤ò¹Í¤¨¤ì¤Ð¤è¤¤¡¥ ¥³¡¼¥ÉÎã #include #include #include #include #include using namespace std; class ToastXToast { public: int bake(vector under, vector over) { sort(under.begin(), under.end()); sort(over.begin(), over.end()); if(over[0] <= under[0] ) return -1; if(under[under.size()-1] >= over[over.size()-1]) return -1; if(over[0] > under[under.size()-1]) return 1; else return 2; } }; 500 KingdomXCitiesandVillage Í×Ìó ¡¡ºÂɸʿÌ̾å¤Î³Ê»ÒÅÀ¤ËÄ®¤¬¤¤¤¯¤Ä¤«¤È¼¤¬¤¤¤¯¤Ä¤«ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡¥¼¡¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¡¤¤¹¤Ù¤Æ¤Î¼¤ò¤¤¤º¤ì¤«¤ÎÄ®¤Èƻϩ¤Ç¤Ä¤Ê¤°¡¥ ¤Ï¤¸¤á¡¤¤¹¤Ù¤Æ¤Î¼¤ÏÄ®¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤Ê¤¤ Ä®¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤Ê¤¤Â¼¤ò¥é¥ó¥À¥à¤Ë°ì¤ÄÁª¤Ö (¤½¤ì¤ò sv(selected village) ¤È¤¹¤ë) Ä® or¡Ö´û¤ËÄ®¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¼¡×¤Î¤Ê¤«¤Ç sv ¤Ë¡Ê¥æ¡¼¥¯¥ê¥Ã¥Éµ÷Î¥¤Ç¡ËºÇ¤â¶á¤¤¤â¤Î¤òÁª¤Ó¡¤¤½¤Î2¤Ä¤òƻϩ¤Ç¤Ä¤Ê¤°¡¥ºÇ¤â¶á¤¤¤â¤Î¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ï¥é¥ó¥À¥à¤ËÁª¤Ö¡¥ sv ¤ò¡Ö´û¤ËÄ®¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¼¡×¤Ë¾º³Ê¤µ¤»¤ë¡¥ ¤³¤ì¤ò¤¹¤Ù¤Æ¤Î¼¤¬¤Ä¤Ê¤¬¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡¥ ¡¡Æ»Ï©¤ÎÁíµ÷Î¥¤Î´üÂÔÃͤòÅú¤¨¤è¡¥Ä®¤È¼¤Î¿ô¤Ï¤½¤ì¤¾¤ì1°Ê¾å50°Ê²¼¡¤¤½¤ì¤¾¤ì¤ÎÄ®¡¤Â¼¤ÎºÂɸ¤Ï0°Ê¾å1000000°Ê²¼¡¥Æ±¤¸²Õ½ê¤ËÊ£¿ô¤ÎÄ®¤ä¼¤Ï¤Ê¤¤»ö¤ÏÊݾڤµ¤ì¤Æ¤¤¤ë¡¥ Êý¿Ë ¡¡¤Þ¤º´üÂÔÃͤβÃË¡À­¤«¤é¡¤³Æ¡¹¤Î¼¤«¤é±ä¤Ð¤¹Æ»Ï©¤Îµ÷Î¥¤Î´üÂÔÃͤò¹ç·×¤¹¤ì¤Ð¤è¤¤¤Î¤Ç¡¤°ì¤Ä¤Î¼¤ËÃíÌܤ¹¤ë¡Ê°Ê¹ß¤½¤Î¼¤òv¤È¤·¡¤¤½¤Î¼¤«¤éºÇ¤â¶á¤¤Ä®¤òc¤È¤¹¤ë¡Ë¡¥v ¤È¤Ä¤Ê¤¬¤ë²ÄǽÀ­¤Î¤¢¤ë¼¤Ï¡¤v ¤È¤Îµ÷Î¥¤¬ vc ´Ö¤è¤êû¤¤¤â¤Î¤Î¤ß¤Ç¤¢¤ë¡¥¤Þ¤º¤½¤ì¤À¤±¤ò¼è¤ê½Ð¤· v ¤È¤Îµ÷Î¥¤¬Ã»¤¤½ç¤Ë v[1], v[2], ¡¦¡¦¡¦, v[k] ¤È¤¹¤ë¡¥v ¤È c ¤¬¤Ä¤Ê¤¬¤ë¤Î¤Ï¡¤v ¤¬ v[1], v[2], ¡¦¡¦¡¦v[k] ¤Î¤¤¤º¤ì¤è¤ê¤âÀè¤ËÁª¤Ð¤ì¤¿¤È¤­¤Ê¤Î¤Ç¡¤¤½¤Î³ÎΨ¤Ï 1/(k+1)¡¥v ¤È v[j] ¤¬¤Ä¤Ê¤¬¤ë¤Î¤Ï¡Ö v[j]¤¬ v¤è¤êÀè¤ËÁª¤Ð¤ì¡¤¤«¤Äv¤¬ v[1], v[2], ¡¦¡¦¡¦, v[j-1]¤è¤êÀè¤ËÁª¤Ð¤ì¤ë¡×¤È¤­¤Ç¤¢¤ë¡ÊÁ°¼Ô¤¬Ëþ¤¿¤µ¤ì¤Ê¤¤¤Èv[j]¤Ï¼¤È¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤½¤â¤½¤â¸õÊä¤ËÆþ¤é¤º¡¤¤Þ¤¿¸å¼Ô¤¬Ëþ¤¿¤µ¤ì¤Ê¤¤¤Èv¤Ïv[1]¡¦¡¦¡¦v[j-1]¤Î¤¤¤º¤ì¤«¤È¤Ä¤Ê¤¬¤Ã¤Æ¤·¤Þ¤¦¡Ë¡¥v[j+1]¡¦¡¦¡¦v[k]¤Ë¤ÏÀ©¸Â¤¬¤Ê¤¤¤Î¤Ç¹Íθ¤·¤Ê¤¯¤Æ¤âÎɤ¤¡¥j+1¸Ä¤Îµå¤ò²£°ìÎó¤Ëʤ٤ë»ö¤ò¹Í¤¨¤ë¤È¡¤¾ò·ï¤òËþ¤¿¤¹¤Î¤ÏºÇº¸¤Ëv[j]¡¤ ¤½¤ÎÎÙ¤Ë v ¡¤»Ä¤êj-1¸Ä¤Ëv[1]¡¦¡¦¡¦v[j-1]¤ò¼«Í³¤Ëʤ٤«¤¨¤ë¤â¤Î¤Ê¤Î¤Ç¡¤¤½¤Î¾ì¹ç¤Î¿ô¤Ï(j - 1)!¡¤Á´»ö¾Ý¤Ï(j + 1)! ¤Ê¤Î¤Ç¡¤µá¤á¤ë³ÎΨ¤Ï(j-1)! / (j+1)! = 1/ ( j * (j + 1) ) ¡¥ #include #include #include #include #include #include using namespace std; typedef long long ll; ll dist2(int ax, int ay, int bx, int by){ return (ll)(ax - bx) * (ax - bx) + (ll)(ay - by) * (ay - by) ; } class KingdomXCitiesandVillages { public: double determineLength(vector cx, vector cy, vector vx, vector vy) { int n = cx.size(); int m = vx.size(); double ans = 0; for(int i = 0;i kouho; for(int j = 0;j% °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥Ú¥¢¿ô¤Î¼ÂÁõ(0,0). ¥Ú¥¢¿ô¤Î¼ÂÁõ(X,Y) :- nth1(N,_,_), 'N¤ò1¤«¤éÁý²Ã¤·¤Ê¤¬¤é0-N¤ÎÆâ2Í×ÁǤò¼è¤ê2¹à¤Î¹ç·×¤¬N¤Ç¤¢¤ë¤è¤¦¤Ê½ÅÊ£½çÎó¤òÀ¸À®'(N,X,Y). 'N¤ò1¤«¤éÁý²Ã¤·¤Ê¤¬¤é0-N¤ÎÆâ2Í×ÁǤò¼è¤ê2¹à¤Î¹ç·×¤¬N¤Ç¤¢¤ë¤è¤¦¤Ê½ÅÊ£½çÎó¤òÀ¸À®'(N,X,Y) :- findall(M,between(0,N,M),L), ½ÅÊ£½çÎó(L,2,[X,Y]), N is X + Y. ½ÅÊ£½çÎó(L,0,[]). ½ÅÊ£½çÎó(L,N,[A|R3]) :- N > 0, member(A,L), N_1 is N - 1, ½ÅÊ£½çÎó(L,N_1,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥Ú¥¢¿ô¤Î¼ÂÁõ(0,0). ¥Ú¥¢¿ô¤Î¼ÂÁõ(X,Y) :- nth1(N,_,_), findall(M,between(0,N,M),L), ½ÅÊ£½çÎó(L,2,[X,Y]), N is X + Y. ½ÅÊ£½çÎó(L,0,[]). ½ÅÊ£½çÎó(L,N,[A|R3]) :- N > 0, member(A,L), N_1 is N - 1, ½ÅÊ£½çÎó(L,N_1,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥Ú¥¢¿ô¤Î¼ÂÁõ(0,0). ¥Ú¥¢¿ô¤Î¼ÂÁõ(X,Y) :- nth1(N,_,_), findall(M,between(0,N,M),L), ½ÅÊ£½çÎó(L,2,[X,Y]), N is X + Y. ½ÅÊ£½çÎó(L,0,[]). ½ÅÊ£½çÎó(L,N,[A|R3]) :- N > 0, member(A,L), N_1 is N - 1, ½ÅÊ£½çÎó(L,N_1,R3). %%%%%%%%%%%%%%%%%%%% ?- ¥Ú¥¢¿ô¤Î¼ÂÁõ(X,Y). X = Y, Y = 0 ; X = 0, Y = 1 ; X = 1, Y = 0 ; X = 0, Y = 2 ; X = Y, Y = 1 ; X = 2, Y = 0 ; X = 0, Y = 3 ; X = 1, Y = 2 ; X = 2, Y = 1 ; X = 3, Y = 0 ; X = 0, Y = 4 ; X = 1, Y = 3 ; X = Y, Y = 2 ; X = 3, Y = 1 ; X = 4, Y = 0 ; X = 0, Y = 5, ¡¦¡¦¡¦ % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¿Æ(°ÙµÁ). ¿Æ(ÍêÄ«). ¿Æ(ÈÏÍê). »Ò(ÍêÄ«). »Ò(ÈÏÍê). »Ò(¸ø¶Ç). ¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä(_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä) :- °À­½¸¹ç¤Ç¤¢¤ë¿Æ¤È»Ò¤ÎľÀѾå¤ÎÉôʬ½¸¹ç¸õÊä(_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä). °À­½¸¹ç¤Ç¤¢¤ë¿Æ¤È»Ò¤ÎľÀѾå¤ÎÉôʬ½¸¹ç¸õÊä(_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä) :- °À­½¸¹ç¤Ç¤¢¤ë¿Æ¤È»Ò¤ÎľÀѾå¤Î(_°À­½¸¹ç_¿Æ_¤È_°À­½¸¹ç_»Ò¤ÎľÀÑ), Éôʬ½¸¹ç¸õÊä(_°À­½¸¹ç_¿Æ_¤È_°À­½¸¹ç_»Ò¤ÎľÀÑ,_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä). °À­½¸¹ç¤Ç¤¢¤ë¿Æ¤È»Ò¤ÎľÀѾå¤Î(_¿Æ¤È»Ò¤ÎľÀÑ) :- °À­½¸¹ç_¿Æ(_°À­½¸¹ç_¿Æ), °À­½¸¹ç_»Ò(_°À­½¸¹ç_»Ò), ľÀÑ([_°À­½¸¹ç_¿Æ,_°À­½¸¹ç_»Ò],_¿Æ¤È»Ò¤ÎľÀÑ). °À­½¸¹ç_¿Æ(_°À­½¸¹ç_¿Æ) :- setof(_¿Æ,¿Æ(_¿Æ),_°À­½¸¹ç_¿Æ). °À­½¸¹ç_»Ò(_°À­½¸¹ç_»Ò) :- setof(_»Ò,»Ò(_»Ò),_°À­½¸¹ç_»Ò). ľÀÑ(_½¸¹ç¤Ê¤é¤Ó,_ľÀѽ¸¹ç) :- member¹à¤ÎÀ¸À®(_½¸¹ç¤Ê¤é¤Ó,_member¹à,_Í×ÁÇÊÑ¿ô¤Ê¤é¤Ó), findall(_Í×ÁÇÊÑ¿ô¤Ê¤é¤Ó,_member¹à,_ľÀѽ¸¹ç). member¹à¤ÎÀ¸À®([_½¸¹ç],member(_Í×ÁÇÊÑ¿ô,_½¸¹ç),[_Í×ÁÇÊÑ¿ô]). member¹à¤ÎÀ¸À®([_½¸¹ç|R1],(member(_Í×ÁÇÊÑ¿ô,_½¸¹ç),U),[_Í×ÁÇÊÑ¿ô|R2]) :- member¹à¤ÎÀ¸À®(R1,U,R2). Ñѽ¸¹ç(_½¸¹ç,_Ñѽ¸¹ç) :- findall(L,Éôʬ½¸¹ç(_½¸¹ç,L),_Ñѽ¸¹ç). Éôʬ½¸¹ç(_,[]). Éôʬ½¸¹ç(A,B) :- length(A,C), between(1,C,D), Áȹ礻(A,D,B) . Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). Éôʬ½¸¹ç¸õÊä(_°À­½¸¹ç_¿Æ_¤È_°À­½¸¹ç_»Ò¤ÎľÀÑ,_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä) :- Ñѽ¸¹ç(_°À­½¸¹ç_¿Æ_¤È_°À­½¸¹ç_»Ò¤ÎľÀÑ,_Ñѽ¸¹ç), member(_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä,_Ñѽ¸¹ç). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¿Æ(°ÙµÁ). ¿Æ(ÍêÄ«). ¿Æ(ºÜ²È). »Ò(ÍêÄ«). »Ò(ºÜ²È). °À­½¸¹ç¤Ç¤¢¤ë¿Æ¤È»Ò¤ÎľÀѾå¤ÎÉôʬ½¸¹ç¸õÊä(_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä) :- °À­½¸¹ç¿Æ(_°À­½¸¹ç¿Æ), °À­½¸¹ç»Ò(_°À­½¸¹ç»Ò), ľÀÑ(_°À­½¸¹ç¿Æ,_°À­½¸¹ç»Ò,_¿Æ¤È»Ò¤ÎľÀÑ), member(_ľÀѾå¤ÎÉôʬ½¸¹ç¤ÎÁÈ,_¿Æ¤È»Ò¤ÎľÀÑ), Ñѽ¸¹ç(_¿Æ¤È»Ò¤ÎľÀÑ,_Ñѽ¸¹ç), member(_¿Æ»Ò¥Æ¡¼¥Ö¥ë¸õÊä,_Ñѽ¸¹ç). °À­½¸¹ç¿Æ(_°À­½¸¹ç¿Æ) :- setof(_¿Æ,¿Æ(_¿Æ),_°À­½¸¹ç¿Æ). °À­½¸¹ç»Ò(_°À­½¸¹ç»Ò) :- setof(_»Ò,»Ò(_»Ò),_°À­½¸¹ç»Ò). ľÀÑ(L1,L2,LL) :- findall([A,B],( member(A,L1), member(B,L2)),LL). 'Ñѽ¸¹ç'(_½¸¹ç,_Ñѽ¸¹ç) :- findall(L,Éôʬ½¸¹ç(_½¸¹ç,L),_Ñѽ¸¹ç). 'Éôʬ½¸¹ç'(_,[]). 'Éôʬ½¸¹ç'(A,B) :- length(A,C), between(1,C,D), Áȹ礻(A,D,B) . Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % [1] ¼ø¶Èñ¸µ¡§C¸À¸ì±é½¬²ÝÂê % http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9422.txt % ÌäÂê % ǯ¤È·î¤ò¡ÖYYYY/MM¡×¤ÈÆþÎϤ·¡¢ÆþÎϤµ¤ì¤¿·î¤Î¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤·¤Ê¤µ¤¤¡£ % % 1752ǯ10·î°ÊÁ°¡¢µÚ¤Ó10000ǯ1·î°Ê¹ß¤Ï¥¨¥é¡¼¤òÊÖ¤¹¡£ % % ½ÐÎÏ·Á¼°¤Ï°Ê²¼¤Î¤È¤ª¤ê % ¡¦1¹ÔÌܤϳºÅö·î¤Î1Æü¤¬·îÍËÆü¤Ç¤Ê¤±¤ì¤Ð¡¢Á°·î¤ÎºÇ½ª·îÍËÆü¤«¤éɽ¼¨¡£ % ¡¦³ºÅö·î¤ÎºÇ½ªÆü¤¬ÆüÍËÆü¤Ç¤Ê¤±¤ì¤Ð¡¢Íâ·î¤ÎÂè1ÆüÍËÆü¤Þ¤Çɽ¼¨¡£ % ¡¦6¹ÔÌܤÎɽ¼¨¤¬É¬Íפʤ¤¾ì¹ç¤Ïɽ¼¨¤·¤Ê¤¤¡£ % % ¤¦¤ë¤¦Ç¯È½Äê¤Ï°Ê²¼¤Î¤È¤ª¤ê % ¡¦Ç¯¤¬4¤Ç³ä¤êÀÚ¤ì¤ëǯ¤Ï¤¦¤ë¤¦Ç¯¡£ % ¡¦Ç¯¤¬100¤Ç³ä¤êÀÚ¤ì¤ëǯ¤Ï¤¦¤ë¤¦Ç¯¤Ç¤Ê¤¤¡£ % ¡¦Ç¯¤¬400¤Ç³ä¤êÀÚ¤ì¤ëǯ¤Ï¤¦¤ë¤¦Ç¯¤Ç¤¢¤ë¡£ % % [½ÐÎÏÎã] % ǯ·îÆü¤òÆþÎÏ¡§2009/07 % % ·î ²Ð ¿å ÌÚ ¶â ÅÚ Æü % 29 30 01 02 03 04 05 % 06 07 08 09 10 11 12 % 13 14 15 16 17 18 19 % 20 21 22 23 24 25 26 % 27 28 29 30 31 01 02 ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼(_ǯ/_·î) :- not((_ǯ/_·î >= 1752/10,_ǯ/_·î =< 10000/1)), write('¥¨¥é¡¼: ÆþÎϤµ¤ì¤¿Ç¯·î¤ÏÈϰϤò°ï椷¤Æ¤¤¤Þ¤¹\n'),!. ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼(_ǯ/_·î) :- _ǯ/_·î @=< 2009/6,!, ÍËÆü¸¡º÷(_ÆüÉÕ,_ÍËÆü,2009/6/13,ÅÚÍË), _ÆüÉÕ=_ǯ/_·î/1, ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼É½¼¨(_ÆüÉÕ,_ÍËÆü). ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼(_ǯ/_·î) :- _ǯ/_·î @>= 2009/6,!, ÍËÆü¸¡º÷(2009/6/13,ÅÚÍË,_ÆüÉÕ,_ÍËÆü), _ÆüÉÕ=_ǯ/_·î/1, ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼É½¼¨(_ÆüÉÕ,_ÍËÆü). ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼É½¼¨(_ǯ/_·î/_Æü,·îÍË) :- ÆüÉÕ¸õÊä¤òÆÀ¤ë(_ǯ/_·î/_Æü,_ǯ/_·î/_Æü,·îÍË,_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó), ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼¸«½Ð¤·É½¼¨, ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼½µÉ½¼¨(_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó). ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼É½¼¨(_ǯ/_·î/_Æü,_ÍËÆü) :- not(_ÍËÆü=·îÍË), Á°½µ¤Î·îÍËÆü(_ǯ/_·î/_Æü,_ÍËÆü,_Á°½µ¤Î·îÍËÆü), ÆüÉÕ¸õÊä¤òÆÀ¤ë(_ǯ/_·î/_Æü,_Á°½µ¤Î·îÍËÆü,·îÍË,_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó), ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼¸«½Ð¤·É½¼¨, ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼½µÉ½¼¨(_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó). Á°½µ¤Î·îÍËÆü(_ǯ/_·î/_Æü,_ÍËÆü,_Á°½µ¤Î·îÍËÆü) :- ÍËÆü¸¡º÷(_Á°½µ¤Î·îÍËÆü,_Á°½µ¤ÎÍËÆü,_ǯ/_·î/_Æü,_ÍËÆü), _Á°½µ¤ÎÍËÆü = ·îÍË,!. ÆüÉÕ¸õÊä¤òÆÀ¤ë(_ǯ/_·î/_Æü,_µ¯ÅÀÆüÉÕ,_ÍËÆü,_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó) :- findall(_ÆüÉÕ,( ÍËÆü(_µ¯ÅÀÆüÉÕ,_ÍËÆü,_ÆüÉÕ2,_),(_ÆüÉÕ2=_ǯ2/_·î2/7,_ǯ2/_·î2 @> _ǯ/_·î,!,fail;true)),_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó). ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼½µÉ½¼¨(_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó) :- n¸ÄÁÈ(7,_ÆüÉÕÀ°¿ô¤Ê¤é¤Ó,_7¸ÄÁÈ), ·îÍˤ«¤éÆüÍˤޤǥإåɥ¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨(_7¸ÄÁÈ). ·îÍˤ«¤éÆüÍˤޤǥإåɥ¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨([_ǯ/_·î/_Æü]) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_Æü,_ÆüÉÕʸ»úÎó), write_formatted('%t\n',[_Æüʸ»úÎó]),!. ·îÍˤ«¤éÆüÍˤޤǥإåɥ¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨([_ǯ/_·î/_Æü|R]) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_Æü,_ÆüÉÕʸ»úÎó), write_formatted('%t ',[_ÆüÉÕʸ»úÎó]), ·îÍˤ«¤éÆüÍˤޤǥإåɥ¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨(R). ²ÝÂê¤Î¥«¥ì¥ó¥À¡¼¸«½Ð¤·É½¼¨ :- write_formatted('·î ²Ð ¿å ÌÚ ¶â ÅÚ Æü\n'). ÍËÆü¸¡º÷(_ÆüÉÕ,_ÍËÆü,_º£Æü,_º£Æü¤ÎÍËÆü) :- var(_ÆüÉÕ), var(_ÍËÆü), Á°Æü¡¦º£Æü(_ÆüÉÕ,_ÍËÆü,_º£Æü,_º£Æü¤ÎÍËÆü). ÍËÆü¸¡º÷(_ÆüÉÕ,_ÍËÆü,_º£Æü,_º£Æü¤ÎÍËÆü) :- var(_ÆüÉÕ), var(_ÍËÆü), Á°Æü¡¦º£Æü(_Á°Æü,_Á°Æü¤ÎÍËÆü,_º£Æü,_º£Æü¤ÎÍËÆü), ÍËÆü¸¡º÷(_ÆüÉÕ,_ÍËÆü,_Á°Æü,_Á°Æü¤ÎÍËÆü). ÍËÆü¸¡º÷(_º£Æü,_º£Æü¤ÎÍËÆü,_ÆüÉÕ,_ÍËÆü) :- var(_ÆüÉÕ), var(_ÍËÆü), Á°Æü¡¦º£Æü(_º£Æü,_º£Æü¤ÎÍËÆü,_ÆüÉÕ,_ÍËÆü). ÍËÆü¸¡º÷(_º£Æü,_º£Æü¤ÎÍËÆü,_ÆüÉÕ,_ÍËÆü) :- var(_ÆüÉÕ), var(_ÍËÆü), Á°Æü¡¦º£Æü(_º£Æü,_º£Æü¤ÎÍËÆü,_ÍâÆü,_ÍâÆü¤ÎÍËÆü), ÍËÆü¸¡º÷(_ÍâÆü,_ÍâÆü¤ÎÍËÆü,_ÆüÉÕ,_ÍËÆü). 'ÍËÆü'(_ÆüÉÕ,_ÍËÆü,_ÆüÉÕ,_ÍËÆü) :- ! . 'ÍËÆü'(_ÆüÉÕ1,_ÍËÆü1,_ÆüÉÕ2,_ÍËÆü2) :- _ÆüÉÕ1 @> _ÆüÉÕ2, 'Á°Æü¡¦º£Æü'(_ÆüÉÕ3,_ÍËÆü3,_ÆüÉÕ1,_ÍËÆü1), 'ÍËÆü'(_ÆüÉÕ3,_ÍËÆü3,_ÆüÉÕ2,_ÍËÆü2) . 'ÍËÆü'(_ÆüÉÕ1,_ÍËÆü1,_ÆüÉÕ2,_ÍËÆü2) :- _ÆüÉÕ1 @< _ÆüÉÕ2, 'Á°Æü¡¦º£Æü'(_ÆüÉÕ1,_ÍËÆü1,_ÆüÉÕ3,_ÍËÆü3), 'ÍËÆü'(_ÆüÉÕ3,_ÍËÆü3,_ÆüÉÕ2,_ÍËÆü2) . Á°Æü¡¦º£Æü(_Á°Æü¤Îǯ/12/31,_Á°Æü¤ÎÍËÆü,_ǯ/1/1,_ÍËÆü) :- °ì¤Ä°ã¤¤(_Á°Æü¤Îǯ,_ǯ), ÍËÆüÏ¢º¿(_Á°Æü¤ÎÍËÆü,_ÍËÆü),!. Á°Æü¡¦º£Æü(_ǯ/2/29,_Á°Æü¤ÎÍËÆü,_ǯ/3/1,_ÍËÆü) :- ¤¦¤ë¤¦Ç¯(_ǯ), ÍËÆüÏ¢º¿(_Á°Æü¤ÎÍËÆü,_ÍËÆü),!. Á°Æü¡¦º£Æü(_ǯ/2/28,_Á°Æü¤ÎÍËÆü,_ǯ/3/1,_ÍËÆü) :- not(¤¦¤ë¤¦Ç¯(_ǯ)), ÍËÆüÏ¢º¿(_Á°Æü¤ÎÍËÆü,_ÍËÆü),!. Á°Æü¡¦º£Æü(_ǯ/_Á°·î/30,_Á°Æü¤ÎÍËÆü,_ǯ/_·î/1,_ÍËÆü) :- °ì¤Ä°ã¤¤(_Á°·î,_·î), member(_Á°·î,[4,6,9,11]), ÍËÆüÏ¢º¿(_Á°Æü¤ÎÍËÆü,_ÍËÆü),!. Á°Æü¡¦º£Æü(_ǯ/_Á°·î/31,_Á°Æü¤ÎÍËÆü,_ǯ/_·î/1,_ÍËÆü) :- °ì¤Ä°ã¤¤(_Á°·î,_·î), member(_Á°·î,[1,3,5,7,8,10,12]), ÍËÆüÏ¢º¿(_Á°Æü¤ÎÍËÆü,_ÍËÆü),!. Á°Æü¡¦º£Æü(_ǯ/_·î/_Á°Æü,_Á°Æü¤ÎÍËÆü,_ǯ/_·î/_Æü,_ÍËÆü) :- °ì¤Ä°ã¤¤(_Á°Æü,_Æü), ÍËÆüÏ¢º¿(_Á°Æü¤ÎÍËÆü,_ÍËÆü),!. °ì¤Ä°ã¤¤(M,N) :- integer(M),!, N is M + 1. °ì¤Ä°ã¤¤(M,N) :- integer(N),!, M is N - 1. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- not(0 is _ǯ mod 4),fail. ÍËÆüÏ¢º¿(·îÍË,²ÐÍË). ÍËÆüÏ¢º¿(²ÐÍË,¿åÍË). ÍËÆüÏ¢º¿(¿åÍË,ÌÚÍË). ÍËÆüÏ¢º¿(ÌÚÍË,¶âÍË). ÍËÆüÏ¢º¿(¶âÍË,ÅÚÍË). ÍËÆüÏ¢º¿(ÅÚÍË,ÆüÍË). ÍËÆüÏ¢º¿(ÆüÍË,·îÍË). n¸ÄÁÈ(N,L,X) :- length(X,N), append(X,L2,L3), append(L1,L3,L), length(L1,Len), 0 is Len mod N. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(N·å,_À°¿ô,_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»úÎó) :- number_chars(_À°¿ô,_¿ô»ú¤Ê¤é¤Ó), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(N·å,_¿ô»ú¤Ê¤é¤Ó,_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»ú¤Ê¤é¤Ó), concat_atom(_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»ú¤Ê¤é¤Ó,_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»úÎó),!. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(N·å,L,L) :- length(L,N·å),!. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(N·å,L,['0'|R]) :- M·å is N·å - 1, ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(M·å,L,R). # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1200175247/550 # # [1] ¼ø¶Èñ¸µ¡§ Ruby±é½¬ [2] ÌäÂêʸ¡¢http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9426.txt # Ruby¤ÎÌäÂ꤬¤ï¤«¤ê¤Þ¤»¤ó ½õ¤±¤Æ¤¯¤À¤µ¤¤ # # ¡Ê£±¡ËÍËÆü¤òɽ¤¹±Ñ¸ì¤ÈÆüËܸì¤È¤ÎÂбþ¤òɽ¤¹¥Ï¥Ã¥·¥åwday¤òÄêµÁ¤·¤Ê¤µ¤¤ # # p wday["sunday"] #=> "ÆüÍËÆü" # p wday["monday"] #=> "·îÍËÆü" # p wday["saturday"] #=> "ÅÚÍËÆü" # # (2)¥Ï¥Ã¥·¥å¤Î¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¡Ê£±¡Ë¤Î¥Ï¥Ã¥·¥åwday¤Î¥Ú¥¢¤Î¿ô¤ò¿ô¤¨¤Ê¤µ¤¤ # # ¡Ê£³¡Ëeach¥á¥½¥Ã¥É¤È¡Ê£±¡Ë¤Î¥Ï¥Ã¥·¥åwday¤ò»È¤Ã¤Æ°Ê²¼¤Îʸ»úÎó¤ò½ÐÎϤµ¤»¤Æ¤¯¤À¤µ ¤¤¡£ # ¡Ösunday¡×¤ÏÆüÍËÆü¤Î¤³¤È¤Ç¤¹¡£ # ¡Ömonday¡×¤Ï·îÍËÆü¤Î¤³¤È¤Ç¤¹¡£ # # (4)¥Ï¥Ã¥·¥å¤Ë¤ÏÇÛÎó¤Î%w¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó¡£¤½¤³¤Ç¡¢¶õÇò¤È¥¿¥Ö¤È²þ¹Ô¡ÊÀµ µ¬É½¸½¤ÇÄêµÁ¤¹¤ë¤Ê¤é¡Ö¡¿\uff3cs+¡¿¡×¡Ë¤Ç¶èÀÚ¤é¤ì¤¿Ê¸»úÎó¤ò¥Ï¥Ã¥·¥å¤ËÊÑ´¹¤¹¤ë¥á¥½ ¥Ã¥Éstr2hash¤òÄêµÁ¤·¤Æ¤¯¤À¤µ¤¤¡£ # # p str2hash("bule ÀÄ white Çò\uff3cnredÀÖ"); # #=> {"bule"=>"ÀÄ", "white"=>"Çò", "red"=>"ÀÖ"} :- op(450,xfx,(=>)). % (1) wday({ "sunday" => "ÆüÍËÆü","monday" => "·îÍËÆü","saturday" #=> "ÅÚÍËÆü"}). % (2) hash_count(Hashname,Count) :- functor(P,Hashname,1), call(P), arg(1,P,H), count(H,Count). count(','(A,B),Count) :- count(B,Count2), Count is Count2 + 1. count(A,1). % (3) ?- each(wday.A=>B),write_formatted('¡Ö%t¡×¤Ï%t¤Î¤³¤È¤Ç¤¹¡£\n',[A,B]),fail;true. each(Hashname.Key=>Value) :- functor(P,Hashname,1), arg(1,P,V), each(V,Key=>Value). each(','(Key=>Value,B),Key=>Value). each(','(_,B),Key=>Value) :- each(B,Key=>Value). each(Key=>Value,Key=>Value). % (4) str2hash(Atom,Hash) :- split(Atom,[' ','\t','\n'],L), findall(U,n¸ÄÁÈ(2,L,U),L2), hash¤òÀ®Ä¹¤µ¤»¤ë(L2,Hash). hash¤òÀ®Ä¹¤µ¤»¤ë([A,B],{ A=>B }) :- !. hash¤òÀ®Ä¹¤µ¤»¤ë([[A,B]|R], { (A=>B,R2) }) :- hash¤òÀ®Ä¹¤µ¤»¤ë(R,{ R2 }). n¸ÄÁÈ(N,L,X) :- length(X,N), append(X,L2,L3), append(L1,L3,L), length(L1,Len), 0 is Len mod N. # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1247438792/103 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§¡¡C¸À¸ì±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¡¡http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9753.txt # £²¡¥ÆþÎϤµ¤ì¤¿Ç¯·î¤Î£±Æü¤¬²¿ÍËÆü¤«¤òÄ´¤Ù¤ë¡£ # ¡¡¡¡ÍËÆü¤Î¥Á¥§¥Ã¥¯¤ÏZeller¤Î¸ø¼°¤ò»ÈÍѤ¹¤ë¡£Zeller¤Î¸ø¼°¤Ï¡¢ # ¡¡¡¡ # ¡¡¡¡ÍËÆü¤òɽ¤¹ÃÍ¡á(y + [ y / 4 ] - [ y / 100 ] + [ y / 400 ] + [ (( 13 * m ) + 8 ) / 5 ] + d ) % 7 # # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¨¡¡¾åµ­¤Î¸ø¼°Ãæ¤Î y ¤Ïǯ¡¢ m ¤Ï·î¡¢ d ¤ÏÆü¤òɽ¤·¡¢ # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡[]¤Ï¤½¤Î¿ô¤ò±Û¤¨¤Ê¤¤ºÇÂç¤ÎÀ°¿ô¤òɽ¤¹¡£(Îã: [13.6]¤Ï13¤Ë¤Ê¤ë) # # ¡¡¡¡¤Ç¡¢ÍËÆü¤òɽ¤¹Ãͤϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ # # ¡¡¡¡¡¡¡¡ÆüÍËÆü = 0, ·îÍËÆü = 1, ²ÐÍËÆü = 2, ¿åÍËÆü = 3, # # ÌÚÍËÆü = 4, ¶âÍËÆü = 5, ÅÚÍËÆü = 6, # # ¡¡¡¡¢¨Ã¢¤·¡¢1·î¤È2·î¤ÏÁ°Ç¯¤Î13·î14·î¤È¤·¤Æ·×»»¤¹¤ë¤â¤Î¤È¤¹¤ë¡£ % (1) ǯ·î¤ÎÆþÎÏ Ç¯·îÆþÎϽèÍý(_ǯ,_·î) :- ǯÆþÎϽèÍý(_ǯ), ·îÆþÎϽèÍý(_·î). % (2) ÍËÆü·×»» :- op(450,xfx,¤¬),op(500,xfx,¤Ç¤¢¤ê),op(600,xfx,¤Ê¤é¤Ð),op(450,xfx,¤Ï). 'Zeller¤Î¸ø¼°'(ǯ ¤¬ Y ¤Ç¤¢¤ê ·î ¤¬ M ¤Ç¤¢¤ê Æü ¤¬ D ¤Ê¤é¤Ð ÍËÆü¤òɽ¤¹ÃÍ ¤Ï (Y + Y // 4 - Y // 100 + Y // 400 + ((( 13 * M ) + 8 ) // 5 ) + D ) mod 7). ÍËÆü·×»»½èÍý(_ǯ,_·î,_Æü,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ), ÍËÆü¤òɽ¤¹ÃÍ(_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_ǯ,1,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ) :- _Á°Ç¯ is _ǯ - 1, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_Á°Ç¯,13,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ),!. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_ǯ,2,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ) :- _Á°Ç¯ is _ǯ - 1, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_Á°Ç¯,14,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ),!. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ) :- _ǯ=Y,_·î=M,_Æü=D, 'Zeller¤Î¸ø¼°'(ǯ ¤¬ Y ¤Ç¤¢¤ê ·î ¤¬ M ¤Ç¤¢¤ê Æü ¤¬ D ¤Ê¤é¤Ð ÍËÆü¤òɽ¤¹ÃÍ ¤Ï _Zeller¤Î¸ø¼°), _ÍËÆü¤òɽ¤¹ÃÍ is _Zeller¤Î¸ø¼°,!. ÍËÆü¤òɽ¤¹ÃÍ(0,ÆüÍË). ÍËÆü¤òɽ¤¹ÃÍ(1,·îÍË). ÍËÆü¤òɽ¤¹ÃÍ(2,²ÐÍË). ÍËÆü¤òɽ¤¹ÃÍ(3,¿åÍË). ÍËÆü¤òɽ¤¹ÃÍ(4,ÌÚÍË). ÍËÆü¤òɽ¤¹ÃÍ(5,¶âÍË). ÍËÆü¤òɽ¤¹ÃÍ(6,ÅÚÍË). % (3) ¥«¥ì¥ó¥À¡¼É½¼¨ ¥«¥ì¥ó¥À¡¼É½¼¨ :- ǯ·îÆþÎϽèÍý(_ǯ,_·î), 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤòÆÀ¤ë'(_ǯ,_·î,1,_ÍËÆü¤òɽ¤¹À°¿ôÃÍ), ¥«¥ì¥ó¥À¡¼É½¼¨¥Ç¡¼¥¿ÊÔ½¸(_ǯ,_·î,_ÍËÆü¤òɽ¤¹À°¿ôÃÍ,_¥«¥ì¥ó¥À¡¼É½¼¨Ê¸»úÎó¤Ê¤é¤Ó), Í×ÁǤ˶õÇò¤òÁÞÆþ¤·¤ÆÁ´¹Ôɽ¼¨(_¥«¥ì¥ó¥À¡¼É½¼¨Ê¸»úÎó¤Ê¤é¤Ó). ¥«¥ì¥ó¥À¡¼É½¼¨¥Ç¡¼¥¿ÊÔ½¸(_ǯ,_·î,_³Æ·î1Æü¤ÎÍËÆü¤òɽ¤¹À°¿ôÃÍ,_¥«¥ì¥ó¥À¡¼É½¼¨Ê¸»úÎó¤Ê¤é¤Ó) :- ǯ·îʸ»úÎóÊÔ½¸½èÍý(_ǯ,_·î,_ǯ·îʸ»úÎó), ·îÆü¿ô(_ǯ,_·î,_·îÆü¿ô), findall(S,for(1,N,_·îÆü¿ô),¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹(2,N,S)),_ɽ¼¨Æü¤Ê¤é¤Ó), Length is _·îÆü¿ô + _³Æ·î1Æü¤ÎÍËÆü¤òɽ¤¹À°¿ôÃÍ, M is (7 - (Length mod 7)), '7¸ÄÁȤʤé¤Ó'(Length,M,_ɽ¼¨Æü¤Ê¤é¤Ó,_7¸ÄÁȤʤé¤Ó), ¸«½Ð¤·¤Ê¤é¤Ó(_ǯ·îʸ»úÎó,_¸«½Ð¤·¤Ê¤é¤Ó), append(_¸«½Ð¤·¤Ê¤é¤Ó,_7¸ÄÁȤʤé¤Ó,_¥«¥ì¥ó¥À¡¼É½¼¨Ê¸»úÎó¤Ê¤é¤Ó). ¸«½Ð¤·¤Ê¤é¤Ó(_ǯ·îʸ»úÎó,[[_ǯ·îʸ»úÎó],[Æü,·î,²Ð,¿å,ÌÚ,¶â,ÅÚ]]). '7¸ÄÁȤʤé¤Ó'(Length,0,_ɽ¼¨Æü¤Ê¤é¤Ó,_7¸ÄÁȤʤé¤Ó) :- length(L0,Length), ¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬(L0,' '), append(L0,_ɽ¼¨Æü¤Ê¤é¤Ó,L), '7¸ÄÁÈ'(L,_7¸ÄÁȤʤé¤Ó),!. '7¸ÄÁȤʤé¤Ó'(Length,M,_ɽ¼¨Æü¤Ê¤é¤Ó,_7¸ÄÁȤʤé¤Ó) :- not(M=0), length(L0,Length), ¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬(L0,' '), length(L2,M), ¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬(L2,' '), append(L0,_ɽ¼¨Æü¤Ê¤é¤Ó,L2,L), '7¸ÄÁÈ'(L,_7¸ÄÁȤʤé¤Ó),!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- not(0 is _ǯ mod 4),fail. ·îÆü¿ô(_ǯ,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îÆü¿ô(_ǯ,2,28) :- not(¤¦¤ë¤¦Ç¯(_ǯ)),!. ·îÆü¿ô(_,_·î,30) :- member(_·î,[4,6,9,11]). ·îÆü¿ô(_,_·î,31) :- member(_·î,[1,3,5,7,8,10,12]). % (4) ´ðÁýҸì¤ÎÄêµÁ ǯÆþÎϽèÍý(_ǯ) :- write('ɽ¼¨¤·¤¿¤¤¥«¥ì¥ó¥À¡¼¤ÏÀ¾Îñ²¿Ç¯ ? '), get_line(_¹Ô), ǯÆþÎϽèÍý¤ÎÆó(_¹Ô,_ǯ), ǯÆþÎϸ¡ºº(_ǯ),!. ǯÆþÎϽèÍý(_ǯ) :- ǯÆþÎϽèÍý(_ǯ). ǯÆþÎϽèÍý¤ÎÆó(_¹Ô,_ǯ) :- atom_to_term(_¹Ô,_ǯ), integer(_ǯ),!. ǯÆþÎϽèÍý¤ÎÆó(_¹Ô,_ǯ) :- write_formatted('¤³¤ÎÆþÎÏ[ %t ]¤ÏÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n',[_¹Ô]), fail. ǯÆþÎϸ¡ºº(_ǯ) :- _ǯ >= 1583, _ǯ =< 3999,!. ǯÆþÎϸ¡ºº(_ǯ) :- write_formatted('¤³¤Îǯ¤òɽ¤¹À°¿ô%t¤ÏÉÔÀµ¤Ç¤¹\n',[_ǯ]), fail. ·îÆþÎϽèÍý(_·î) :- write('·î¤Ï ? '), get_line(_¹Ô), ·îÆþÎϽèÍý¤ÎÆó(_¹Ô,_·î), ·îÆþÎϸ¡ºº(_·î),!. ·îÆþÎϽèÍý(_·î) :- ·îÆþÎϽèÍý(_·î). ·îÆþÎϽèÍý¤ÎÆó(_¹Ô,_·î) :- atom_to_term(_¹Ô,_·î,_), integer(_·î),!. ·îÆþÎϽèÍý¤ÎÆó(_¹Ô,_·î) :- write_formatted('¤³¤ÎÆþÎÏ[ %t ]¤ÏÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n',[_¹Ô]), fail. ·îÆþÎϸ¡ºº(_·î) :- _·î >= 1, _·î =< 12,!. ·îÆþÎϸ¡ºº(_·î) :- write_formatted('¤³¤Î·î¤òɽ¤¹À°¿ô%t¤ÏÉÔÀµ¤Ç¤¹\n',[_·î]), fail. ÆüÉÕʸ»úÎóÊÔ½¸½èÍý(_ǯ,_·î,_Æü,_ÆüÉÕʸ»úÎó) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_ǯ,_ǯʸ»úÎó), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_·î,_·îʸ»úÎó), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_Æü,_Æüʸ»úÎó), concat_atom([_ǯʸ»úÎó,_·îʸ»úÎó,_Æüʸ»úÎó],_ÆüÉÕʸ»úÎó). ǯ·îʸ»úÎóÊÔ½¸½èÍý(_ǯ,_·î,_ǯ·îʸ»úÎó) :- ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_ǯ,_ǯʸ»úÎó), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(2,_·î,_·îʸ»úÎó), concat_atom([_ǯʸ»úÎó,_·îʸ»úÎó],_ǯ·îʸ»úÎó). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤(N·å,_À°¿ô,_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»úÎó) :- number_chars(_À°¿ô,_¿ô»ú¤Ê¤é¤Ó), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(N·å,_¿ô»ú¤Ê¤é¤Ó,_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»ú¤Ê¤é¤Ó), concat_atom(_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»ú¤Ê¤é¤Ó,_¥Ø¥Ã¥É¥¼¥íÀ°¿ôʸ»úÎó),!. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(N·å,L,L) :- length(L,N·å),!. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(N·å,L,['0'|R]) :- M·å is N·å - 1, ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤_1(M·å,L,R). ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹(N·å,_À°¿ô,_¥Ø¥Ã¥É¶õÇòÀ°¿ôʸ»úÎó) :- number_chars(_À°¿ô,_¿ô»ú¤Ê¤é¤Ó), ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹_1(N·å,_¿ô»ú¤Ê¤é¤Ó,_¥Ø¥Ã¥É¶õÇòÀ°¿ôʸ»ú¤Ê¤é¤Ó), concat_atom(_¥Ø¥Ã¥É¶õÇòÀ°¿ôʸ»ú¤Ê¤é¤Ó,_¥Ø¥Ã¥É¶õÇòÀ°¿ôʸ»úÎó),!. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹_1(N·å,L,L) :- length(L,N·å),!. ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹_1(N·å,L,[' '|R]) :- M·å is N·å - 1, ¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹_1(M·å,L,R). Í×ÁǤ˶õÇò¤òÁÞÆþ¤·¤ÆÁ´¹Ôɽ¼¨([]) :- !. Í×ÁǤ˶õÇò¤òÁÞÆþ¤·¤ÆÁ´¹Ôɽ¼¨([L|R]) :- concat_atom(L,' ',_ɽ¼¨¹Ô), write_formatted('%t\n',[_ɽ¼¨¹Ô]), Í×ÁǤ˶õÇò¤òÁÞÆþ¤·¤ÆÁ´¹Ôɽ¼¨(R). ¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬([],_). ¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬([V|R],V) :- ¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬(R,V). '7¸ÄÁÈ'([],[]) :- !. '7¸ÄÁÈ'([A,B,C,D,E,F,G|R1]),[[A,B,C,D,E,F,G]|R2]) :- '7¸ÄÁÈ'(R1,R2). n¸ÄÁÈ(N,L,X) :- length(X,N), append(X,L2,L3), append(L1,L3,L), length(L1,Len), 0 is Len mod N. not(P) :- \+(P). append([],L1,L2,L) :- append(L1,L2,L) . append([A|R1],L1,L2,[A|R]) :- append(R1,L1,L2,R) . concat_atom([],'') :- !. concat_atom([A],A) :- !. concat_atom([A|R],S) :- concat_atom(R,S1), atom_concat(A,S1,S). concat_atom([],_,'') :- !. concat_atom([A],_,A) :- !. concat_atom([A|R],_¶èÀÚ¤êʸ»úÎó,S) :- concat_atom(R,_¶èÀÚ¤êʸ»úÎó,S1), atom_concat(A,_¶èÀÚ¤êʸ»úÎó,S2), atom_concat(S2,S1,S). # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1247438792/157 # # [1] ¼ø¶Èñ¸µ¡§ C++ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9762.txt # # Àµ¿ô¤Ë¤è¤ëÀµÊý¹ÔÎó¤Î¤¦¤Á¡¢Á´¤Æ¤Î¹Ô¡¢Î󡢼ФáÎó¤Î¹ç·×¤¬Æ±¤¸¤Ç¤¢¤ê¡¢ # ¤«¤Ä2²ó°Ê¾å»ÈÍѤµ¤ì¤ë¿ô»ú¤¬Â¸ºß¤·¤Ê¤¤¤â¤Î¤òËâÊý¿Ø¤È¤¤¤¦¡£ # ²¼¿Þ¤Ë¼¨¤¹a,b¤Ë¿ôÃͤòÀßÄꤷ¤¿¤È¤­¤Ë¡¢1¡Á9¤ÎÀ°¿ô¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëËâÊý¿Ø¤ò # ½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ⤷¡¢ËâÊý¿Ø¤¬ºîÀ®ÉÔ²Äǽ¤Ê(a,b)¤ÎÁȤ߹ç¤ï¤»¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¡ÖImpossible¡× # ¤È½ÐÎϤ¹¤ë¤È¤¹¤ë¡£ # # la_lb_l__l # l__l__l__l # l__l__l__l # ËâÊý¿Ø(NÛÆ,A,B,_¹ÔÎó) :- ËâÊý¿Ø¤Î¤¿¤á¤Î¹ÔÎó¤ÎÀ¸À®(NÛÆ,_¹ÔÎó), _¹ÔÎó = [[A,B|_],_,_], ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(_¹ÔÎó,S), Îó¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(_¹ÔÎó,S), ÀµÊý¹ÔÎó¤Î¼Ð¤áÍ×ÁǤιç·×¤¬°ìÃפ¹¤ë(_¹ÔÎó,S). ËâÊý¿Ø¤Î¤¿¤á¤Î¹ÔÎó¤ÎÀ¸À®(NÛÆ,_¹ÔÎó) :- N2 is NÛÆ ^ 2, findall(M,for(1,M,N2),NL),!, ½çÎó(NL,N2,_½çÎó¿ô»ú¤Ê¤é¤Ó), findall(_N¸ÄÁÈ,n¸ÄÁÈ(NÛÆ,_½çÎó¿ô»ú¤Ê¤é¤Ó,_N¸ÄÁÈ),_¹ÔÎó). ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë([],S) :- !. ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë([_¹Ô|R],S) :- ËâÊý¿Ø¤Î²Ã»»(_¹Ô,0,S), ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(R,S). Îó¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(_¹ÔÎó,S) :- ¹ÔÎó¤ÎžÃÖ(_¹ÔÎó,_žÃÖ¹ÔÎó), Îó¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(_žÃÖ¹ÔÎó,S),!. ÀµÊý¹ÔÎó¤Î¼Ð¤áÍ×ÁǤιç·×¤¬°ìÃפ¹¤ë(_ÀµÊý¹ÔÎó,S) :- length(_¹ÔÎó,Len), º¸¾å¤«¤é±¦²¼Êý¸þ¤Î¹ç·×(1,Len,_ÀµÊý¹ÔÎó,0,S), ±¦¾å¤«¤éº¸²¼Êý¸þ¤Î¹ç·×(1,Len,_ÀµÊý¹ÔÎó,0,S),!. º¸¾å¤«¤é±¦²¼Êý¸þ¤Î¹ç·×(M,N,_,S,S) :- M > N,!. º¸¾å¤«¤é±¦²¼Êý¸þ¤Î¹ç·×(M,N,_¹ÔÎó,S1,S) :- list_nth(M,_¹ÔÎó,_¹Ô), list_nth(M,_¹Ô,_Í×ÁÇ), S2 is _Í×ÁÇ + S1, M2 is M + 1, º¸¾å¤«¤é±¦²¼Êý¸þ¤Î¹ç·×(M2,N,_¹ÔÎó,S2,S),!. ±¦¾å¤«¤éº¸²¼Êý¸þ¤Î¹ç·×(M,N,_,S,S) :- M > N,!. ±¦¾å¤«¤éº¸²¼Êý¸þ¤Î¹ç·×(M,N,_¹ÔÎó,S1,S) :- M1 is N - M + 1, list_nth(M1,_¹ÔÎó,_¹Ô), list_nth(M1,_¹Ô,_Í×ÁÇ), S2 is _Í×ÁÇ + S1, M2 is M + 1, ±¦¾å¤«¤éº¸²¼Êý¸þ¤Î¹ç·×(M2,N,_¹ÔÎó,S2,S),!. n¸ÄÁÈ(N,L,X) :- length(X,N), append(X,L2,L3), append(L1,L3,L), length(L1,Len), 0 is Len mod N. ËâÊý¿Ø¤Î²Ã»»([],X,X) :- !. ËâÊý¿Ø¤Î²Ã»»([A|R],Y,X) :- Z is A + Y, ËâÊý¿Ø¤Î²Ã»»(R,Z,X). # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1312201995/566 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ÈÖ¹æ¤ÈÅÀ¿ô¤òÇÛÎó¤Ë½é´ü²½¤·¤Æ¡¢¤½¤ì¤é¤ò # £µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±¤ò¤·¤Æ¡¢¼õ¸³Èֹ桦¥é¥ó¥¯¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¡£ # ¥é¥ó¥¯ÉÕ¤±¤ò¤¹¤ëÉôʬ¤ò´Ø¿ôRank¤È¤·¤Æ¡¢ÈÖ¹æ¤Èɾ²Á¤òɽ¼¨¤¹¤ëÉôʬ¤ò´Ø¿ôOutput¤È¤¹¤ë¤³¤È¡£ # ¤Ê¤ª¡¢¥é¥ó¥¯¤Îɾ²Á¤Ï£°¡Á£±£¹ÅÀ¤òE¡¢£²£°¡Á£³£¹ÅÀ¤òD¡¢£´£°¡Á£µ£¹ÅÀ¤òC¡¢ # £¶£°¡Á£·£¹ÅÀ¤òB¡¢£¸£°¡Á£±£°£°ÅÀ¤òA¤È¤¹¤ë¡£ # ¤¿¤À¤·¡¢¼õ¸³¼Ô¤Î¿ô¤Ï¡¢£µ£°¿Í°Ê²¼¤È¤¹¤ë¡£ # ÈÖ¹æ¤ÈÅÀ¿ô¤Ï¡¢°Ê²¼¤ÎÇÛÎó¤ò»ÈÍѤ¹¤ë¤³¤È¡£ # Èֹ桡int no[NUMBER]={1,2,3,4,5,6,7,8,9,10}; # ÅÀ¿ô¡¡int tensu[NUMBER]={45,21,60,81,70,99,0,10,20,100}; # 'ÌäÂêʸ¤Î£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±'('¥é¥ó¥¯¤Îɾ²Á¤Ï£°¡Á£±£¹ÅÀ¤òE¡¢£²£°¡Á£³£¹ÅÀ¤òD¡¢£´£°¡Á£µ£¹ÅÀ¤òC¡¢ £¶£°¡Á£·£¹ÅÀ¤òB¡¢£¸£°¡Á£±£°£°ÅÀ¤òA¤È¤¹¤ë¡£ '). ÈÖ¹æ¤ÎÄêµÁʸ('Èֹ桡int no[NUMBER]={1,2,3,4,5,6,7,8,9,10};'). ÅÀ¿ô¤ÎÄêµÁʸ('ÅÀ¿ô¡¡int tensu[NUMBER]={45,21,60,81,70,99,0,10,20,100};'). '¥é¥ó¥¯¤Ê¤é¤Ó¤ÎÀ¸À®'(_¥é¥ó¥¯¤Ê¤é¤Ó) :- 'ÌäÂêʸ¤Î£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±'(_¥é¥ó¥¯ÄêµÁʸ), ¥é¥ó¥¯¤ÎÄêµÁʸ²òÀÏ(_¥é¥ó¥¯ÄêµÁʸ,_¥é¥ó¥¯¤Ê¤é¤Ó). ÈÖ¹æ¤Ê¤é¤Ó¤ÎÀ¸À®(_ÈÖ¹æ¤Ê¤é¤Ó) :- ÈÖ¹æ¤ÎÄêµÁʸ(_ÈÖ¹æ¤ÎÄêµÁʸ), ÈÖ¹æ¤ÎÄêµÁʸ²òÀÏ(_ÈÖ¹æ¤ÎÄêµÁʸ,_ÈÖ¹æ¤Ê¤é¤Ó). ÅÀ¿ô¤Ê¤é¤Ó¤ÎÀ¸À®(_ÅÀ¿ô¤Ê¤é¤Ó) :- ÅÀ¿ô¤ÎÄêµÁʸ(_ÅÀ¿ô¤ÎÄêµÁʸ), ÅÀ¿ô¤ÎÄêµÁʸ²òÀÏ(_ÅÀ¿ô¤ÎÄêµÁʸ,_ÅÀ¿ô¤Ê¤é¤Ó). '£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±¤ò¤·¤Æ¡¢¼õ¸³Èֹ桦¥é¥ó¥¯¤òɽ¼¨¤¹¤ë' :- ¥é¥ó¥¯¤Ê¤é¤Ó¤ÎÀ¸À®(_¥é¥ó¥¯¤Ê¤é¤Ó), ÈÖ¹æ¤Ê¤é¤Ó¤ÎÀ¸À®(_ÈÖ¹æ¤Ê¤é¤Ó), ÅÀ¿ô¤Ê¤é¤Ó¤ÎÀ¸À®(_ÅÀ¿ô¤Ê¤é¤Ó), '£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±¤ò¤·¤Æ¡¢¼õ¸³Èֹ桦¥é¥ó¥¯¤òɽ¼¨¤¹¤ë'(_ÈÖ¹æ¤Ê¤é¤Ó,_ÅÀ¿ô¤Ê¤é¤Ó,_¥é¥ó¥¯¤Ê¤é¤Ó). '£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±¤ò¤·¤Æ¡¢¼õ¸³Èֹ桦¥é¥ó¥¯¤òɽ¼¨¤¹¤ë'([],[],_). '£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±¤ò¤·¤Æ¡¢¼õ¸³Èֹ桦¥é¥ó¥¯¤òɽ¼¨¤¹¤ë'([_ÈÖ¹æ|R1],[_ÅÀ¿ô|R2],_¥é¥ó¥¯¤Ê¤é¤Ó) :- append(_,[[_ÅÀ¿ô²¼¸Â,_ÅÀ¿ô¾å¸Â,_¥é¥ó¥¯]|_],_¥é¥ó¥¯¤Ê¤é¤Ó), _ÅÀ¿ô >= _ÅÀ¿ô²¼¸Â, _ÅÀ¿ô =< _ÅÀ¿ô¾å¸Â, writef('¼õ¸³ÈÖ¹æ:%t ¥é¥ó¥¯:%t\n',[_ÈÖ¹æ,_¥é¥ó¥¯]), '£µÃʳ¬¤Ë¥é¥ó¥¯ÉÕ¤±¤ò¤·¤Æ¡¢¼õ¸³Èֹ桦¥é¥ó¥¯¤òɽ¼¨¤¹¤ë'(R1,R2,_¥é¥ó¥¯¤Ê¤é¤Ó). ¥é¥ó¥¯¤ÎÄêµÁʸ²òÀÏ(_¥é¥ó¥¯ÄêµÁʸ,_¥é¥ó¥¯¤Ê¤é¤Ó) :- Á´³Ñ¿ô»ú¤òȾ³Ñ¿ô»ú¤ËÊÑ´¹(_¥é¥ó¥¯ÄêµÁʸ,_Ⱦ³Ñ¿ô»úÊÑ´¹¤µ¤ì¤¿¥é¥ó¥¯ÄêµÁʸ), split(_Ⱦ³Ñ¿ô»úÊÑ´¹¤µ¤ì¤¿¥é¥ó¥¯ÄêµÁʸ,[' ','¡£','¡¢','¡Á','ÅÀ¤ò','¤È¤¹¤ë'],L), n¸ÄÁÈ(3,L,_¥é¥ó¥¯¤Ê¤é¤Ó). Á´³Ñ¿ô»ú¤òȾ³Ñ¿ô»ú¤ËÊÑ´¹(_¥é¥ó¥¯ÄêµÁʸ,_Ⱦ³Ñ¿ô»úÊÑ´¹¤µ¤ì¤¿¥é¥ó¥¯ÄêµÁʸ) :- atom_chars(_¥é¥ó¥¯ÄêµÁʸ,Chars), findall(_ʸ»ú_1, append(_,[_ʸ»ú|_],Chars), Á´³Ñ¿ô»ú¤Ê¤é¤ÐȾ³Ñ¿ô»ú¤ËÊÑ´¹(_ʸ»ú,_ʸ»ú_1)), Chars2), atom_chars(_Ⱦ³Ñ¿ô»úÊÑ´¹¤µ¤ì¤¿¥é¥ó¥¯ÄêµÁʸ,Chars2). Á´³Ñ¿ô»ú¤Ê¤é¤ÐȾ³Ñ¿ô»ú¤ËÊÑ´¹([_Á´³Ñ¿ô»ú|R1],[_Ⱦ³Ñ¿ô»ú|R2]) :- Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(_Á´³Ñ¿ô»ú,_Ⱦ³Ñ¿ô»ú), Á´³Ñ¿ô»ú¤Ê¤é¤ÐȾ³Ñ¿ô»ú¤ËÊÑ´¹(R1,R2). Á´³Ñ¿ô»ú¤Ê¤é¤ÐȾ³Ñ¿ô»ú¤ËÊÑ´¹([_ʸ»ú|R1],[_ʸ»ú|R2]) :- \+(Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(_ʸ»ú,_)), Á´³Ñ¿ô»ú¤Ê¤é¤ÐȾ³Ñ¿ô»ú¤ËÊÑ´¹(R1,R2). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£°,0). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£±,1). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£²,2). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£³,3). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£´,4). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£µ,5). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£¶,6). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£·,7). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£¸,8). Á´³Ñ¿ô»úȾ³Ñ¿ô»úÊÑ´¹(£¹,9). ÈÖ¹æ¤ÎÄêµÁʸ²òÀÏ(_ÈÖ¹æ¤ÎÄêµÁʸ,_ÈÖ¹æ¤Ê¤é¤Ó) :- split(_ÈÖ¹æ¤ÎÄêµÁʸ,['=',',',';'],[_|_ÈÖ¹æ¤Ê¤é¤Ó]). ÅÀ¿ô¤ÎÄêµÁʸ²òÀÏ(_ÅÀ¿ô¤ÎÄêµÁʸ,_ÅÀ¿ô¤Ê¤é¤Ó) :- split(_ÅÀ¿ô¤ÎÄêµÁʸ,['=',',',';'],[_|_ÅÀ¿ô¤Ê¤é¤Ó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % SWI-Prolog ¤Î¥³¥Þ¥ó¥É°ú¿ô¤ÎÆâ¡¢¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿Éôʬ¤ò¥ê¥¹¥È¤ËÆÀ¤ë¡£ % user_parameters(UserParameterList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1308749241/348 # # [1] C¸À¸ì±é½¬ # # [2] argv¤Ç»ØÄꤵ¤ì¤¿²ÄÊѰú¿ô¸Ä¿ô¤Î¾ðÊó¤òÊ̤ÎÇÛÎó(ary)¤Ë³ÊǼ¤»¤è¡£ # ⤷¡¢Âè°ì°ú¿ô¤À¤±¤ÏÊ̤ÎÇÛÎó(ary)¤Ë³ÊǼ¤Ï¤·¤Ê¤¤¤³¤È¡£ # Îã)argv¡§./test a b c d e f # Îã)ary ¡§./test b c d e f # # [3.1] redhat # [3.3] C¸À¸ì # [4] ËÜÆüÃæ # [5] À©¸Â¡§¤Ê¤· # ¤ï¤«¤ëÊý¤É¤¦¤«¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # 'argv¤Ç»ØÄꤵ¤ì¤¿²ÄÊѰú¿ô¸Ä¿ô¤Î¾ðÊó¤òÊ̤ÎÇÛÎó(ary)¤Ë³ÊǼ¤»¤è¡£ ⤷¡¢Âè°ì°ú¿ô¤À¤±¤ÏÊ̤ÎÇÛÎó(ary)¤Ë³ÊǼ¤Ï¤·¤Ê¤¤¤³¤È'(UserParameterList) :- user_parameters([_|UserParameterList]),!. user_parameters(UserParameterList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1308749241/425 # # [1] ¼ø¶Èñ¸µ:C¸À¸ì±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯): # Í¿¤¨¤¿Ê¸»úÎó¤ò»ØÄꤷ¤¿²ó¿ô·«¤êÊÖ¤¹Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢main´Ø¿ô¤ò°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤·¡¢¼Â¹Ô»þ¤Ë°ú¿ô¤ò¤È¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£ # Âè°ì°ú¿ô¤Ï·«¤êÊÖ¤·²ó¿ô¤È¤·¡¢ÂèÆó°ú¿ô¤Ï·«¤êÊÖ¤µ¤ì¤ëʸ»úÎó¤È¤¹¤ë¡£ # ¤¹¤Ê¤ï¤Á¡¢./prog 3 "ABC"¤È¼Â¹Ô¤·¤¿¾ì¹ç¤Ï¡¢ABCABCABC¤È¤Ê¤ëʸ»úÎ󤬺î¤é¤ì¤ë¡£ # ºî¤é¤ì¤¿Ê¸»úÎó¤Ï¡¢É½¼¨¤¹¤ë¤³¤È¡£É¬Íפ˱þ¤¸¤Æ¡¢¿ô»ú¤ò¿ôÃͤËÊÑ´¹¤¹¤ë´Ø¿ôatoi()¤ò»ÈÍѤ·¤Æ¤â¤è¤¤¡£ # ¤½¤ÎºÝ¤Ï¡¢#include<stdlib.h>¤ò²Ã¤¨¤ë¤³¤È¡£ # # #include <stdio.h> # #include <stdlib.h> # int main( int argc,char*argv[]){ # /** argc:°ú¿ô¤Î¸Ä¿ô¡¢argv[0]:¥×¥í¥°¥é¥à̾¡¢argv[1]¡Áargv[n]:°ú¿ô**/ # x=atoi(argv[1]);/*atoi¤Î»ÈÍÑÎã*/ # return(0); # } # program :- Í¿¤¨¤¿Ê¸»úÎó¤ò»ØÄꤷ¤¿²ó¿ô·«¤êÊÖ¤¹Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë. Í¿¤¨¤¿Ê¸»úÎó¤ò»ØÄꤷ¤¿²ó¿ô·«¤êÊÖ¤¹Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë :- user_parameters([_²ó¿ôʸ»úÎó,_ʸ»úÎó]), atom_to_term(_²ó¿ôʸ»úÎó,_²ó¿ô,_), length(Ln,_²ó¿ô), append(_,[_|R],Ln), write(_ʸ»úÎó), R = []. user_parameters(A) :- current_prolog_flag(argv, B), append(_, [--|A], B). # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1308749241/639 # # [1] C¸À¸ì±é½¬ # [2] argv¤ÇÆþÎϤµ¤ì¤¿°ú¿ô "123:456:78:90" ¤ÎÍͤÊʸ»úÎó¤ò ":" ¶èÀÚ¤ê¤Ç # Ê̤ÎÇÛÎ󤨽ç¤Ë³ÊǼ¤»¤è¡£(strchr´Ø¿ô¤ò»È¤¤¤Ê¤µ¤¤) # ¾åµ­¤ÎÎã¤Ç¤Ï¡¢[0]=123,[1]=456,[2]=78,[3]=90¤È¤Ê¤ë¡£ # ¾°¡¢::¤ÎϢ³¤â¤¢¤ê¤Ç¡¢"12:34::90" ¤Ï [0]=12,[1]=34,[2]=null,[3]=90¤È¤Ê¤ë¡£ # # ²¼¤ÎÍͤ˽èÍý¤·¤Æ¤¤¤ë¤¬¡¢¥¹¥Þ¡¼¥È¤Ë¹Ô¤­¤Þ¤»¤ó¡£¡£¡£ # p = NULL; # p = strchr(str, ':'); # while (p != NULL) { # printf("length %d\n", strlen(str)-strlen(p)); # p++; # p = strchr(p, ':'); # } # 'argv¤ÇÆþÎϤµ¤ì¤¿°ú¿ô "123:456:78:90" ¤ÎÍͤÊʸ»úÎó¤ò ":" ¤Ç¶èÀڤꡢ¥×¥í¥°¥é¥à°ú¿ô½Ò¸ì¤Î¥ê¥¹¥È°ú¿ô¤È¤¹¤ë' :- user_parameters([_°ú¿ôʸ»úÎó]), split(_°ú¿ôʸ»úÎó,[':'],L), assertz(¥×¥í¥°¥é¥à°ú¿ô(L)). user_parameters(UserParameterList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1311089619/682 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì±é½¬ # [2] ÌäÂêʸ¡§°ú¿ôargv¤Ë°Ê²¼¤Î£³¼ïÎब¤¢¤ë¡£ # ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ # Îã) # 0 ... »ØÄê¤Ê¤· # 1 ... »ØÄꤢ¤ê # °ú¿ô | --a | --b | --c | # -----+-----+-----+-----+------ # | 0 | 0 | 0 | OK # | 0 | 0 | 1 | OK # | 0 | 1 | 0 | OK # | 0 | 1 | 1 | NG # | 1 | 0 | 0 | OK # | 1 | 0 | 1 | NG # | 1 | 1 | 0 | NG # | 1 | 1 | 1 | NG # '°ú¿ôargv¤Ë°Ê²¼¤Î£³¼ïÎब¤¢¤ë¡£ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë' :- current_prolog_flag(argv,ParameterList), ¥Ñ¥é¥á¡¼¥¿²òÀÏ(ParameterList,_a,_b,_c), ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(_a,_b,_c,_¿ÇÃÇ), writef('%t\n',[_¿ÇÃÇ]). ¥Ñ¥é¥á¡¼¥¿²òÀÏ([_¥×¥í¥°¥é¥à̾|L],_a,_b,_c) :- findall(Y,( member(X,[a,b,c]), member(A,L), split(A,['--','='],[X,Y])), [_a,_b,_c]). ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(0,0,0,'OK') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(1,0,0,'OK') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(0,1,0,'OK') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(0,0,1,'OK') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(1,1,0,'NG') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(1,0,1,'NG') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(0,1,1,'NG') :- !. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(1,1,1,'NG') :- !. # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1311089619/699 # # ../test/read.cgi/tech/1311089619/682¤Ë¤Ä¤¤¤ÆÆâÍÆ¤¬ÉÔ­¤·¤Æ¤¤¤¿¤Î¤ÇºÆÅê¹Æ¤·¤Þ¤¹¡£ # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì±é½¬ # [2] ÌäÂêʸ¡§°ú¿ôargv¤Ë°Ê²¼¤Î£³¼ïÎब¤¢¤ë¡£ # ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ # [3] ¥Õ¥é¥°¡¦È½Äê¤Ë¥Ó¥Ã¥È±é»»¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ # Îã) # 0 ... »ØÄê¤Ê¤· # 1 ... »ØÄꤢ¤ê # °ú¿ô | --a | --b | --c | # -----+-----+-----+-----+------ # | 0 | 0 | 0 | OK # | 0 | 0 | 1 | OK # | 0 | 1 | 0 | OK # | 0 | 1 | 1 | NG # | 1 | 0 | 0 | OK # | 1 | 0 | 1 | NG # | 1 | 1 | 0 | NG # | 1 | 1 | 1 | NG # '°ú¿ôargv¤Ë°Ê²¼¤Î£³¼ïÎब¤¢¤ë¡£ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë¡£È½Äê¤Ï¥Ó¥Ã¥È±é»»¤ò»È¤¦' :- current_prolog_flag(argv,ParameterList), ¥Ñ¥é¥á¡¼¥¿²òÀÏ(ParameterList,_a,_b,_c), ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(_a,_b,_c,_¿ÇÃÇ), writef('%t\n',[_¿ÇÃÇ]). ¥Ñ¥é¥á¡¼¥¿²òÀÏ([_¥×¥í¥°¥é¥à̾|L],_a,_b,_c) :- findall(Y,( member(X,[a,b,c]), member(A,L), split(A,['--','='],[X,Y])), [_a,_b,_c]). ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(_a,_b,_c,'OK') :- 0 is (_a /\ _b) \/ (_a /\ _c) \/ (_b /\ _c),!. ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ·¤¿¾ì¹ç¤ËNG¤ò½ÐÎϤ¹¤ë(_a,_b,_c,'NG') :- 1 is (_a /\ _b) \/ (_a /\ _c) \/ (_b /\ _c),!. # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1309076891/453 # # ¡Ú¡¡²ÝÂê¡¡¡Û¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤ò½¸·×¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¡£ # ¡¡¡¡¡¡¡¡¡¡¡¡¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¥³¡¼¥É¤òÄɲ䷤ơ¢°Ê²¼¤Î¼Â¹Ô·ë²Ì¤Ë¤Ê¤ë¤è¤¦¤Ë¡£ # # ¼Â¹Ô·ë²Ì¡¡ # ¡¡¡¡¡¡¡¡¡¡¡¡java CalcMain 69 88 70 45 95 33 # ¡¡¡¡¡¡¡¡¡¡¡¡¹âÆÀÅÀ½ç¡§ 95ÅÀ , 88ÅÀ , 70ÅÀ , 69ÅÀ , 45ÅÀ , 33ÅÀ # ¡¡¡¡¡¡¡¡¡¡¡¡²ÊÌÜ¿ô¡§6²ÊÌÜ # ¡¡¡¡¡¡¡¡¡¡¡¡¹ç·×ÅÀ¡§400ÅÀ # ¡¡¡¡¡¡¡¡¡¡¡¡Ê¿¶ÑÅÀ¡§ 66.666664ÅÀ # ¡¡¡¡¡¡¡¡¡¡¡¡­¡ CalcMain¥¯¥é¥¹¤Ïmain()¥á¥½¥Ã¥É¤ò»ý¤Ä¡£ # ¡¡¡¡¡¡¡¡¡¡¡¡­¢ Calculation¥¯¥é¥¹¤Ï¡¢¹ç·×ÅÀ¤Î·×»»¤ò¤¹¤ëgetTotal()¥á¥½¥Ã¥É¡¢Ê¿¶ÑÅÀ¤Î·×»»¤ò¤¹¤ëgetAve()¥á¥½¥Ã¥É¡¢Ê¤ÓÂØ¤¨½èÍý¤ò¹Ô¤¦sort()¥á¥½¥Ã¥É¤ò»ý¤Ä¡£ # ¡¡¡¡¡¡¡¡¡¡¡¡­£ ¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤«¤é¼õ¤±¼è¤Ã¤¿ÉÔÆÃÄê¿ô¤Î¿ôÃÍ¡ÊÅÀ¿ô¡Ë¤Ë¤Ä¤¤¤Æ¡¢¹ß½çʤÓÂØ¤¨É½¼¨¡¢²ÊÌÜ¿ô¡¢¹ç·×ÅÀ¡¢Ê¿¶ÑÅÀ¤Îɽ¼¨¤ò¹Ô¤¦¡£ # ¡¡¡¡¡¡¡¡¡¡¡¡­¤ sort()¥á¥½¥Ã¥É¤ÎʤÓÂØ¤¨½èÍý¤Ë¤Ï¡Ö¥Ð¥Ö¥ë¥½¡¼¥È¡×¤ò»ÈÍѤ¹¤ë # # # ¡¡¡¡¡¡¡¡¡¡¡¡¥½¡¼¥¹¥Õ¥¡¥¤¥ë # ¡¡¡¡¡¡¡¡¡¡¡¡http://ime.nu/www.dotup.org/uploda/www.dotup.org2249012.java.html # # http://ime.nu/www.dotup.org/uploda/www.dotup.org2249060.java # # # # ¡Ú¡¡·ÁÂÖ¡¡¡Û1. Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(main()¤Ç³«»Ï) # ¡Ú¡¡´ü¸Â¡¡¡Û11·î14Æü¤Þ¤Ç # ¡Ú¡¡Ver¡¡ ¡Ûjava version "1.6.0_22" # ¡Ú¡¡ÍѸ졡¡Û # ¡Ú¡¡Êä­¡¡¡Û¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤ò½¸·×¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¡£¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¥³¡¼¥É¤òÄɲ䷤ơ¢°Ê²¼¤Î¼Â¹Ô·ë²Ì¤Ë¤Ê¤ë¤è¤¦¤Ë¡£' :- ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô(_¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤Ê¤é¤Ó), ¹âÆÀÅÀ½ç¤Ëɽ¼¨(_¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤Ê¤é¤Ó), ²ÊÌÜ¿ô¤È¹ç·×ÅÀ¤ÈÊ¿¶ÑÅÀ¤Îɽ¼¨(_¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤Ê¤é¤Ó). ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô(_¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤Ê¤é¤Ó) :- current_prolog_flag(argv,_¥³¥Þ¥ó¥É¥é¥¤¥ó), append(_,['--'|_¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿ÅÀ¿ô¤Ê¤é¤Ó],_¥³¥Þ¥ó¥É¥é¥¤¥ó]). ¹âÆÀÅÀ½ç¤Ëɽ¼¨(L) :- ¥Ð¥Ö¥ë¥½¡¼¥È¹ß½ç(L,L2), concat_atom(L2,',',_ɽ¼¨Ê¸»úÎó), writef('¹âÆÀÅÀ½ç: %t\n',[_ɽ¼¨Ê¸»úÎó]). ²ÊÌÜ¿ô¤Îɽ¼¨(L,_²ÊÌÜ¿ô) :- length(L,_²ÊÌÜ¿ô), writef('²ÊÌÜ¿ô: %t\n',[_²ÊÌÜ¿ô]), ²ÊÌÜ¿ô¤È¹ç·×ÅÀ¤ÈÊ¿¶ÑÅÀ¤Îɽ¼¨(L) :- length(L,_²ÊÌÜ¿ô), sum(L,_¹ç·×ÅÀ), _Ê¿¶ÑÅÀ is _¹ç·×ÅÀ / _²ÊÌÜ¿ô. writef('²ÊÌÜ¿ô: %t\n¹ç·×ÅÀ: %t\nÊ¿¶ÑÅÀ: %t\n',[_²ÊÌÜ¿ô,_¹ç·×ÅÀ,_Ê¿¶ÑÅÀ]). ¥Ð¥Ö¥ë¥½¡¼¥È¹ß½ç(_Âоݤʤé¤Ó,_À°ÎóºÑ¤ß¤Ê¤é¤Ó) :- ¹ß½ç¸ò´¹(_Âоݤʤé¤Ó,_Âоݤʤé¤Ó¤Î°ì), !, ¥Ð¥Ö¥ë¥½¡¼¥È¹ß½ç(_Âоݤʤé¤Ó¤Î°ì,_À°ÎóºÑ¤ß¤Ê¤é¤Ó). ¥Ð¥Ö¥ë¥½¡¼¥È¹ß½ç(_À°ÎóºÑ¤ß¤Ê¤é¤Ó,_À°ÎóºÑ¤ß¤Ê¤é¤Ó). ¹ß½ç¸ò´¹([],[]) :- !,fail. ¹ß½ç¸ò´¹([A,B|R],[B,A|R]) :- A @< B,!. ¹ß½ç¸ò´¹([A|R1],[A|R2]) :- ¹ß½ç¸ò´¹(R1,R2). # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1320365280/670 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # #include<stdio.h> # int main(void) # { # int i=0; # char *ptr; # char str[128]; # # ptr = str; # # scanf("%s",&str); # # while(*ptr++){ # i++; # } # # printf("%d\n",i); # } # # ¾åµ­¤ÎÆþÎϤ·¤¿¥Æ¥­¥¹¥È¤Îʸ»ú¿ô¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ÎÆÉ¤ß¹þ¤ßÉôʬ¤ò¥Õ¥¡¥¤¥ë½èÍý¤ËÊѹ¹¤»¤è¡£ # fgetc() ´Ø¿ô¤ò»ÈÍѤ·¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¥Õ¥¡¥¤¥ë̾¤¬»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ # ¤¿¤À¤·¡¢¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ïɸ½àÆþÎϤȤ¹¤ë¡£ # ¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¡¢¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¡£ # 'length·ÏÁȹþ½Ò¸ì¤ò»È¤ï¤ºÆþÎϤ·¤¿¥Æ¥­¥¹¥È¤Îʸ»ú¿ô¤òɽ¼¨¤¹¤ë' :- get_chars(_ʸ»ú¤Ê¤é¤Ó), ¤Ê¤é¤Ó¤Îʸ»ú¿ô¤ò¿ô¤¨¤ë(_ʸ»ú¤Ê¤é¤Ó,_ʸ»ú¿ô), writef('ʸ»ú¿ô¤Ï %tʸ»ú¤Ç¤¹\n',[_ʸ»ú¿ô]). ¤Ê¤é¤Ó¤Îʸ»ú¿ô¤ò¿ô¤¨¤ë([],0). ¤Ê¤é¤Ó¤Îʸ»ú¿ô¤ò¿ô¤¨¤ë([_|R],_ʸ»ú¿ô) :- ¤Ê¤é¤Ó¤Îʸ»ú¿ô¤ò¿ô¤¨¤ë(R,_ʸ»ú¿ô_1), _ʸ»ú¿ô is _ʸ»ú¿ô_1 + 1. ÆÉ¤ß¹þ¤ßÉôʬ¤ò¥Õ¥¡¥¤¥ë½èÍý¤ËÊѹ¹¤¹¤ë :- ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥Õ¥¡¥¤¥ë̾¤ò¼è¤ê½Ð¤¹(_¥Õ¥¡¥¤¥ë̾), ÆÉ¤ß¹þ¤ßÉôʬ¤ò¥Õ¥¡¥¤¥ë½èÍý¤ËÊѹ¹¤¹¤ë(_¥Õ¥¡¥¤¥ë̾). ÆÉ¤ß¹þ¤ßÉôʬ¤ò¥Õ¥¡¥¤¥ë½èÍý¤ËÊѹ¹¤¹¤ë(user_input,_ʸ»ú¿ô) :- ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤·¤Ê¤¬¤éʸ»ú¿ô¤ò¿ô¤¨¤ë(user_input,_ʸ»ú¿ô). ÆÉ¤ß¹þ¤ßÉôʬ¤ò¥Õ¥¡¥¤¥ë½èÍý¤ËÊѹ¹¤¹¤ë(_¥Õ¥¡¥¤¥ë̾,_ʸ»ú¿ô) :- open(_¥Õ¥¡¥¤¥ë̾,read,Instream), ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤·¤Ê¤¬¤éʸ»ú¿ô¤ò¿ô¤¨¤ë(Instream,_ʸ»ú¿ô), close(Instream). ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤·¤Ê¤¬¤éʸ»ú¿ô¤ò¿ô¤¨¤ë(Instream,0) :- at_end_of_stream(Instream),!. ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤·¤Ê¤¬¤éʸ»ú¿ô¤ò¿ô¤¨¤ë(Instream,_ʸ»ú¿ô) :- get_char(Instream,_), ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤·¤Ê¤¬¤éʸ»ú¿ô¤ò¿ô¤¨¤ë(Instream,_ʸ»ú¿ô_1), _ʸ»ú¿ô is _ʸ»ú¿ô_1 + 1. ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥Õ¥¡¥¤¥ë̾¤ò¼è¤ê½Ð¤¹(_¥Õ¥¡¥¤¥ë̾) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList), ParameterList = [_¥Õ¥¡¥¤¥ë̾|_],!. ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥Õ¥¡¥¤¥ë̾¤ò¼è¤ê½Ð¤¹(user_input). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1309076891/613 # # ÌÀÆü¤Þ¤Ç¤Î²ÝÂê¤Ç¤¹¡£ # ¤Þ¤Ã¤¿¤¯¤ï¤«¤ê¤Þ¤»¤ó¡£ # # ¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤­¤Ê¤µ¤¤¡£ # ¤Ê¤ª¡¢¥×¥í¥°¥é¥à¤Ï¼¡¤ÎÍ×·ï¤òËþ¤¿¤¹¤³¤È¡£ # # £±¡¥¥­¡¼¥Ü¡¼¥É¤«¤é¤ÎÆþÎϤϡ¢Enter¡Êreturn¡Ë¥­¡¼¤ò2²óϢ³¤·¤ÆÆþÎϤ¹¤ë¤È½ªÎ»¤¹¤ë # £²¡¥ÆþÎϽªÎ»¸å¡¢²èÌÌ¤ËÆþÎϤ·¤¿¹Ô¿ô¤òɽ¼¨¤¹¤ë # £³¡¥¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥×¥í¥°¥é¥à¤òµ¯Æ°¸å¡¢ÆþÎϤ¹¤ëʸ»úÎó¤Ë³Æ¼«¤Î»á̾¡Ê¥í¡¼¥Þ»úɽµ­¡Ë¤ò´Þ¤á¤¿¾ì¹ç¡¢ÆþÎϽèÍý½ªÎ»¸å¡¢³Æ¼«¤Î»á̾¤ò´Þ¤à¹Ô¤Ï²¿¹ÔÌܤˤ¢¤ê¡¢¤½¤Î¹Ô¤Îʸ»úÎ󤬲¿¤Ç¤¢¤ë¤«É½¼¨¤¹¤ë¡£ # »á̾¤¬ÆþÎϥǡ¼¥¿¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢´Þ¤Þ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤³¤È¤òɽ¼¨¤¹¤ë # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # program :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë'. '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë' :- user_parameters([_¥Õ¥¡¥¤¥ë̾]), open(_¥Õ¥¡¥¤¥ë̾,write,Outstream), get_line(Line), '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë'(Outstream,Line,[]), close(Outstream). '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë'(Outstream,'',Ln) :- length(Ln,_¹Ô¿ô), writef('¹Ô¿ô¤Ï %t ¤Ç¤¹\n',[_¹Ô¿ô]),!. '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë'(Outstream,Line,Ln) :- writef(Outstream,'%t\n',[Line]), get_line(Line_2), '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¥Æ¥­¥¹¥È¡Êʸ»úÎó¡Ë¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë'(Outstream,Line_2,[_|Ln] user_parameters(UserParameterList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1339338438/59 # # [1] ¼ø¶Èñ¸µ¡§ c¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # main´Ø¿ô¤ò°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤·¡¢¼Â¹Ô»þ¤Ë°ú¿ô¤ò¼è¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£ # °ú¿ô¤¬¤¹¤Ù¤ÆÆÀÅÀ¤Ç¤¢¤ë¤È¤·¤Æ¡¢¤½¤ÎÊ¿¶ÑÃͤò # µá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¤¹¤Ê¤ï¤Á¡¢ # ./prog 50 70 90 ¤È¼Â¹Ô¤·¤¿¾ì¹ç¤Ï¡¢70¤Èɽ¼¨¤µ¤ì¤ë¡£ # ɬÍפ˱þ¤¸¤Æ¡¢¿ô»ú¤ò¿ôÃͤËÊÑ´¹¤¹¤ë´Ø¿ôatoi()¤ä # atof()¤ò»ÈÍѤ·¤Æ¤â¤è¤¤¡£ # # #include <stdio.h> # #include <stdlib.h> # int main( int argc, char *argv[] ) { # /** argc: °ú¿ô¤Î¸Ä¿ô¡¢argv[0]¡§¥×¥í¥°¥é¥à̾¡¢argv[1]¡Áargv[n]¡§¼Â¿ô **/ # x = atof( argv[1] ); /* atof¤Î»ÈÍÑÎã */ # return(0); # } # # ¢¨ ÇÛÎó¤Î¥µ¥¤¥º¤Ê¤É¡¢Äê¿ô¤Ïɬ¤º#define¤òÍøÍѤ¹¤ë¤³¤È¡¥ # ¢¨ ɽ¼¨¤äÆþÎϤòÌÜŪ¤È¤¹¤ë´Ø¿ô°Ê³°¤Ç¤Ï¡¢ # ´Ø¿ô¤ÎÃæ¤Çɸ½àÆþÎϤäɸ½à½ÐÎÏ¤Ø¤ÎÆþ½ÐÎϤϹԤï¤Ê¤¤¤³¤È¡¥ # # # ¡¡[3.1] OS:Linux # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§gcc # ¡¡[3.3] ¸À¸ì¡§ c¸À¸ì # [4] ´ü¸Â¡§ 6·î15Æü # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹! # # program :- user_parameters(_¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿¤Ê¤é¤Ó), ¥×¥í¥°¥é¥à°ú¿ô¤òÀ°¿ô¤Ê¤é¤Ó¤ËÊÑ´¹(_¥æ¡¼¥¶¥Ñ¥é¥á¡¼¥¿¤Ê¤é¤Ó,_À°¿ô¤Ê¤é¤Ó), avg(À°¿ô¤Ê¤é¤Ó,_Áê²ÃÊ¿¶Ñ), writef('%t\n',[_Áê²ÃÊ¿¶Ñ]). user_parameters(UserParameterList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). ¥×¥í¥°¥é¥à°ú¿ô¤òÀ°¿ô¤Ê¤é¤Ó¤ËÊÑ´¹([],[]). ¥×¥í¥°¥é¥à°ú¿ô¤òÀ°¿ô¤Ê¤é¤Ó¤ËÊÑ´¹([A|R1],[N|R2]) :- atom_to_term(A,N,_), integer(N), ¥×¥í¥°¥é¥à°ú¿ô¤òÀ°¿ô¤Ê¤é¤Ó¤ËÊÑ´¹(R1,R2). ¥×¥í¥°¥é¥à°ú¿ô¤òÀ°¿ô¤Ê¤é¤Ó¤ËÊÑ´¹([_|R1],R2) :- ¥×¥í¥°¥é¥à°ú¿ô¤òÀ°¿ô¤Ê¤é¤Ó¤ËÊÑ´¹(R1,R2). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1339338438/642 # # [1] ¼ø¶Èñ¸µ¡§£Ã¸À¸ì±é½¬ # [2] ÌäÂêʸ¡§ # ¼Â¹Ô¥Õ¥¡¥¤¥ë̾¤òmulti¤È¤·¤Æ¡¢multi¤Ë³¤¤¤Æ2¤Ä¤ÎÀµ¤ÎÀ°¿ô¤òÆþÎϤ¹¤ë¤È¡¢¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ⤷¡¢ÆþÎÏ»þ¤Ë¤Ï¾®¤µ¤¤Êý¤ÎÀ°¿ô¡¢Â礭¤¤¤Û¤¦¤ÎÀ°¿ô¤Î½ç¤ÇÆþÎϤµ¤ì¤ë¤â¤Î¤È¤¹¤ë¡£ # <ÆþÎÏÎã>$./multi 3 6 # <·×»»·ë²Ì>360 # program :- user_parameters([_°ú¿ô1,_°ú¿ô2]), ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò½ÐÎϤ¹¤ë(_°ú¿ô1,_°ú¿ô2), user_parameters(ParametersList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò½ÐÎϤ¹¤ë(_°ú¿ô1,_°ú¿ô2) :- atom_number(_°ú¿ô1,N1), atom_number(_°ú¿ô2,N2), ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤ÈÂ礭¤¤Êý¤ÎÀ°¿ô(N1,N2,_¾®¤µ¤¤Êý¤ÎÀ°¿ô,_Â礭¤¤Êý¤ÎÀ°¿ô), ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò(_¾®¤µ¤¤Êý¤ÎÀ°¿ô,_Â礭¤¤Êý¤ÎÀ°¿ô,_ÀÑ), ½ÐÎϤ¹¤ë(_ÀÑ). ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤ÈÂ礭¤¤Êý¤ÎÀ°¿ô(N1,N2,N1,N2) :- N1 =< N2. ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤ÈÂ礭¤¤Êý¤ÎÀ°¿ô(N1,N2,N2,N1) :- N1 > N2. ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò(N,N,N). ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò(N,_Â礭¤¤Êý¤ÎÀ°¿ô,_ÀÑ) :- N < _Â礭¤¤Êý¤ÎÀ°¿ô, N1_2 is N1 + 1, ¾®¤µ¤¤Êý¤ÎÀ°¿ô¤«¤éÂ礭¤¤Êý¤ÎÀ°¿ô¤Þ¤Ç¤ÎÀѤò(N_2,_Â礭¤¤Êý¤ÎÀ°¿ô,_ÀÑ_2), _ÀÑ is _ÀÑ_2 * N. ½ÐÎϤ¹¤ë(_ÀÑ) :- writef('%t\n',[N]). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/786 # # C¸À¸ì # gcc # Linux # ÌäÂê:cat´Ø¿ô¤òºî¤ê¤Ê¤µ¤¤¡£¤¿¤À¤·¡¢fgets,fputs¤òÍѤ¤¤ë¤³¤È¡£¤Ç¤¹¡£ # # ÌÀÆü¤Î¤ªÃë¤Þ¤Ç¤Ë¤ª´ê¤¤¤·¤Þ¤¹¡£ # # cat :- user_parameters([]), get_code(user_input,Code), ¥¹¥È¥ê¡¼¥à¤«¤éÆÉ¤ß¼è¤ê½ñ¤­½Ð¤¹(user_input,Code),!. cat :- user_parameters(L), append(_,[File|R],L), ¥Õ¥¡¥¤¥ë¤ò½ñ¤­½Ð¤¹(File), R = [],!. ¥Õ¥¡¥¤¥ë¤ò½ñ¤­½Ð¤¹(File) :- open(File,read,Instream), get_code(Instream,Code), ¥¹¥È¥ê¡¼¥à¤«¤éÆÉ¤ß¼è¤ê½ñ¤­½Ð¤¹(Instream,Code), close(Instream). ¥¹¥È¥ê¡¼¥à¤«¤éÆÉ¤ß¼è¤ê½ñ¤­½Ð¤¹(_,-1) :- !. ¥¹¥È¥ê¡¼¥à¤«¤éÆÉ¤ß¼è¤ê½ñ¤­½Ð¤¹(Instream,Code_1) :- put_code(Code_1), get_code(Instream,Code_2), ¥¹¥È¥ê¡¼¥à¤«¤éÆÉ¤ß¼è¤ê½ñ¤­½Ð¤¹(Instream,Code_2). user_parameters(UserParameterList) :- current_prolog_flag(argv,ParameterList), append(_,['--'|UserParameterList],ParameterList). % % SWI-Prolog¤Îµ¯Æ°¤Ï % # swipl -t cat -f ¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë̾ -- ¥Õ¥¡¥¤¥ë1 ¥Õ¥¡¥¤¥ë̾2 ... % # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/907 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # °Ê²¼¤Î¤è¤¦¤Ëmain´Ø¿ô¤òÄêµÁ¤·¡¢main¤Î°ú¿ô¤ò¹ç·×¤¹¤ë¥×¥í¥°¥é¥àsum¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢°ú¿ô¤Î¿ô¤Ï̤Äê¤Ç¤¢¤ê¡¢¼Â¹Ô»þ¤Ë·èÄꤵ¤ì¤ë¤â¤Î¤È¤¹¤ë¡£ # int main(int argc, char *argv[]) # main :- ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó(_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó), findall(_¿ôÃÍ,( member(_¿ôÃÍʸ»úÎó,_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó), atom_number(_¿ôÃÍʸ»úÎó,_¿ôÃÍ)), _¿ôÃͤʤé¤Ó), sum(_¿ôÃͤʤé¤Ó,_¹ç·×), writef('%t\n',[_¹ç·×]). sum([],0). sum([_¿ôÃÍ|R],_¹ç·×) :- sum(R,_¹ç·×_1), _¹ç·× is _¿ôÃÍ + _¹ç·×_1. ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó(_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó) :- current_prolog_flag(argv, _¥³¥Þ¥ó¥É°ú¿ô¤Ê¤é¤Ó), append(_, [--|_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó], _¥³¥Þ¥ó¥É°ú¿ô¤Ê¤é¤Ó). % % # swipl --quiet -f c161_907.html -g main -- 33.0 25.1 38.4 % 96.5 % # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/957 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ìÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¥³¥Þ¥ó¥É¹Ô¤«¤éÊ£¿ô¤Î¿ôÃͤò¼õ¤±¼è¤ê¤½¤ÎÊ¿¶ÑÃͤò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò # ºîÀ®¤·¡¢¥×¥í¥°¥é¥à¥ê¥¹¥È¤È¼Â¹Ô·ë²Ì¤ò¼¨¤»¡£¥Ò¥ó¥È¡§¼õ¤±¼è¤Ã¤¿Ê¸»úÎó¤ò # double·¿¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï¡¢´Ø¿ôdouble atof(const char *nPtr)¤ò»È¤¦¡£ # ¤³¤Î´Ø¿ô¤ò»È¤¦¤Ë¤Ï<stdlib.h>¤Î¥¤¥ó¥¯¥ë¡¼¥É¤¬É¬ÍפǤ¢¤ë¡£ # #include <stdio.h> # #include <stdlib.h> # int main(void) # { # char str[]="1.41421356"; # double x; # x = atof(str); # } # '¥³¥Þ¥ó¥É¹Ô¤«¤éÊ£¿ô¤Î¿ôÃͤò¼õ¤±¼è¤ê¤½¤ÎÊ¿¶ÑÃͤò½ÐÎϤ¹¤ë' :- ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó(_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó), ¿ôÃͰú¿ô¤Ê¤é¤Ó¤ËÊÑ´¹(_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó,_¿ôÃͰú¿ô¤Ê¤é¤Ó), Áê²ÃÊ¿¶Ñ(_¿ôÃͰú¿ô¤Ê¤é¤Ó,_Áê²ÃÊ¿¶Ñ), writef('Ê¿¶ÑÃÍ¤Ï %t ¤Ç¤¹\n',[_Áê²ÃÊ¿¶Ñ]). ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó(_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó) :- current_prolog_flag(argv, _¥³¥Þ¥ó¥É°ú¿ô¤Ê¤é¤Ó), append(_, [--|_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó], _¥³¥Þ¥ó¥É°ú¿ô¤Ê¤é¤Ó). ¿ôÃͰú¿ô¤Ê¤é¤Ó¤ËÊÑ´¹(_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó,_¿ôÃͰú¿ô¤Ê¤é¤Ó) :- findall(_¿ôÃÍ,( member(_¿ôÃÍʸ»úÎó,_ÍøÍѼ԰ú¿ô¤Ê¤é¤Ó), atom_number(_¿ôÃÍʸ»úÎó,_¿ôÃÍ)), _¿ôÃͰú¿ô¤Ê¤é¤Ó). Áê²ÃÊ¿¶Ñ([],N,S,M) :- M is S / N,!. Áê²ÃÊ¿¶Ñ([A|R],N,S,M) :- S1 is S + A, Áê²ÃÊ¿¶Ñ(R,N,S1,M). Áê²ÃÊ¿¶Ñ(L,M) :- length(L,N), Áê²ÃÊ¿¶Ñ(L,N,0.0e+00,M). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1381909900/142 # # [1] ¼ø¶Èñ¸µ¡§£Ã¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è # input´Ø¿ô¤Èshow´Ø¿ô¤òºî¤ë¤³¤È # ¥³¥Þ¥ó¥É°ú¿ô¤Ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆþ¤ì¤ë¤³¤È # '¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è¡£¥³¥Þ¥ó¥É°ú¿ô¤Ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆþ¤ì¤ë¤³¤È' :- ¥³¥Þ¥ó¥É°ú¿ô¤«¤é¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆÀ¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë), ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë). ¥³¥Þ¥ó¥É°ú¿ô¤«¤é¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆÀ¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- current_prolog_flag(argv,ParameterList), append(_,['--'|[_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë]],ParameterList). ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,Outstream), ¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë). ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- open(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,write,Outstream). ¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(Outstream), close(Outstream). ¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(Outstream) :- between(1,5,_²¿ÈÖÌÜ), À°¿ô¤òÆÀ¤ë(_À°¿ô), writef(Outstream,'%t\n',[_À°¿ô]), _²¿ÈÖÌÜ = 5. ¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- open(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,read,Instream), copy_stream_data(Instream,user_output), close(Instream). % % ¤³¤³¤Ç¤Ï¥º¥ë¤ò¤·¤ÆÁȹþ½Ò¸ì copy_stream_data/2 ¤ò»È¤Ã¤Æ¸«¤¿¡£ % % ËÜÍè¤Ê¤éget_lines/2¤Èput_lines/2¤ÎÁȹ礻¤Ç¥³¥Ô¡¼¤òɽ¸½¤¹¤ë¤È¤³¤í¡£ % % ¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- % get_lines(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,_¹Ô¤Ê¤é¤Ó), % put_lines(user_output,_¹Ô¤Ê¤é¤Ó). % % get_lines(_¥Õ¥¡¥¤¥ë̾,_¹Ô¤Ê¤é¤Ó) :- % open(_¥Õ¥¡¥¤¥ë̾,read,Instream), % findall(_¹Ô,( % repeat, % ( at_end_of_stream(Instream),!,fail; % get_line(Instream,_¹Ô))), % _¹Ô¤Ê¤é¤Ó), % close(Instream). % % put_lines(_¥Õ¥¡¥¤¥ë̾,_¹Ô¤Ê¤é¤Ó) :- % open(_¥Õ¥¡¥¤¥ë̾,write,Outstream), % forall(nth1(_,_¹Ô¤Ê¤é¤Ó,_¹Ô),writef(Outstream,'%t\n',[_¹Ô])), % close(Outstream). % % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1308749241/177 # # # [2]²¼µ­¤Î¶å¶å¤Îɽ¤òºî¤ë¥×¥í¥°¥é¥à¤òºî¤ì # # 1 # 2 4 # 3 6 9 # ....... # 8 16 24...64 # 9 18 27...72 # ÊÑ§Ū¤Ê¶å¶å¤Îɽ¤òºî¤ë :- '_Îó¤¬_¹Ô¤òͤ¨¤Ê¤¤ÈϰϤǡ¢ÀѤòÀ¸À®¤¹¤ë'(_¹Ô,_Îó,_ÀÑ), 'À¸À®¤µ¤ì¤¿ÀѤòɽ¼¨¤¹¤ë¡£¤¿¤À¤·¡¢ºÇ¸å¤Î9¹Ô9Îó¤ÎÀѤÏɽ¼¨¤·¤Ê¤¤¡£'(_¹Ô,_Îó,_ÀÑ), _¹Ô = 9. '_Îó¤¬_¹Ô¤òͤ¨¤Ê¤¤ÈϰϤǡ¢ÀѤòÀ¸À®¤¹¤ë'(_¹Ô,_Îó,_ÀÑ) :- '_Îó¤¬_¹Ô¤òͤ¨¤Ê¤¤ÈϰϤǡ¢'(_¹Ô,_Îó), ÀѤòÀ¸À®¤¹¤ë(_¹Ô,_Îó,_ÀÑ). '_Îó¤¬_¹Ô¤òͤ¨¤Ê¤¤ÈϰϤǡ¢'(_¹Ô,_Îó) :- between(1,9,_¹Ô), between(1,_¹Ô,_Îó). ÀѤòÀ¸À®¤¹¤ë(_¹Ô,_Îó,_ÀÑ) :- _ÀÑ is _¹Ô * _Îó. 'À¸À®¤µ¤ì¤¿ÀѤòɽ¼¨¤¹¤ë¡£¤¿¤À¤·¡¢ºÇ¸å¤Î9¹Ô9Îó¤ÎÀѤÏɽ¼¨¤·¤Ê¤¤¡£'(_¹Ô,_Îó,_) :- '¤¿¤À¤·¡¢ºÇ¸å¤Î9¹Ô9Îó¤ÎÀѤÏɽ¼¨¤·¤Ê¤¤¡£'(_¹Ô,_Îó),!. 'À¸À®¤µ¤ì¤¿ÀѤòɽ¼¨¤¹¤ë¡£¤¿¤À¤·¡¢ºÇ¸å¤Î9¹Ô9Îó¤ÎÀѤÏɽ¼¨¤·¤Ê¤¤¡£'(_¹Ô,_Îó,_ÀÑ) :- '´ðËÜŪ¤ËÀѤòɽ¼¨¤¹¤ë¤¬¡¢_¹Ô=_Îó¤Î¾ì¹ç²þ¹Ô¤¹¤ë'(_¹Ô,_Îó,_ÀÑ). '¤¿¤À¤·¡¢ºÇ¸å¤Î9¹Ô9Îó¤ÎÀѤÏɽ¼¨¤·¤Ê¤¤¡£'(9,9). '´ðËÜŪ¤ËÀѤòɽ¼¨¤¹¤ë¤¬¡¢_¹Ô=_Îó¤Î¾ì¹ç²þ¹Ô¤¹¤ë'(_¹Ô,_Îó,_ÀÑ) :- '´ðËÜŪ¤ËÀѤòɽ¼¨¤¹¤ë¤¬¡¢'(_ÀÑ), '_¹Ô=_Îó¤Î¾ì¹ç²þ¹Ô¤¹¤ë'(_¹Ô,_Îó). '´ðËÜŪ¤ËÀѤòɽ¼¨¤¹¤ë¤¬¡¢'(_ÀÑ) :- writef('%3r ',[_ÀÑ]). '_¹Ô=_Îó¤Î¾ì¹ç²þ¹Ô¤¹¤ë'(_¹Ô,_Îó) :- _¹Ô = _Îó, nl. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # »Ø¿ôɽµ­¤ò»È¤ï¤º¤ËÀ°¿ô¤òÁǰø¿ôʬ²ò¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£ # ¤Ä¤Þ¤ê¡¢¡Ö72¡á2¡ß2¡ß2¡ß3¡ß3¡×¤Î¤è¤¦¤Ëɽ¸½¤·¤Þ¤¹¡£ # ¤³¤Î¤È¤­¤Ë»È¤¦¡Ø¡ß¡Ù¤Î¿ô¤Ï4¤Ä¤Ç¤¹¡£ # # ¤³¤³¤Ç¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¹Í¤¨¤Þ¤¹¡£ # ¾å¤Î72¤ÎÎã¤Ç¤¢¤ì¤Ð¡¢³Æ·å¤ÎϤÏ7+2¤Ç¡Ö9¡×¤Ç¤¹¤¬¡¢¡Ø¡ß¡Ù¤Î¿ô¤Ï¡Ö4¡×¤Ê¤Î¤ÇÉÔŬ¤Ç¤¹¡£ # # ¤³¤Î¾ò·ï¤òËþ¤¿¤¹¤â¤Î¤È¤·¤Æ¤Ï¡¢¡Ö110¡á2¡ß5¡ß11¡×¤ä¡Ö210¡á2¡ß3¡ß5¡ß7¡×¡¢ # ¡Ö512¡á2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡×¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ # # ¤Ç¤Ï¡¢4·å¤ÎÀ°¿ô¤Ç¾åµ­¤Î¾ò·ï¤òËþ¤¿¤¹¿ô¤ò¤¹¤Ù¤Æµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÏÉÔÌä¤Ç¤¹¡£ # ¤ª¹¥¤­¤Ê¸À¸ì¤Ç·×»»¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡Ú²òÅúÊýË¡¡Û # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò´°À®¤µ¤»¡¢¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ '»Ø¿ôɽµ­¤ò»È¤ï¤º¤Ë4·å¤ÎÀ°¿ô¤òÁǰø¿ôʬ²ò¤·¤Æ¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ëÀ°¿ô¤òÁ´¤Æµá¤á¤ë' :- findall(_4·å¤Î¿ô,( '4·å¤Î¿ô¤Î³Æ·å¤Î¹ç·×'(_4·å¤Î¿ô,_¾è»»µ­¹æÅÙ¿ô), »Ø¿ôɽµ­¤ò»È¤ï¤ºÁǰø¿ôʬ²ò¤ò¾è»»µ­¹æ¤Çɽ¸½¤·¤¿¾ì¹ç¤Î¾è»»µ­¹æÅÙ¿ô(_4·å¤Î¿ô,_»Ø¿ôɽµ­¤ò»È¤Ã¤¿Áǰø¿ôʬ²ò,_¾è»»µ­¹æÅÙ¿ô)),L), writef('%t\n',[L]). '4·å¤Î¿ô¤Î³Æ·å¤Î¹ç·×'(_4·å¤Î¿ô,_³Æ·å¤Î¹ç·×) :- between(1000,9999,_4·å¤Î¿ô), ³Æ·å¤Î¹ç·×(_4·å¤Î¿ô,0,_³Æ·å¤Î¹ç·×). ³Æ·å¤Î¹ç·×(0,_³Æ·å¤Î¹ç·×,_³Æ·å¤Î¹ç·×) :- !. ³Æ·å¤Î¹ç·×(N,_³Æ·å¤Î¹ç·×_1,_³Æ·å¤Î¹ç·×) :- M is N mod 10, N_1 is N // 10, _³Æ·å¤Î¹ç·×_2 is _³Æ·å¤Î¹ç·×_1 + M, ³Æ·å¤Î¹ç·×(N_1,_³Æ·å¤Î¹ç·×_2,_³Æ·å¤Î¹ç·×). »Ø¿ôɽµ­¤ò»È¤ï¤ºÁǰø¿ôʬ²ò¤ò¾è»»µ­¹æ¤Çɽ¸½¤·¤¿¾ì¹ç¤Î¾è»»µ­¹æÅÙ¿ô(N,_»Ø¿ôɽµ­¤ò»È¤Ã¤¿Áǰø¿ôʬ²ò,_¾è»»µ­¹æÅÙ¿ô) :- Áǰø¿ôʬ²ò(2,N,N,0,[],L), Áǰø¿ôʬ²ò¹à¹½À®(L,_»Ø¿ôɽµ­¤ò»È¤Ã¤¿Áǰø¿ôʬ²ò,0,_¾è»»µ­¹æÅÙ¿ô). Áǰø¿ôʬ²ò(U,M,N,C,X,X) :- U > N // 2,!. Áǰø¿ôʬ²ò(U,M,N,0,Y,X) :- member(J^_,Y), 0 is U mod J, U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,Y,X),!. Áǰø¿ôʬ²ò(2,M,N,0,Y,X) :- \+(0 is M mod 2), Áǰø¿ôʬ²ò(3,N,N,0,Y,X),!. Áǰø¿ôʬ²ò(2,M,N,C,Y,X) :- \+(0 is M mod 2), Áǰø¿ôʬ²ò(3,N,N,0,[2^C|Y],X),!. Áǰø¿ôʬ²ò(U,M,N,0,Y,X) :- \+(U=2), \+(0 is M mod U), U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,Y,X),!. Áǰø¿ôʬ²ò(U,M,N,C,Y,X) :- \+(U=2), \+(0 is M mod U), U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,[U^C|Y],X),!. Áǰø¿ôʬ²ò(U,M,N,C,Y,X) :- 0 is M mod U, C2 is C + 1, M1 is M // U, Áǰø¿ôʬ²ò(U,M1,N,C2,Y,X). Áǰø¿ôʬ²ò¹à¹½À®([J^M],J^M,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- _¾è»»µ­¹æÅÙ¿ô is _¾è»»µ­¹æÅÙ¿ô_1 + M -1,!. Áǰø¿ôʬ²ò¹à¹½À®([J^M|R1],B * J^M,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- _¾è»»µ­¹æÅÙ¿ô_2 is _¾è»»µ­¹æÅÙ¿ô_1 + M, Áǰø¿ôʬ²ò¹à¹½À®(R1,B,_¾è»»µ­¹æÅÙ¿ô_2,_¾è»»µ­¹æÅÙ¿ô). :- '»Ø¿ôɽµ­¤ò»È¤ï¤º¤Ë4·å¤ÎÀ°¿ô¤òÁǰø¿ôʬ²ò¤·¤Æ¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ëÀ°¿ô¤òÁ´¤Æµá¤á¤ë',halt. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # »Ø¿ôɽµ­¤ò»È¤ï¤º¤ËÀ°¿ô¤òÁǰø¿ôʬ²ò¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£ # ¤Ä¤Þ¤ê¡¢¡Ö72¡á2¡ß2¡ß2¡ß3¡ß3¡×¤Î¤è¤¦¤Ëɽ¸½¤·¤Þ¤¹¡£ # ¤³¤Î¤È¤­¤Ë»È¤¦¡Ø¡ß¡Ù¤Î¿ô¤Ï4¤Ä¤Ç¤¹¡£ # # ¤³¤³¤Ç¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¹Í¤¨¤Þ¤¹¡£ # ¾å¤Î72¤ÎÎã¤Ç¤¢¤ì¤Ð¡¢³Æ·å¤ÎϤÏ7+2¤Ç¡Ö9¡×¤Ç¤¹¤¬¡¢¡Ø¡ß¡Ù¤Î¿ô¤Ï¡Ö4¡×¤Ê¤Î¤ÇÉÔŬ¤Ç¤¹¡£ # # ¤³¤Î¾ò·ï¤òËþ¤¿¤¹¤â¤Î¤È¤·¤Æ¤Ï¡¢¡Ö110¡á2¡ß5¡ß11¡×¤ä¡Ö210¡á2¡ß3¡ß5¡ß7¡×¡¢ # ¡Ö512¡á2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡×¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ # # ¤Ç¤Ï¡¢4·å¤ÎÀ°¿ô¤Ç¾åµ­¤Î¾ò·ï¤òËþ¤¿¤¹¿ô¤ò¤¹¤Ù¤Æµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÏÉÔÌä¤Ç¤¹¡£ # ¤ª¹¥¤­¤Ê¸À¸ì¤Ç·×»»¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡Ú²òÅúÊýË¡¡Û # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò´°À®¤µ¤»¡¢¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ '»Ø¿ôɽµ­¤ò»È¤ï¤º¤Ë4·å¤ÎÀ°¿ô¤òÁǰø¿ôʬ²ò¤·¤Æ¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ëÀ°¿ô¤òÁ´¤Æµá¤á¤ë'(L) :- findall(N,( between(1000,9999,N), ³Æ·å¤Î¹ç·×(N,0,_¾è»»µ­¹æÅÙ¿ô), Áǰø¿ôʬ²ò(N,X,_¾è»»µ­¹æÅÙ¿ô)),L). ³Æ·å¤Î¹ç·×(0,_³Æ·å¤Î¹ç·×,_³Æ·å¤Î¹ç·×) :- !. ³Æ·å¤Î¹ç·×(N,_³Æ·å¤Î¹ç·×_1,_³Æ·å¤Î¹ç·×) :- M is N mod 10, N_1 is N // 10, _³Æ·å¤Î¹ç·×_2 is _³Æ·å¤Î¹ç·×_1 + M, ³Æ·å¤Î¹ç·×(N_1,_³Æ·å¤Î¹ç·×_2,_³Æ·å¤Î¹ç·×). Áǰø¿ôʬ²òɽ¼¨(N) :- Áǰø¿ôʬ²ò(N,X,_¾è»»µ­¹æÅÙ¿ô), writef('%t = %t\n¾è»»µ­¹æÅÙ¿ô = %t\n',[N,X,_¾è»»µ­¹æÅÙ¿ô]). Áǰø¿ôʬ²ò(N,X,_¾è»»µ­¹æÅÙ¿ô) :- Áǰø¿ôʬ²ò(2,N,N,0,[],L,0,_¾è»»µ­¹æÅÙ¿ô_1), Áǰø¿ôʬ²ò¹à¹½À®(L,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô). Áǰø¿ôʬ²ò(U,M,N,C,X,X,_¾è»»µ­¹æÅÙ¿ô,_¾è»»µ­¹æÅÙ¿ô) :- U > N // 2,!. Áǰø¿ôʬ²ò(U,M,N,0,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- member(J^_,Y), 0 is U mod J, U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô),!. Áǰø¿ôʬ²ò(2,M,N,0,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- \+(0 is M mod 2), Áǰø¿ôʬ²ò(3,N,N,0,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô),!. Áǰø¿ôʬ²ò(2,M,N,C,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- \+(0 is M mod 2), _¾è»»µ­¹æÅÙ¿ô_2 is _¾è»»µ­¹æÅÙ¿ô_1 + C - 1, Áǰø¿ôʬ²ò(3,N,N,0,[2^C|Y],X,_¾è»»µ­¹æÅÙ¿ô_2,_¾è»»µ­¹æÅÙ¿ô),!. Áǰø¿ôʬ²ò(U,M,N,0,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- \+(U=2), \+(0 is M mod U), U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô),!. Áǰø¿ôʬ²ò(U,M,N,C,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- \+(U=2), \+(0 is M mod U), U2 is U + 2, _¾è»»µ­¹æÅÙ¿ô_2 is _¾è»»µ­¹æÅÙ¿ô_1 + C - 1, Áǰø¿ôʬ²ò(U2,N,N,0,[U^C|Y],X,_¾è»»µ­¹æÅÙ¿ô_2,_¾è»»µ­¹æÅÙ¿ô),!. Áǰø¿ôʬ²ò(U,M,N,C,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- 0 is M mod U, C2 is C + 1, M1 is M // U, Áǰø¿ôʬ²ò(U,M1,N,C2,Y,X,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô). Áǰø¿ôʬ²ò¹à¹½À®([A],A,_¾è»»µ­¹æÅÙ¿ô,_¾è»»µ­¹æÅÙ¿ô) :- !. Áǰø¿ôʬ²ò¹à¹½À®([A|R1],B * A,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- _¾è»»µ­¹æÅÙ¿ô_2 is _¾è»»µ­¹æÅÙ¿ô_1 + 1, Áǰø¿ôʬ²ò¹à¹½À®(R1,B,_¾è»»µ­¹æÅÙ¿ô_2,_¾è»»µ­¹æÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # »Ø¿ôɽµ­¤ò»È¤ï¤º¤ËÀ°¿ô¤òÁǰø¿ôʬ²ò¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£ # ¤Ä¤Þ¤ê¡¢¡Ö72¡á2¡ß2¡ß2¡ß3¡ß3¡×¤Î¤è¤¦¤Ëɽ¸½¤·¤Þ¤¹¡£ # ¤³¤Î¤È¤­¤Ë»È¤¦¡Ø¡ß¡Ù¤Î¿ô¤Ï4¤Ä¤Ç¤¹¡£ # # ¤³¤³¤Ç¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¹Í¤¨¤Þ¤¹¡£ # ¾å¤Î72¤ÎÎã¤Ç¤¢¤ì¤Ð¡¢³Æ·å¤ÎϤÏ7+2¤Ç¡Ö9¡×¤Ç¤¹¤¬¡¢¡Ø¡ß¡Ù¤Î¿ô¤Ï¡Ö4¡×¤Ê¤Î¤ÇÉÔŬ¤Ç¤¹¡£ # # ¤³¤Î¾ò·ï¤òËþ¤¿¤¹¤â¤Î¤È¤·¤Æ¤Ï¡¢¡Ö110¡á2¡ß5¡ß11¡×¤ä¡Ö210¡á2¡ß3¡ß5¡ß7¡×¡¢ # ¡Ö512¡á2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡×¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ # # ¤Ç¤Ï¡¢4·å¤ÎÀ°¿ô¤Ç¾åµ­¤Î¾ò·ï¤òËþ¤¿¤¹¿ô¤ò¤¹¤Ù¤Æµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÏÉÔÌä¤Ç¤¹¡£ # ¤ª¹¥¤­¤Ê¸À¸ì¤Ç·×»»¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡Ú²òÅúÊýË¡¡Û # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò´°À®¤µ¤»¡¢¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ '»Ø¿ôɽµ­¤ò»È¤ï¤º¤Ë4·å¤ÎÀ°¿ô¤òÁǰø¿ôʬ²ò¤·¤Æ¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ëÀ°¿ô¤òÁ´¤Æµá¤á¤ë'(_³Æ·å¤ÎϤȾ軻µ­¹æÅÙ¿ô¤Î°ìÃפ¹¤ë4·å¤Î¿ô¤Ê¤é¤Ó) :- '9999°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó'(_9999°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), findall(_4·å¤Î¿ô,( '4·å¤Î¿ô¤Î³Æ·å¤Î¹ç·×'(_4·å¤Î¿ô,_¾è»»µ­¹æÅÙ¿ô), »Ø¿ôɽµ­¤ò»È¤ï¤ºÁǰø¿ôʬ²ò¤ò¾è»»µ­¹æ¤Çɽ¸½¤·¤¿¾ì¹ç¤Î¾è»»µ­¹æÅÙ¿ô(_4·å¤Î¿ô,_9999°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_¾è»»µ­¹æÅÙ¿ô)),_³Æ·å¤ÎϤȾ軻µ­¹æÅÙ¿ô¤Î°ìÃפ¹¤ë4·å¤Î¿ô¤Ê¤é¤Ó). '9999°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó'(_9999°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(N,between(2,9999,N),_2°Ê¾å9999°Ê²¼¤Î¿ô¥ê¥¹¥È), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2°Ê¾å9999°Ê²¼¤Î¿ô¥ê¥¹¥È,_9999°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([M|R1],[M|R2]) :- 'R1¤Î»Ä¤ê¤Î¿ô¤Ê¤é¤Ó¤ÎÃæ¤Ç¡¢M¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ÏäÁ¤¤Íî¤È¤¹'(M,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). 'R1¤Î»Ä¤ê¤Î¿ô¤Ê¤é¤Ó¤ÎÃæ¤Ç¡¢M¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ÏäÁ¤¤Íî¤È¤¹'(M,R1,L) :- findall(N,( 'R1¤Î»Ä¤ê¤Î¿ô¤Ê¤é¤Ó¤ÎÃæ¤Ç'(R1,N), 'M¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ÏäÁ¤¤Íî¤È¤¹'(N,M)),L). 'R1¤Î»Ä¤ê¤Î¿ô¤Ê¤é¤Ó¤ÎÃæ¤Ç'(R1,N) :- member(N,R1). 'M¤Ç³ä¤êÀÚ¤ì¤ë¤â¤Î¤ÏäÁ¤¤Íî¤È¤¹'(N,M) :- \+(0 is N mod M). '4·å¤Î¿ô¤Î³Æ·å¤Î¹ç·×'(_4·å¤Î¿ô,_³Æ·å¤Î¹ç·×) :- between(1000,9999,_4·å¤Î¿ô), ³Æ·å¤Î¹ç·×(_4·å¤Î¿ô,0,_³Æ·å¤Î¹ç·×). ³Æ·å¤Î¹ç·×(0,_³Æ·å¤Î¹ç·×,_³Æ·å¤Î¹ç·×) :- !. ³Æ·å¤Î¹ç·×(N,_³Æ·å¤Î¹ç·×_1,_³Æ·å¤Î¹ç·×) :- '²¼°Ì1·å¤òÀÚ¤ê¼è¤Ã¤Æ²Ã»»¤¹¤ë'(N,_³Æ·å¤Î¹ç·×_1,_²¼°Ì°ì·å¤òÀÚ¤ê¼è¤Ã¤¿¿ô,_³Æ·å¤Î¹ç·×_2), ³Æ·å¤Î¹ç·×(_²¼°Ì°ì·å¤òÀÚ¤ê¼è¤Ã¤¿¿ô,_³Æ·å¤Î¹ç·×_2,_³Æ·å¤Î¹ç·×). '²¼°Ì1·å¤òÀÚ¤ê¼è¤Ã¤Æ²Ã»»¤¹¤ë'(N,_³Æ·å¤Î¹ç·×_1,_²¼°Ì°ì·å¤òÀÚ¤ê¼è¤Ã¤¿¿ô,_³Æ·å¤Î¹ç·×_2) :- M is N mod 10, _²¼°Ì°ì·å¤òÀÚ¤ê¼è¤Ã¤¿¿ô is N // 10, _³Æ·å¤Î¹ç·×_2 is _³Æ·å¤Î¹ç·×_1 + M. »Ø¿ôɽµ­¤ò»È¤ï¤ºÁǰø¿ôʬ²ò¤ò¾è»»µ­¹æ¤Çɽ¸½¤·¤¿¾ì¹ç¤Î¾è»»µ­¹æÅÙ¿ô(N,_ÁÇ¿ô¤Ê¤é¤Ó,_¾è»»µ­¹æÅÙ¿ô) :- ÁÇ¿ô¤Ç²¿²ó³ä¤êÀÚ¤ì¤ë¤«(N,_ÁÇ¿ô¤Ê¤é¤Ó,[],_Áǰø¿ô¤Î¿ô¤Î¹ç·×¤òɽ¤¹¤Ê¤é¤Ó), Áǰø¿ô¤Î¿ô¤Î¹ç·×¤òɽ¤¹¤Ê¤é¤Ó¤«¤é¾è»»µ­¹æÅÙ¿ô¤òÆÀ¤ë(_Áǰø¿ô¤Î¿ô¤Î¹ç·×¤òɽ¤¹¤Ê¤é¤Ó,_¾è»»µ­¹æÅÙ¿ô). ÁÇ¿ô¤Ç²¿²ó³ä¤êÀÚ¤ì¤ë¤«(N,[],_²¿²ó,_²¿²ó). ÁÇ¿ô¤Ç²¿²ó³ä¤êÀÚ¤ì¤ë¤«(N,[_ÁÇ¿ô|R],_²¿²ó_1,_²¿²ó) :- °ì¤Ä¤ÎÁÇ¿ô¤Ç³ä¤ë¤³¤È¤¬¤Ç¤­¤ë¿ô¤ò²Ã»»¤¹¤ë(N,_ÁÇ¿ô,_²¿²ó_1,_²¿²ó_2), ÁÇ¿ô¤Ç²¿²ó³ä¤êÀÚ¤ì¤ë¤«(N,R,_²¿²ó_2,_²¿²ó). °ì¤Ä¤ÎÁÇ¿ô¤Ç³ä¤ë¤³¤È¤¬¤Ç¤­¤ë¿ô¤ò²Ã»»¤¹¤ë(N,_ÁÇ¿ô,_²¿²ó,_²¿²ó) :- ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¯¤Ê¤Ã¤¿¤é¤½¤ÎÁÇ¿ô¤Ï½ªÎ»¤¹¤ë(N,_ÁÇ¿ô),!. °ì¤Ä¤ÎÁÇ¿ô¤Ç³ä¤ë¤³¤È¤¬¤Ç¤­¤ë¿ô¤ò²Ã»»¤¹¤ë(N,_ÁÇ¿ô,L1,L) :- ÁÇ¿ô¤Ç³ä¤ì¤ë¤À¤±³ä¤Ã¤Æ¤¤¤¯(N,_ÁÇ¿ô,L1,N_1,L). ÁÇ¿ô¤Ç³ä¤êÀÚ¤ì¤Ê¤¯¤Ê¤Ã¤¿¤é¤½¤ÎÁÇ¿ô¤Ï½ªÎ»¤¹¤ë(N,_ÁÇ¿ô) :- \+(0 is N mod _ÁÇ¿ô). ÁÇ¿ô¤Ç³ä¤ì¤ë¤À¤±³ä¤Ã¤Æ¤¤¤¯(N,_ÁÇ¿ô,L1,N_1,L) :- N_1 is N // _ÁÇ¿ô, °ì¤Ä¤ÎÁÇ¿ô¤Ç³ä¤ë¤³¤È¤¬¤Ç¤­¤ë¿ô¤ò²Ã»»¤¹¤ë(N_1,_ÁÇ¿ô,[_|L1],L). Áǰø¿ô¤Î¿ô¤Î¹ç·×¤òɽ¤¹¤Ê¤é¤Ó¤«¤é¾è»»µ­¹æÅÙ¿ô¤òÆÀ¤ë([_|L],_¾è»»µ­¹æÅÙ¿ô) :- length(L,_¾è»»µ­¹æÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # »Ø¿ôɽµ­¤ò»È¤ï¤º¤ËÀ°¿ô¤òÁǰø¿ôʬ²ò¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£ # ¤Ä¤Þ¤ê¡¢¡Ö72¡á2¡ß2¡ß2¡ß3¡ß3¡×¤Î¤è¤¦¤Ëɽ¸½¤·¤Þ¤¹¡£ # ¤³¤Î¤È¤­¤Ë»È¤¦¡Ø¡ß¡Ù¤Î¿ô¤Ï4¤Ä¤Ç¤¹¡£ # # ¤³¤³¤Ç¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¹Í¤¨¤Þ¤¹¡£ # ¾å¤Î72¤ÎÎã¤Ç¤¢¤ì¤Ð¡¢³Æ·å¤ÎϤÏ7+2¤Ç¡Ö9¡×¤Ç¤¹¤¬¡¢¡Ø¡ß¡Ù¤Î¿ô¤Ï¡Ö4¡×¤Ê¤Î¤ÇÉÔŬ¤Ç¤¹¡£ # # ¤³¤Î¾ò·ï¤òËþ¤¿¤¹¤â¤Î¤È¤·¤Æ¤Ï¡¢¡Ö110¡á2¡ß5¡ß11¡×¤ä¡Ö210¡á2¡ß3¡ß5¡ß7¡×¡¢ # ¡Ö512¡á2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡ß2¡×¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ # # ¤Ç¤Ï¡¢4·å¤ÎÀ°¿ô¤Ç¾åµ­¤Î¾ò·ï¤òËþ¤¿¤¹¿ô¤ò¤¹¤Ù¤Æµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÏÉÔÌä¤Ç¤¹¡£ # ¤ª¹¥¤­¤Ê¸À¸ì¤Ç·×»»¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ¡Ú²òÅúÊýË¡¡Û # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò´°À®¤µ¤»¡¢¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ '»Ø¿ôɽµ­¤ò»È¤ï¤º¤Ë4·å¤ÎÀ°¿ô¤òÁǰø¿ôʬ²ò¤·¤Æ¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ëÀ°¿ô¤òÁ´¤Æµá¤á¤ë' :- findall(_4·å¤Î¿ô,( '4·å¤Î¿ô¤Î³Æ·å¤Î¹ç·×'(_4·å¤Î¿ô,_¾è»»µ­¹æÅÙ¿ô), »Ø¿ôɽµ­¤ò»È¤ï¤ºÁǰø¿ôʬ²ò¤ò¾è»»µ­¹æ¤Çɽ¸½¤·¤¿¾ì¹ç¤Î¾è»»µ­¹æÅÙ¿ô(_4·å¤Î¿ô,_»Ø¿ôɽµ­¤ò»È¤Ã¤¿Áǰø¿ôʬ²ò,_¾è»»µ­¹æÅÙ¿ô)),L), writef('%t\n',[L]). '4·å¤Î¿ô¤Î³Æ·å¤Î¹ç·×'(_4·å¤Î¿ô,_³Æ·å¤Î¹ç·×) :- between(1000,9999,_4·å¤Î¿ô), ³Æ·å¤Î¹ç·×(_4·å¤Î¿ô,0,_³Æ·å¤Î¹ç·×). ³Æ·å¤Î¹ç·×(0,_³Æ·å¤Î¹ç·×,_³Æ·å¤Î¹ç·×) :- !. ³Æ·å¤Î¹ç·×(N,_³Æ·å¤Î¹ç·×_1,_³Æ·å¤Î¹ç·×) :- M is N mod 10, N_1 is N // 10, _³Æ·å¤Î¹ç·×_2 is _³Æ·å¤Î¹ç·×_1 + M, ³Æ·å¤Î¹ç·×(N_1,_³Æ·å¤Î¹ç·×_2,_³Æ·å¤Î¹ç·×). »Ø¿ôɽµ­¤ò»È¤ï¤ºÁǰø¿ôʬ²ò¤ò¾è»»µ­¹æ¤Çɽ¸½¤·¤¿¾ì¹ç¤Î¾è»»µ­¹æÅÙ¿ô(N,_»Ø¿ôɽµ­¤ò»È¤Ã¤¿Áǰø¿ôʬ²ò,_¾è»»µ­¹æÅÙ¿ô) :- Áǰø¿ôʬ²ò(2,N,N,0,[],L), Áǰø¿ôʬ²ò¹à¹½À®(L,_»Ø¿ôɽµ­¤ò»È¤Ã¤¿Áǰø¿ôʬ²ò,0,_¾è»»µ­¹æÅÙ¿ô). Áǰø¿ôʬ²ò(U,M,N,C,X,X) :- U > N // 2,!. Áǰø¿ôʬ²ò(U,M,N,0,Y,X) :- member(J^_,Y), 0 is U mod J, U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,Y,X),!. Áǰø¿ôʬ²ò(2,M,N,0,Y,X) :- \+(0 is M mod 2), Áǰø¿ôʬ²ò(3,N,N,0,Y,X),!. Áǰø¿ôʬ²ò(2,M,N,C,Y,X) :- \+(0 is M mod 2), Áǰø¿ôʬ²ò(3,N,N,0,[2^C|Y],X),!. Áǰø¿ôʬ²ò(U,M,N,0,Y,X) :- \+(U=2), \+(0 is M mod U), U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,Y,X),!. Áǰø¿ôʬ²ò(U,M,N,C,Y,X) :- \+(U=2), \+(0 is M mod U), U2 is U + 2, Áǰø¿ôʬ²ò(U2,N,N,0,[U^C|Y],X),!. Áǰø¿ôʬ²ò(U,M,N,C,Y,X) :- 0 is M mod U, C2 is C + 1, M1 is M // U, Áǰø¿ôʬ²ò(U,M1,N,C2,Y,X). Áǰø¿ôʬ²ò¹à¹½À®([J^M],J^M,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- _¾è»»µ­¹æÅÙ¿ô is _¾è»»µ­¹æÅÙ¿ô_1 + M -1,!. Áǰø¿ôʬ²ò¹à¹½À®([J^M|R1],B * J^M,_¾è»»µ­¹æÅÙ¿ô_1,_¾è»»µ­¹æÅÙ¿ô) :- _¾è»»µ­¹æÅÙ¿ô_2 is _¾è»»µ­¹æÅÙ¿ô_1 + M, Áǰø¿ôʬ²ò¹à¹½À®(R1,B,_¾è»»µ­¹æÅÙ¿ô_2,_¾è»»µ­¹æÅÙ¿ô). :- '»Ø¿ôɽµ­¤ò»È¤ï¤º¤Ë4·å¤ÎÀ°¿ô¤òÁǰø¿ôʬ²ò¤·¤Æ¡¢¸µ¤Î¿ô¤Î¡Ö³Æ·å¤ÎÏ¡פ¬¡ÖÁǰø¿ôʬ²ò¤·¤¿¡Ø¡ß¡Ù¤Î¿ô¡×¤ÈÅù¤·¤¯¤Ê¤ëÀ°¿ô¤òÁ´¤Æµá¤á¤ë',halt. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1381909900/576 # À¾Îñ²¿Ç¯¤«¤òÆþÎϤ¹¤ë¤È¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨ # 52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ª´ê¤¤¤·¤Þ¤¹¡Ä # # 1²ó1²óȽÄꤹ¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·¡¢°ìµ¤¤ËȽÄê¤ò½ÐÎϤ¹¤ë¤â¤Î¤Ç¤ª´ê¤¤¤·¤Þ¤¹ # (0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) # # ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹ # # 'À¾Îñ²¿Ç¯¤«¤òÆþÎϤ¹¤ë¤È¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨ 52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ª´ê¤¤¤·¤Þ¤¹¡Ä 1²ó1²óȽÄꤹ¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·¡¢°ìµ¤¤ËȽÄê¤ò½ÐÎϤ¹¤ë¤â¤Î¤Ç¤ª´ê¤¤¤·¤Þ¤¹ (0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹' :- 'À¾Îñ²¿Ç¯¤«¤ò°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_À¾Îñ¤Ê¤é¤Ó), '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'(_À¾Îñ¤Ê¤é¤Ó). 'À¾Îñ²¿Ç¯¤«¤ò°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_À¾Îñ¤Ê¤é¤Ó) :- findall(_À¾Îñ,( 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'('À¾Îñ(1989~5000)¤òÆþÎϤ·¤Æ²¼¤µ¤¤',_À¾Îñ), ( _À¾Îñ=0,!,fail;true)),_À¾Îñ¤Ê¤é¤Ó). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'([]). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'([_À¾Îñ|_»Ä¤ê¤Ê¤é¤Ó]) :- '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(_À¾Îñ,_1¤Þ¤¿¤Ï0), ½ÐÎϤ¹¤ë(_À¾Îñ,_1¤Þ¤¿¤Ï0), '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'(_»Ä¤ê¤Ê¤é¤Ó). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(_À¾Îñ,_0¤Þ¤¿¤Ï1) :- '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨'(_À¾Îñ,_·îÍËÆü¤Î²ó¿ô), '52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(_·îÍËÆü¤Î²ó¿ô,_0¤Þ¤¿¤Ï1). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨'(_À¾Îñ,_·îÍËÆü¤Î²ó¿ô) :- findall(1,( ÆüÉÕ¤ÈÍËÆü¤ÎÀ¸À®(_À¾Îñ,1,1,_ǯ,_·î,_Æü,·îÍË), ( \+(_ǯ = _À¾Îñ),!,fail;true)),L), length(L,_·îÍËÆü¤Î²ó¿ô). '52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(52,1). '52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(53,0). ½ÐÎϤ¹¤ë(_À¾Îñ,_1¤Þ¤¿¤Ï0) :- writef('%tǯ %t\n',[_À¾Îñ,_1¤Þ¤¿¤Ï0]). 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ºÅ¥ʸ,_À¾Îñ) :- writef('%t ',[_ºÅ¥ʸ]), get_line(_ÆþÎϹÔ), '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ÆþÎϹÔ,_À¾Îñ). 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ºÅ¥ʸ,_À¾Îñ) :- 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ºÅ¥ʸ,_À¾Îñ). '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'('0',0) :- !. '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ÆþÎϹÔ,_À¾Îñ) :- read_term_from_atom(_ÆþÎϹÔ,_À¾Îñ,[]), integer(_À¾Îñ), between(1889,5000,_À¾Îñ),!. '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ÆþÎϹÔ,_) :- writef('ÆþÎϤµ¤ì¤¿Ê¸»úÎó"%t"¤«¤é1899ǯ¤«¤é5000ǯÈϰϤÎÀ¾Îñ¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿\nºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n',[_ÆþÎϹÔ]), fail. get_line(Line) :- read_line_to_codes(user_input,Codes), atom_codes(Line,Codes). 'ÆüÉÕ¤ÈÍËÆü¤ÎÀ¸À®'(_ǯ,_·î,_Æü,_ǯ,_·î,_Æü,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'ÆüÉÕ¤ÈÍËÆü¤ÎÀ¸À®'(_ǯ_1,_·î_1,_Æü_1,_ǯ,_·î,_Æü,_ÍËÆü) :- ÍâÆü(_ǯ_1,_·î_1,_Æü_1,_ǯ_2,_·î_2,_Æü_2), 'ÆüÉÕ¤ÈÍËÆü¤ÎÀ¸À®'(_ǯ_2,_·î_2,_Æü_2,_ǯ,_·î,_Æü,_ÍËÆü). 'ÆüÉÕ¤ÈÍËÆü¤ÎÀ¸À®'(_µ¯ÅÀǯ·îÆüʸ»úÎó,_ǯ·îÆüʸ»úÎó,_ÍËÆü) :- ǯ·îÆüʸ»úÎ󤫤éÀ°¿ôǯ·îÆü¤òÆÀ¤ë(_µ¯ÅÀǯ·îÆüʸ»úÎó,_µ¯ÅÀǯ,_µ¯ÅÀ·î,_µ¯ÅÀÆü), 'ÆüÉÕ¤ÈÍËÆü¤ÎÀ¸À®'(_µ¯ÅÀǯ,_µ¯ÅÀ·î,_µ¯ÅÀÆü,_ǯ,_·î,_Æü,_ÍËÆü), À°¿ô¤«¤éʸ»úÎó(4,_ǯ,_ǯʸ»úÎó), À°¿ô¤«¤éʸ»úÎó(2,_·î,_·îʸ»úÎó), À°¿ô¤«¤éʸ»úÎó(2,_Æü,_Æüʸ»úÎó), atomic_list_concat([_ǯʸ»úÎó,_·îʸ»úÎó,_Æüʸ»úÎó],_ǯ·îÆüʸ»úÎó). ÍâÆü(_ǯ,12,31,_ÍâÆü¤Îǯ,1,1) :- succ(_ǯ,_ÍâÆü¤Îǯ),!. ÍâÆü(_ǯ,2,29,_ǯ,3,1) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ÍâÆü(_ǯ,2,28,_ǯ,3,1) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)),!. ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_ÍâÆü¤Î·î,1) :- _ÍâÆü¤Î·î is _·î + 1, '½½Æó·î¡¦Æó·î¤ò½ü¤¯·îËöÆü'(_·î,_Æü),!. ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_·î,_ÍâÆü¤ÎÆü) :- succ(_Æü,_ÍâÆü¤ÎÆü). '½½Æó·î¡¦Æó·î¤ò½ü¤¯·îËöÆü'(_·î,30) :- ¾®¤Î·î(_·î),!. '½½Æó·î¡¦Æó·î¤ò½ü¤¯·îËöÆü'(_·î,31) :- Âç¤Î·î(_·î). ¾®¤Î·î(_·î) :- member(_·î,[2,4,6,9,11]). Âç¤Î·î(_·î) :- member(_·î,[1,3,5,7,8,10,12]). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î > 2, _ÍËÆü¤òɽ¤¹ÃÍ is (_ǯ + truncate(_ǯ / 4) - truncate(_ǯ / 100) + truncate(_ǯ / 400) + truncate((13 * _·î + 8) / 5) + _Æü) mod 7, ÍËÆü¤òɽ¤¹ÃÍ(_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î =< 2, _ǯ_1 is _ǯ - 1, _·î_2 is _·î + 12, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ_1,_·î_2,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). ÍËÆü¤òɽ¤¹ÃÍ(0,ÆüÍË). ÍËÆü¤òɽ¤¹ÃÍ(1,·îÍË). ÍËÆü¤òɽ¤¹ÃÍ(2,²ÐÍË). ÍËÆü¤òɽ¤¹ÃÍ(3,¿åÍË). ÍËÆü¤òɽ¤¹ÃÍ(4,ÌÚÍË). ÍËÆü¤òɽ¤¹ÃÍ(5,¶âÍË). ÍËÆü¤òɽ¤¹ÃÍ(6,ÅÚÍË). % °Ê²¼¤Î¥µ¥¤¥È¤Ï :- dynamic(²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2). ²¼»°·å¤Î­¤·»»¤ÎÄêµÁÀá¤ÎÀ¸À® :- between(0,999,M), between(0,999,N), S is ( M + N ) mod 1000, assertz((²¼»°·å¤Î­¤·»»(M,N,S) :- !)), N = 999, M = 999. ²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(0,1) :- !. ²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(1,1) :- !. ²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(N,X) :- ÎÙ¤ê¹ç¤¦2¤Ä¤Î¿ô¤ò²Ã¤¨¤ë(N,X), asserta((²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(N,X) :- !)). ÎÙ¤ê¹ç¤¦2¤Ä¤Î¿ô¤ò²Ã¤¨¤ë(N,X) :- N_1 is N - 1, N_2 is N - 2, ²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(N_1,Y), ²¼»°·å¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(N_2,Z), ²¼»°·å¤Î­¤·»»(Y,Z,X). :- ²¼»°·å¤Î­¤·»»¤ÎÄêµÁÀá¤ÎÀ¸À®. % °Ê²¼¤Î¥µ¥¤¥È¤Ï :- dynamic(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(0,[0]) :- !. 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(1,[0,1]) :- !. 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(N,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó) :- ½é´ü²½(N,L), '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë¡£2¤«¤éN¤Þ¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÅÐÏ¿¤¹¤ë'(L,N), findall(_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô,¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(_,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô),_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë¡£2¤«¤éN¤Þ¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÅÐÏ¿¤¹¤ë'(L,N) :- repeat, append(L1,[A,B,C|L2],L), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë(A,B,C), L1=[],!. ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë(A,B,C) :- ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(B,_°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(C,_Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô), _¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô is _°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô + _Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô, ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤¬Ì¤ÅÐÏ¿¤Ê¤é¤ÐÅÐÏ¿¤¹¤ë(A,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤¬Ì¤ÅÐÏ¿¤Ê¤é¤ÐÅÐÏ¿¤¹¤ë(A,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô) :- \+(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(A,_)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(A,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô)). ½é´ü²½(N,L) :- abolish(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(0,0)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(1,1)), 'N¤«¤é0¤Þ¤Ç¤ÎµÕ½ç¥ê¥¹¥È¤òÍѰդ¹¤ë'(N,L). 'N¤«¤é0¤Þ¤Ç¤ÎµÕ½ç¥ê¥¹¥È¤òÍѰդ¹¤ë'(N,L) :- findall(M,between(0,N,M),L1), reverse(L1,L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï :- dynamic(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(0,[0]) :- !. 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(1,[0,1]) :- !. 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(N,_) :- ½é´ü²½(N,L), '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë¡£2¤«¤éN¤Þ¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÅÐÏ¿¤¹¤ë'(L,N). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(_,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó) :- findall(M,¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(_,M),_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë¡£2¤«¤éN¤Þ¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÅÐÏ¿¤¹¤ë'(L,N) :- repeat, append(L1,[A,B,C|L2],L), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë(A,B,C), (L1=[],!,fail;fail). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÏÆó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤǤ¢¤ë(A,B,C) :- ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(B,_°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(C,_Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô), _¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô is _°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô + _Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô, ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤¬Ì¤ÅÐÏ¿¤Ê¤é¤ÐÅÐÏ¿¤¹¤ë(A,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤¬Ì¤ÅÐÏ¿¤Ê¤é¤ÐÅÐÏ¿¤¹¤ë(A,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô) :- \+(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(A,_)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(A,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô)). ½é´ü²½(N,L) :- abolish(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(0,0)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(1,1)), 'N¤«¤é0¤Þ¤Ç¤ÎµÕ½ç¥ê¥¹¥È¤òÍѰդ¹¤ë'(L). 'N¤«¤é0¤Þ¤Ç¤ÎµÕ½ç¥ê¥¹¥È¤òÍѰդ¹¤ë'(N,L) :- findall(M,between(0,N,M),L1), reverse(L1,L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï :- dynamic(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(N,_) :- ½é´ü²½, findall(M,between(0,N,M),L1), reverse(L1,L2), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Î²ò·è(L2,N). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(_,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó) :- findall(M,¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(_,M),_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó). ½é´ü²½ :- abolish(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(0,0)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(1,1)). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Î²ò·è(L,N) :- repeat, append(L1,[A,B,C|L2],L), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(B,V_1), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(C,V_2), V is V_1 + V_2, \+(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(A,V)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(A,V)), (L1=[],!,fail;fail). % °Ê²¼¤Î¥µ¥¤¥È¤Ï :- dynamic(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2). :- dynamic(id/1). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(N,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô) :- ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¥×¥í¥°¥é¥à¤Î½é´ü²½(N), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Î²ò·è(N). 'repeat-fail¥ë¡¼¥×¤Ç¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Î·×»»'(N,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô) :- ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(N,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¥×¥í¥°¥é¥à¤Î½é´ü²½(N) :- ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Èid¤òabolish, ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô0ÈÖÌܤÈ1ÈÖÌܤÎÄêµÁ, ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¹½Â¤¤ÎÄêµÁ(N). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Èid¤òabolish :- abolish(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô/2), abolish(id/1). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô0ÈÖÌܤÈ1ÈÖÌܤÎÄêµÁ :- assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(0,0)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(1,1)). ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¹½Â¤¤ÎÄêµÁ(N) :- between(2,N,M), asserta(id(M)), asserta(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(M,V)), N = M. ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Î²ò·è(N) :- ÀèÆ¬¤Îid¤«¤é½ç¤ËM¤ÈV¤òÆÀ¤ë(M,V), (id¤ÎÀèÆ¬¥Ç¡¼¥¿¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤¬²ò·èºÑ¤ß¤Ê¤é¤Ð(M,N,V),!,fail; 'V¤¬Ì¤²ò·è¤Î»þ¤Ï¡¢¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÆó¤ÄÁ°¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤ˹¹¿·¤¹¤ë'(M,V)). ÀèÆ¬¤Îid¤«¤é½ç¤ËM¤ÈV¤òÆÀ¤ë(M,V) :- ÀèÆ¬¤Îid¤«¤é½ç¤ËM¤È(M), 'V¤òÆÀ¤ë'(M,V). ÀèÆ¬¤Îid¤«¤é½ç¤ËM¤È(M) :- repeat, id(M). 'V¤òÆÀ¤ë'(M,V) :- ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(M,V). id¤ÎÀèÆ¬¥Ç¡¼¥¿¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤¬²ò·èºÑ¤ß¤Ê¤é¤Ð(M,N,V) :- M = N, integer(V). 'V¤¬Ì¤²ò·è¤Î»þ¤Ï¡¢¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÆó¤ÄÁ°¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎϤ˹¹¿·¤¹¤ë'(M,V) :- 'V¤¬Ì¤²ò·è¤Î»þ¤Ï'(V), Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÆÀ¤ë(M,V_1,V_2), 'V_1¤ÈV_2¤¬¶¦¤ËÀ°¿ô¤Î»þ¤ÏV¤ÏV_1¤ÈV_2¤ÎϤǤ¢¤ë'(V_1,V_2,V), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Î¹¹¿·(M,V), fail. 'V¤¬Ì¤²ò·è¤Î»þ¤Ï'(V) :- \+(integer(V)). Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È°ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÆÀ¤ë(M,V_1,V_2) :- Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È(M,V_2), °ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÆÀ¤ë(M,V_1). Æó¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤È(M,V_2) :- M_2 is M - 2, ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(M_2,V_2). °ì¤ÄÁ°¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òÆÀ¤ë(M,V_1) :- succ(M_1,M), ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(M_1,V_1). 'V_1¤ÈV_2¤¬¶¦¤ËÀ°¿ô¤Î»þ¤ÏV¤ÏV_1¤ÈV_2¤ÎϤǤ¢¤ë'(V_1,V_2,V) :- integer(V_1), integer(V_2), V is V_1 + V_2. ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Î¹¹¿·(M,V) :- retract(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(M,_)), assertz(¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô(M,V)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï À°¿ô½ü»»(_¼Â,_Ë¡,_¾¦,_¾ê;) :- À°¿ô(_¼Â), À°¿ô½ü»»(_¼Â,_Ë¡,true,_¾¦,_¾ê;). À°¿ô½ü»»(_¼Â,_Ë¡,_¾¦,_¾ê;) :- ÊÑ¿ô(_¼Â), À°¿ô(_Ë¡), Ë¡¤È¤·¤Æ¹çƱ(_Ë¡,_¼Â,_¾¦,_¾ê;). Ë¡¤È¤·¤Æ¹çƱ(_n,_n¤òË¡¤È¤·¤Æ¹çƱ,_m,_¾ê;) :- À°¿ô(_n), nth0(_m,_,_), succ(_n_1,_n), between(0,_n_1,_¾ê;), _n¤òË¡¤È¤·¤Æ¹çƱ is _m * _n + _¾ê;. À°¿ô½ü»»(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;) :- 'À°¿ô¤Ï¼Â¤ÈË¡'(_¼Â,_Ë¡,_¾¦,_¾ê;). À°¿ô½ü»»(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;) :- 'À°¿ô¤Ï¼Â¤È¾¦¤È¾ê;¡¢ÊÑ¿ô¤ÏË¡'(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;). À°¿ô½ü»»(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;) :- 'À°¿ô¤Ï¼Â¡¢ÊÑ¿ô¤ÏË¡¤È¾¦'(_¼Â,_Ë¡,_¾¦,_¾ê;). À°¿ô½ü»»(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;) :- 'ÊÑ¿ô¤Ï¼Â'(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;). Ë¡¤È¤·¤Æ¹çƱ(_n,_n¤òË¡¤È¤·¤Æ¹çƱ,_À©Ìó,_m,_¾ê;) :- 'mǵ¤Á¾¦¤È¾ê;¤òÀ¸À®'(_n,_m,_¾ê;), _n¤òË¡¤È¤·¤Æ¹çƱ is _m * _n + _¾ê;, (\+(_À©Ìó),!,fail;true). 'mǵ¤Á¾¦¤È¾ê;¤òÀ¸À®'(_n,_m,_¾ê;) :- À°¿ô(_n), nth0(_m,_,_), succ(_n_1,_n), between(0,_n_1,_¾ê;). À°¿ô¤Ï¼Â¤ÈË¡(_¼Â,_Ë¡,_¾¦,_¾ê;) :- À°¿ô¤Ï¼Â¤ÈË¡(_¼Â,_Ë¡), _¾¦ is _¼Â // _Ë¡, _¾ê; is _¼Â mod _Ë¡. À°¿ô¤Ï¼Â¤ÈË¡(_¼Â,_Ë¡) :- À°¿ô(_¼Â), À°¿ô(_Ë¡). 'À°¿ô¤Ï¼Â¤È¾¦¤È¾ê;¡¢ÊÑ¿ô¤ÏË¡'(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;) :- 'À°¿ô¤Ï¼Â¤È¾¦¤È¾ê;¡¢ÊÑ¿ô¤ÏË¡'(_¼Â,_Ë¡,_¾¦,_¾ê;), _Ë¡ is (_¼Â - _¾ê;) // _¾¦, _¾ê; is _¼Â mod _Ë¡, _À©Ìó. 'À°¿ô¤Ï¼Â¤È¾¦¤È¾ê;¡¢ÊÑ¿ô¤ÏË¡'(_¼Â,_Ë¡,_¾¦,_¾ê;) :- À°¿ô(_¼Â), ÊÑ¿ô(_Ë¡), À°¿ô(_¾¦), À°¿ô(_¾ê;). 'À°¿ô¤Ï¼Â¤È¾¦¡¢ÊÑ¿ô¤ÏË¡¤È¾ê;'(_¼Â,_Ë¡,_¾¦,_¾ê;) :- À°¿ô(_¼Â), ÊÑ¿ô(_Ë¡), À°¿ô(_¾¦), ÊÑ¿ô(_¾ê;), succ(_¾¦_1,_¾¦), between(0,_¾¦_1,_¾ê;). 'À°¿ô¤Ï¼Â,ÊÑ¿ô¤ÏË¡¤È¾¦'(_¼Â,_Ë¡,_¾¦,_¾ê;) :- À°¿ô(_¼Â), ÊÑ¿ô(_Ë¡), ÊÑ¿ô(_¾¦), between(1,_¼Â,_Ë¡), À°¿ô½ü»»(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;). 'ÊÑ¿ô¤Ï¼Â'(_¼Â,_Ë¡,_À©Ìó,_¾¦,_¾ê;) :- ÊÑ¿ô(_¼Â), Ë¡¤È¤·¤Æ¹çƱ(_Ë¡,_¼Â,_À©Ìó,_¾¦,_¾ê;). 'À°¿ô¤Ï¼Â¡¢ÊÑ¿ô¤ÏË¡¤È¾¦'(_¼Â,_Ë¡,_¾¦,_¾ê;) :- À°¿ô(_¼Â), ÊÑ¿ô(_Ë¡), ÊÑ¿ô(_¾¦), between(1,_¼Â,_Ë¡), _¾¦ is _¼Â // _Ë¡, _¾ê; is _¼Â mod _Ë¡. À°¿ô(_À°¿ô) :- integer(_À°¿ô). ÊÑ¿ô(_ÊÑ¿ô) :- var(_ÊÑ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¥¬¥êÉפ¯¤ó¡§¥¹¥Þ»Ò¤µ¤ó¡¢ºÇ¶á¼Â¤Ï¿ô»ú˨¤¨¤ËÌܳФ᤿¤ó¤Ç¤¹¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§ 鮤«¤éËÀ¤Ë¥¢¥Ö¥Î¡¼¥Þ¥ëÀë¸À¤ò¤µ¤ì¤Æ¤âº¤¤ë¤Î¤À¤±¤ì¤É¤â¡Ä¡Ä¡£ # # ¥¬¥êÉפ¯¤ó¡§ÆÃ¤Ë1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤ÏºÇ¹â¤Ã¤¹¤è¡ª¡¡Ä¹½÷¤È¤·¤ÆÂ¾¤Î¿ô»ú»Ò¤Á¤ã¤óã¤ò°ìÀ¸·üÌ¿»Ù¤¨¤ë1¤Á¤ã¤ó¡£Á´¤Æ¤ò̵¤Ëµ¢¤¹ÎϤò»ý¤Ã¤¿¥ß¥¹¥Æ¥ê¥¢¥¹Èþ¾¯½÷¤Î0¤Á¤ã¤ó¡£¡Ä¡Ä¤«¤ï¤¨¤¨¡Á¡£ # # ¥¹¥Þ»Ò¤µ¤ó¡§¡Ä¡Ä¤â¤¦µ¢¤Ã¤Æ¤¤¤¤¤«¤·¤é¡£ # # ¥¬¥êÉס§¤â¤¦¿ô¤ÎÀ¤³¦¤Ë¤Ï1¤Á¤ã¤ó¤È0¤Á¤ã¤ó°Ê³°Íפê¤Þ¤»¤ó¡ª¡¡1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤µ¤¨¤¤¤ì¤Ð¡¢¤½¤ì¤ÇËþ­¤Ç¤¹¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§¤¢¤é¡¢¤½¤ì¤Ï¤Ê¤«¤Ê¤«±Ô¤¤»ØÅ¦¤Í¡£ # # ¥¬¥êÉפ¯¤ó¡§¡Ä¡Ä¤È¸À¤¤¤Þ¤¹¤È¡© # # ¥¹¥Þ»Ò¤µ¤ó¡§¼Â¤Ï¡¢»ä¤¿¤Á¤¬ÉáÃʻȤäƤ¤¤ë¿ô¤Ï¡¢¾¡¼ê¤Ë0¡Á9¤Þ¤Ç¤Î¿ô¤ò»È¤¤¤Þ¤¹¤è¤È·è¤á¤Æ¤¤¤ë¤Ë²á¤®¤Ê¤¤¤Î¡£¼ÂºÝ¤Ë¤Ï0¤È1¤À¤±¤Ç¤â¿ô¤òɽ¤¹¤³¤È¤Ï²Äǽ¤Ê¤Î¤è¡£ # # ¥¬¥êÉפ¯¤ó¡§¤Û¤¦¤Û¤¦¡Ä¡Ä¡£ # # ¥¹¥Þ»Ò¤µ¤ó¡§¤³¤ì¤ò2¿ÊË¡¤Ã¤Æ¸À¤¦¤ó¤À¤±¤ì¤É¤â¤Í¡£°ì¤Î°Ì¤¬1¤Ë¤Ê¤Ã¤¿¤é¡¢¤½¤Î¼¡¤Î°Ì¤Ï°ì¤Î°Ì¤ò0¤ËÌᤷ¤Æ¡¢¤½¤Î¾å¤Î°Ì¤ò1Áý¤ä¤·¤Æ¡Ä¡Ä¤Ã¤Æ¤·¤Æ¤¤¤¯¤È¤¢¤é¤æ¤ë¿ô¤òɽ¤¹¤³¤È¤¬¤Ç¤­¤ë¤ï¡£Î㤨¤Ð¡¢1,10,11,100,101,110,111¡Ä¡Ä¤Ã¤Æ¤Ê¶ñ¹ç¤Ë¤Í¡£ # # ¥¬¥êÉפ¯¤ó¡§¤Ê¤ë¤Û¤É¡ª¡¡¤È¸À¤¦¤³¤È¤ÏÁ´¤Æ¤Î¿ô¤Ï1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤Î¥Ï¡¼¥ì¥à¤È²½¤¹¤ó¤Ç¤¹¤Í¡ª¡¡¤³¤³¤ÏÅ·¹ñ¤«¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§¡Ä¡Ä¡£¤È¤³¤í¤Ç¥¬¥êÉפ¯¤ó¡¢1¤Á¤ã¤ó¤È0¤Á¤ã¤ó¤Ï¤É¤Á¤é¤¬¤ª¹¥¤­¡© # # ¥¬¥êÉפ¯¤ó¡§¤¦¡Á¡Á¡Á¤ó¡Ä¡Ä¹Ã²µ¤Ä¤±Æñ¤¤¤Ç¤¹¤¬¡¢¤ä¤Ã¤Ñ¤ê·òµ¤¤Ê1¤Á¤ã¤ó¤Ç¤¹¤«¤Í¡Á¡£ # # ¥¹¥Þ»Ò¤µ¤ó¡§¤¸¤ã¤¢¤½¤Î1¤Á¤ã¤ó¡¢¥Ï¡¼¥ì¥à¤ÎÃæ¤Ë¤É¤ì¤°¤é¤¤¤¤¤ë¤Î¤«¡¢ÃΤꤿ¤¯¤Ê¤¤¡© # # ¥¬¥êÉפ¯¤ó¡§ÃΤꤿ¤¤ÃΤꤿ¤¤¡ª¡¡1¤Á¤ã¤ó¤Î¤³¤È¡¢¤â¤Ã¤ÈÃΤꤿ¤¤¡ª # # ¥¹¥Þ»Ò¤µ¤ó¡§¤¦¤ï¤¢¡Ä¡Ä¡£¤Þ¡¢¤Þ¤¢¤¤¤¤¤ï¡ª¡¡1¤Á¤ã¤ó¤Î¿ô¤ò¿ô¤¨¤Æ¡¢¤½¤ì¤¸¤ã¤¢£²£°£±£´Ç¯¤Ë¤Á¤Ê¤ó¤Ç¤³¤ó¤ÊÌäÂê¤ò²ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡ª¡¡¤½¤¦¡¢¥¹¥Þ¡¼¥È¤Ë¤Í¡ª # # # ¡ÚÌä¡Û # 1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«¡¢Åú¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # ²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ËÌäÂê¤ÎÅú¤¨¤È¡¢¤½¤ÎÅú¤¨¤òƳ½Ð¤·¤¿¥×¥í¥»¥¹¤òµ­½Ò¤·¤Æ¡¢Äó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ # ¤Þ¤¿¡¢¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ï¥½¡¼¥¹¥³¡¼¥É¤ò²òÅúÍѥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ËޤêÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£¸À¸ì¤ÏÌ䤤¤Þ¤»¤ó¤¬¡¢ideone(http://ideone.com/)¤Ç¼Â¹Ô¤Ç¤­¤ë¤â¤Î¤ò²òÅú¤È¤·¤ÆÄó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ # '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë¡¢Ï¢Â³¤·¤¿2¿ô¤Ç¤½¤Î¿ô¤ÎÃæ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤¬Æ±¤¸¤Ç¤¢¤ë¤è¤¦¤Ê¥Ú¥¢¤Ï²¿Áȸºß¤¹¤ë¤«¡¢Åú¤¨¤Æ¤¯¤À¤µ¤¤¡£'(_¥Ú¥¢¤ÎÁÈ¿ô) :- findall(_2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô,( '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô)),_2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó), ÅÙ¿ô(append(_,[_1¤Î²ó¿ô,_1¤Î²ó¿ô|_],_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô¤Ê¤é¤Ó),_¥Ú¥¢¤ÎÁÈ¿ô). '1¡Á2014¤Þ¤Ç¤Î¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô) :- between(1,2014,_¿ô), '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¿ô,_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô). '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¼Â,_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô) :- '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¼Â,0,_¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô). '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(0,_1¤Î²ó¿ô,_1¤Î²ó¿ô) :- !. '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¼Â,_1¤ÎÎßÀѲó¿ô,_1¤Î²ó¿ô) :- _¾ê; is _¼Â mod 2, _¾¦ is _¼Â // 2, '¾ê;¤¬1¤Ê¤é¤Ð²Ã»»'(_¾ê;,_¾¦,_1¤ÎÎßÀѲó¿ô,_1¤Î²ó¿ô). '¾ê;¤¬1¤Ê¤é¤Ð²Ã»»'(1,_¾¦,_1¤ÎÎßÀѲó¿ô_1,_1¤Î²ó¿ô) :- succ(_1¤ÎÎßÀѲó¿ô_1,_1¤ÎÎßÀѲó¿ô_2), '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¾¦,_1¤ÎÎßÀѲó¿ô_2,_1¤Î²ó¿ô). '¾ê;¤¬1¤Ê¤é¤Ð²Ã»»'(0,_¾¦,_1¤ÎÎßÀѲó¿ô_1,_1¤Î²ó¿ô) :- '¿ô¤ò2¿ÊË¡¤Çɽ¤·¤¿»þ¤Ë1¤ÎÅо줹¤ë²ó¿ô'(_¾¦,_1¤ÎÎßÀѲó¿ô_1,_1¤Î²ó¿ô). ÅÙ¿ô(_ÌÜɸ,_ÅÙ¿ô) :- findall(1,_ÌÜɸ,_ÅÙ¿ô¤ò¼¨¤¹1¤Î¤Ê¤é¤Ó), length(_ÅÙ¿ô¤ò¼¨¤¹1¤Î¤Ê¤é¤Ó,_ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_°ìÆü¤ÎÍËÆü,_ËöÆüÀ°¿ô,_¥«¥ì¥ó¥À¡¼) :- findall(_Æü,between(1,_ËöÆüÀ°¿ô,_Æü),_ÆüÉդʤé¤Ó), Âè°ì½µ¤ÎÀ°·Á(_°ìÆü¤ÎÍËÆü,_ÆüÉդʤé¤Ó,_Âè°ì½µ,_ÂèÆó½µ°Ê¸å), 'ÂèÆó½µ°Ê¸å(ºÇ½ª½µ¤ÎÀ°·Á)'(_ÂèÆó½µ°Ê¸å,_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å), _¥«¥ì¥ó¥À¡¼ = [_Âè°ì½µ|_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å]. Âè°ì½µ¤ÎÀ°·Á(ÆüÍË,[_1,_2,_3,_4,_5,_6,_7|R],[_1,_2,_3,_4,_5,_6,_7],R). Âè°ì½µ¤ÎÀ°·Á(·îÍË,[_1,_2,_3,_4,_5,_6|R],[_,_1,_2,_3,_4,_5,_6],R). Âè°ì½µ¤ÎÀ°·Á(²ÐÍË,[_1,_2,_3,_4,_5|R],[_,_,_1,_2,_3,_4,_5],R). Âè°ì½µ¤ÎÀ°·Á(¿åÍË,[_1,_2,_3,_4|R],[_,_,_,_1,_2,_3,_4],R). Âè°ì½µ¤ÎÀ°·Á(ÌÚÍË,[_1,_2,_3|R],[_,_,_,_,_1,_2,_3],R). Âè°ì½µ¤ÎÀ°·Á(¶âÍË,[_1,_2|R],[_,_,_,_,_,_1,_2],R). Âè°ì½µ¤ÎÀ°·Á(ÅÚÍË,[_1|R],[_,_,_,_,_,_,_1],R). 'ÂèÆó½µ°Ê¸å(ºÇ½ª½µ¤ÎÀ°·Á)'([],[]) :- !. 'ÂèÆó½µ°Ê¸å(ºÇ½ª½µ¤ÎÀ°·Á)'([_1,_2,_3,_4,_5,_6,_7|R1],[[_1,_2,_3,_4,_5,_6,_7]|R2]) :- 'ÂèÆó½µ°Ê¸å(ºÇ½ª½µ¤ÎÀ°·Á)'(R1,R2),!. 'ÂèÆó½µ°Ê¸å(ºÇ½ª½µ¤ÎÀ°·Á)'(L1,[_ºÇ½ª½µ]) :- °ì½µ´Ö¤Ï¼·Æü¤À(_ºÇ½ª½µ), append(L1,_,_ºÇ½ª½µ). °ì½µ´Ö¤Ï¼·Æü¤À([_,_,_,_,_,_,_]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- M is _Â貿¹Ô_2 - _Â貿¹Ô_1, '_Â貿¹Ô_1¤Þ¤ÇÀÚ¤ê¼è¤ë'(_¹ÔÎó,_Â貿¹Ô_1,L1,A,R1), '_Â貿¹Ô_2¤Þ¤ÇÀÚ¤ê¼è¤ë'(R1,M,A,B,R3), append(L1,[B|R3],_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). '_Â貿¹Ô_1¤Þ¤ÇÀÚ¤ê¼è¤ë'(_¹ÔÎó,_Â貿¹Ô_1,L1,A,R1) :- append(L1,[A|R1],_¹ÔÎó), length([_|L1],_Â貿¹Ô_1). '_Â貿¹Ô_2¤Þ¤ÇÀÚ¤ê¼è¤ë'(R1,M,A,B,R3) :- append(L2,[B|R2],R1), length([_|L2],M), append(L2,[A|R2],R3). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(1,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹ÔÎó,A,B,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_,_,_,[],_,_,[]). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,M,_n_2,[A|R1],A,B,[B|R2]) :- succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,M,_n_2,R1,A,B,R2),!. '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,_n_1,M,[B|R1],A,B,[A|R2]) :- succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,_n_1,M,R1,A,B,R2),!. '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,_n_1,_n_2,[U|R1],A,B,[U|R2]) :- succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,_n_1,_n_2,R1,A,B,R2). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(1,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹ÔÎó,A,B,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_,_,_,[],_,_,[]). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,_n_1,_n_2,[C|R1],A,B,[D|R2]) :- ¸ò´¹¤ÎÁªÂò(M,_n_1,_n_2,C,A,B,D), succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,_n_1,_n_2,R1,A,B,R2). ¸ò´¹¤ÎÁªÂò(M,M,_n_2,A,A,B,B) :- !. ¸ò´¹¤ÎÁªÂò(M,_n_1,M,B,A,B,A) :- !. ¸ò´¹¤ÎÁªÂò(M,_n_1,_n_2,U,A,B,U). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó), »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(_¹ÔÎó,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2), '£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó). ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2) :- nth1(_Â貿¹Ô_1,_¹ÔÎó,_¹Ô_1), nth1(_Â貿¹Ô_2,_¹ÔÎó,_¹Ô_2). '£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- length(_¹ÔÎó,_¹ÔÎó¤Î¹Ô¿ô), findall(_,between(1,_¹ÔÎó¤Î¹Ô¿ô,_),_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó), nth1(_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_1), nth1(_Â貿¹Ô_1,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_2). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([],[]). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([A|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2),!. »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([_|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- M is _Â貿¹Ô_2 - _Â貿¹Ô_1, '_Â貿¹Ô_1¤Þ¤ÇÀÚ¤ê¼è¤ë'(_¹ÔÎó,_Â貿¹Ô_1,L1,A,R1), '_Â貿¹Ô_2¤Þ¤ÇÀÚ¤ê¼è¤ë'(R1,M,A,B,R3), append(L1,[B|R3],_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). '_Â貿¹Ô_1¤Þ¤ÇÀÚ¤ê¼è¤ë'(_¹ÔÎó,_Â貿¹Ô_1,L1,A,R1) :- append(L1,[A|R1],_¹ÔÎó), length([_|L1],_Â貿¹Ô_1). '_Â貿¹Ô_2¤Þ¤ÇÀÚ¤ê¼è¤ë'(R1,M,A,B,R3) :- append(L2,[B|R2],R1), length([_|L2],M), append(L2,[A|R2],R3). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(1,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹ÔÎó,A,B,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_,_,_,[],_,_,[]). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,M,_n_2,[A|R1],A,B,[B|R2]) :- succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,M,_n_2,R1,A,B,R2),!. '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,_n_1,M,[B|R1],A,B,[A|R2]) :- succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,_n_1,M,R1,A,B,R2),!. '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,_n_1,_n_2,[U|R1],A,B,[U|R2]) :- succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,_n_1,_n_2,R1,A,B,R2). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(1,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹ÔÎó,A,B,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_,_,_,[],_,_,[]). '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M,_n_1,_n_2,[C|R1],A,B,[D|R2]) :- ¸ò´¹¤ÎÁªÂò(M,_n_1,_n_2,C,A,B,D), succ(M,M_2), '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(M_2,_n_1,_n_2,R1,A,B,R2). ¸ò´¹¤ÎÁªÂò(M,M,_n_2,A,A,B,B) :- !. ¸ò´¹¤ÎÁªÂò(M,_n_1,M,B,A,B,A) :- !. ¸ò´¹¤ÎÁªÂò(M,_n_1,_n_2,U,A,B,U). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó), »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(_¹ÔÎó,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2), '£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó). ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2) :- nth1(_Â貿¹Ô_1,_¹ÔÎó,_¹Ô_1), nth1(_Â貿¹Ô_2,_¹ÔÎó,_¹Ô_2). '£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- length(_¹ÔÎó,_¹ÔÎó¤Î¹Ô¿ô), findall(_,between(1,_¹ÔÎó¤Î¹Ô¿ô,_),_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó), nth1(_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_1), nth1(_Â貿¹Ô_1,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_2). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([],[]). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([A|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2),!. »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([_|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó), »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(_¹ÔÎó,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2), £²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó). ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2) :- nth1(_Â貿¹Ô_1,_¹ÔÎó,_¹Ô_1), nth1(_Â貿¹Ô_2,_¹ÔÎó,_¹Ô_2). £²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- length(_¹ÔÎó,_¹ÔÎó¤Î¹Ô¿ô), findall(_,between(1,_¹ÔÎó¤Î¹Ô¿ô,_),_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó), nth1(_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_1), nth1(_Â貿¹Ô_1,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_2). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([],[]). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([A|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2),!. »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([_|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '£²¤Ä¤Î¹Ô¤ò¸ò´¹¤¹¤ë'(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó) :- ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó), »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(_¹ÔÎó,_£²¤Ä¤Î¹Ô¤ò¸ò´¹¤·¤¿¹ÔÎó). ÃͤÀ¤±¸ò´¹¤·»Ä¤ê¤ÏÊÑ¿ô¤Î¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2), £²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó). ¹ÔÎó¤Î¸ò´¹¤¹¤ë¹Ô(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2) :- nth1(_Â貿¹Ô_1,_¹ÔÎó,_¹Ô_1), nth1(_Â貿¹Ô_2,_¹ÔÎó,_¹Ô_2). £²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó(_¹ÔÎó,_Â貿¹Ô_1,_Â貿¹Ô_2,_¹Ô_1,_¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó) :- length(_¹ÔÎó,_¹ÔÎó¤Î¹Ô¿ô), findall(_,between(1,_¹ÔÎó¤Î¹Ô¿ô,_),_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó), nth1(_Â貿¹Ô_2,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_1), nth1(_Â貿¹Ô_1,_£²¤Ä¤Î¹Ô¤Î¤ß¸ò´¹¤·¤ÆËä¤á¤¿ÊÑ¿ô¤Ê¤é¤Ó,_¹Ô_2). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([],[]). »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([A|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2),!. »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë([_|R1],[A|R2]) :- »Ä¤Ã¤¿ÊÑ¿ô¤ò¹ÔÎó¤ÎÃͤÇËä¤á¤ë(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ::¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part5 #644 # # ¤ªÂê¡§¹Å²ß¤¬nË礢¤ê¡¢¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£ # ¹Å²ß¤Î¼ïÎà¤Ï500±ß¶Ì¡¢100±ß¶Ì¡¢50±ß¶Ì¡¢10±ß¶Ì¡¢5±ß¶Ì¡¢1±ß¶Ì¤Ç¤¢¤ë¡£ # ÆâÌõ¤Ï³Æ¹Å²ß¤ÎËç¿ô¤òʤ٤¿¤â¤Î¤È¤¹¤ë¡£ # Ê£¿ô¤Î²ò¤¬¤¢¤ë¾ì¹ç¤Ï¤¹¤Ù¤Æ¤òµá¤á¤ë¡£ # Îã # 11Ëç¤Ç1082±ß¤Î¤È¤­ # 2 0 1 0 6 2 # # 12Ëç¤Ç777±ß¤Î¤È¤­ # 1 0 5 1 3 2 # 1 1 3 0 5 2 # # 25Ëç¤Ç4999±ß¤Î¤È¤­ # 9 2 5 4 1 4 # 9 3 3 3 3 4 # 9 4 1 2 5 4 '¹Å²ß¤¬nË礢¤ê¡¢¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£ ¹Å²ß¤Î¼ïÎà¤Ï500±ß¶Ì¡¢100±ß¶Ì¡¢50±ß¶Ì¡¢10±ß¶Ì¡¢5±ß¶Ì¡¢1±ß¶Ì¤Ç¤¢¤ë¡£ ÆâÌõ¤Ï³Æ¹Å²ß¤ÎËç¿ô¤òʤ٤¿¤â¤Î¤È¤¹¤ë¡£ Ê£¿ô¤Î²ò¤¬¤¢¤ë¾ì¹ç¤Ï¤¹¤Ù¤Æ¤òµá¤á¤ë¡£'(_n,_k,_500,_100,_50,_10,_5,_1) :- '¹Å²ß¤¬nË礢¤ê¡¢'(_n,L), '¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£'(L,_k,_500,_100,_50,_10,_5,_1). '¹Å²ß¤¬nË礢¤ê¡¢'(_n,L) :- findall(_,between(1,_n,_),L). '¹ç·×¶â³Û¤¬k±ß¤Î¤È¤­¡¢¤½¤ÎÆâÌõ¤òµá¤á¤ë¡£'(L,_k,_500,_100,_50,_10,_5,_1) :- append([L1,L2,L3,L4,L5,L6],L), ¹Å²ß¤ÎËç¿ô([L1,L2,L3,L4,L5,L6],[_500,_100,_50,_10,_5,_1]), _k is 500 * _500 + 100 * _100 + 50 * _50 + 10 * _10 + 5 * _5 + 1 * _1. ¹Å²ß¤ÎËç¿ô([],[]). ¹Å²ß¤ÎËç¿ô(L1,L2) :- ¹Å²ß¤´¤È¤ÎËç¿ô¤ò¿ô¤¨¾å¤²¤ë(L1,L2). ¹Å²ß¤´¤È¤ÎËç¿ô¤ò¿ô¤¨¾å¤²¤ë([L|R1],[_Ëç¿ô|R2]) :- length(L,_Ëç¿ô), ¹Å²ß¤ÎËç¿ô(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # append/1 ¤Ï append/4-n ¤òabolish¤·¤¿¸å¤ËÄêµÁ¤¹¤ë¡£ # ¤¿¤À¤·¡¢_n¤Ïappend/1¤Î°ú¿ô¤ÎÍ×ÁÇ¿ô¡£ # # ?- append([[1,2],[3,4],[a],[b,c,d],X]). # X = [1,2,3,4,a,b,c,d]. # # ?- append([X,[3,4],[a],Y],[1,2,3,4,a,b,c,d]]). # X = [1,2], # Y = [b,c,d]. # append(LL) :- length(LL,_n), abolish_append_n(_n), append_n_¤ÎÄêµÁ(_n), P =.. [append|LL], call(P). abolish_append_n(_n) :- between(4,_n,M), abolish(append/M), _n = M. append_n_¤ÎÄêµÁ(3) :- !. append_n_¤ÎÄêµÁ(_n) :- succ(_n_1,_n), append_n_¤ÎÄêµÁ(_n_1), append_n_¤ÎÂè°ìÀáÄêµÁ(_n_1), append_n_¤ÎÂèÆóÀáÄêµÁ(_n). append_n_¤ÎÂè°ìÀáÄêµÁ(_n_1) :- findall(_,between(1,_n_1,_),L1), P_1 =.. [append,[]|L1], P_1_1 =.. [append|L1], assertz((P_1 :- P_1_1)). append_n_¤ÎÂèÆóÀáÄêµÁ(_n) :- findall(_,between(1,_n,_),_ËÜÂΰú¿ô¤Ê¤é¤Ó), append_n_¤ÎÂèÆóÀáÆ¬Éô°ú¿ô(_ËÜÂΰú¿ô¤Ê¤é¤Ó,_ƬÉô°ú¿ô¤Ê¤é¤Ó), _ƬÉô =.. [append|_ƬÉô°ú¿ô¤Ê¤é¤Ó], _ËÜÂÎ =.. [append|_ËÜÂΰú¿ô¤Ê¤é¤Ó], assertz((_ƬÉô :- _ËÜÂÎ)). append_n_¤ÎÂèÆóÀáÆ¬Éô°ú¿ô([V|R1],[[U|V]|R2]) :- append_n_¤ÎÂèÆóÀáÆ¬Éô°ú¿ô(R1,U,R2). append_n_¤ÎÂèÆóÀáÆ¬Éô°ú¿ô([V],U,[[U|V]]) :- !. append_n_¤ÎÂèÆóÀáÆ¬Éô°ú¿ô([V|R1],U,[V|R2]) :- append_n_¤ÎÂèÆóÀáÆ¬Éô°ú¿ô(R1,U,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ºÇÂç¤ÎÍø±× # FX¼è°ú¤Ç¤Ï¡¢°Û¤Ê¤ë¹ñ¤ÎÄ̲ߤò¸ò´¹¤¹¤ë¤³¤È¤Ç°ÙÂØº¹¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢£±¥É¥ë100±ß¤Î»þ¤Ë 1000¥É¥ëÇ㤤¡¢²Á³ÊÊÑÆ°¤Ë¤è¤ê 1¥É¥ë 108±ß¤Ë¤Ê¤Ã¤¿»þ¤ËÇä¤ë¤È¡¢(108±ß ¡Ý 100±ß) ¡ß 1000¥É¥ë = 8000±ß¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ # # ¤¢¤ëÄ̲ߤˤĤ¤¤Æ¡¢»þ¹ï t ¤Ë¤ª¤±¤ë²Á³Ê R[t] (t=1,2,,,N)¤¬ÆþÎϤȤ·¤ÆÍ¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢²Á³Ê¤Îº¹ R[j]¡ÝR[i] (¤¿¤À¤·¡¢j>i ¤È¤¹¤ë) ¤ÎºÇÂçÃͤòµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏ # ºÇ½é¤Î¹Ô¤ËÀ°¿ô N ¤¬Í¿¤¨¤é¤ì¤ë¡£ # # ³¤¯N¹Ô¤ËÀ°¿ô R[t] (t=1,2,,,N) ¤¬½çÈÖ¤ËÍ¿¤¨¤é¤ì¤ë¡£ # # ½ÐÎÏ # ºÇÂçÃͤò£±¹Ô¤Ë½ÐÎϤ»¤è¡£ # # À©Ìó # 2?N?200000 # 1?R[t]?109 # ÆþÎÏÎã 1 # 6 # 2 # 3 # 1 # 3 # 4 # 3 # ÆþÎÏÎã 1 ¤ËÂФ¹¤ë½ÐÎÏ # 3 # ÆþÎÏÎã 2 # 4 # 4 # 1 # 2 # 1 # ÆþÎÏÎã 2 ¤ËÂФ¹¤ë½ÐÎÏ # 1 'FX¼è°ú¤Ç¤Ï¡¢°Û¤Ê¤ë¹ñ¤ÎÄ̲ߤò¸ò´¹¤¹¤ë¤³¤È¤Ç°ÙÂØº¹¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢£±¥É¥ë100±ß¤Î»þ¤Ë 1000¥É¥ëÇ㤤¡¢²Á³ÊÊÑÆ°¤Ë¤è¤ê 1¥É¥ë 108±ß¤Ë¤Ê¤Ã¤¿»þ¤ËÇä¤ë¤È¡¢ (108±ß ¡Ý 100±ß) ¡ß 1000¥É¥ë = 8000±ß¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤¢¤ëÄ̲ߤˤĤ¤¤Æ¡¢»þ¹ï t ¤Ë¤ª¤±¤ë²Á³Ê R[t] (t=1,2,,,N)¤¬ÆþÎϤȤ·¤ÆÍ¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢ ²Á³Ê¤Îº¹ R[j]¡ÝR[i] (¤¿¤À¤·¡¢j>i ¤È¤¹¤ë) ¤ÎºÇÂçÃͤòµá¤á¤Æ¤¯¤À¤µ¤¤¡£' :- ¤¢¤ëÄ̲ߤλþ·ÏÎó°ÙÂØ²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_¤¢¤ëÄ̲ߤλþ·ÏÎó°ÙÂØ²Á³Ê¤Ê¤é¤Ó), ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×(_¤¢¤ëÄ̲ߤλþ·ÏÎó°ÙÂØ²Á³Ê¤Ê¤é¤Ó,_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×), ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×¤òɽ¼¨¤¹¤ë(_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×). ¤¢¤ëÄ̲ߤλþ·ÏÎó°ÙÂØ²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_¤¢¤ëÄ̲ߤλþ·ÏÎó²Á³Ê¤Ê¤é¤Ó) :- »þ·ÏÎó¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô), findall(_²Á³Ê,( ²Á³Ê¤òÆÀ¤ë(_»þ·ÏÎó¿ô,_²Á³Ê)), _¤¢¤ëÄ̲ߤλþ·ÏÎó²Á³Ê¤Ê¤é¤Ó). »þ·ÏÎó¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô) :- À°¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô). ²Á³Ê¤òÆÀ¤ë(_»þ·ÏÎó¿ô,_²Á³Ê) :- between(1,_»þ·ÏÎó¿ô,_t), À°¿ô¤òÆÀ¤ë(_²Á³Ê). ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×(_¤¢¤ëÄ̲ߤλþ·ÏÎó²Á³Ê¤Ê¤é¤Ó,_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×) :- findmax(_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×,( »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×(_¤¢¤ëÄ̲ߤλþ·ÏÎó²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×)), _ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×). »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×(_¤¢¤ëÄ̲ߤλþ·ÏÎó²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×) :- append(_,[_»þ¹ït¤Î²Á³Ê|_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó],_¤¢¤ëÄ̲ߤλþ·ÏÎó²Á³Ê¤Ê¤é¤Ó), »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×). »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×) :- findmax(_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹,( »þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹)), _»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂçÍø±×). »þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹) :- member(_¤½¤Î¸å¤Î»þ·ÏÎó¤Ç¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó), _»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹ is _¤½¤Î¸å¤Î»þ·ÏÎó¤Ç¤Î²Á³Ê - _»þ¹ït¤Î²Á³Ê. ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×¤òɽ¼¨¤¹¤ë(_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×) :- writef('%t\n',[_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×]). findmax(A,B,C) :- findall(A,B,L), max_list(L,C). % % À°¿ô¤òÆþÎϤ¹¤ë¾ì¹ç¤Î°ìÈÌ·¿ % À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ¤Ê¤é¤Ó,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô¤Ê¤é¤Ó) :- list(_ºÅ¥ʸ¤Ê¤é¤Ó), findall(_À°¿ô,( member(_ºÅ¥ʸ,_ºÅ¥ʸ¤Ê¤é¤Ó), À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ), get_line(Instream,Line), '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,_À°¿ô¤ò´Þ¤à¾ò·ï,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_,_) :- !,fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- atom_to_term(Line,_À°¿ô,_), integer(_À°¿ô), '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- \+((atom_to_term(Line,_À°¿ô,_),integer(_À°¿ô))), writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¤Ï¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_) :- !,fail. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- call(_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤Ï %t ¤¬µ¶¤È¤Ê¤ê¤Þ¤¹¡£\n',[_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï]), fail. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,true,_À°¿ô). À°¿ô¤òÆÀ¤ë(_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,'',true,_À°¿ô). ºÅ¥ʸ¤Î½ÐÎÏ('') :- !. ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ) :- writef('%t¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : ',[_ºÅ¥ʸ]). n¸Ä¤ÎÀ°¿ô¤òÆÀ¤ë(_n,_ºÅ¥ʸ,_À°¿ô¤Ê¤é¤Ó) :- length(_À°¿ô¤Ê¤é¤Ó,_n), findall(_À°¿ô,( Éôʬ¤Ê¤é¤Ó(_À°¿ô¤Ê¤é¤Ó,_,_,_²¿ÈÖÌÜ,_,_,_,L3), writef('[%t/%t]ÈÖÌܤÎ',[_²¿ÈÖÌÜ,_n]), À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó). °ì¹ÔÆÉ¤ß¹þ¤à(_¹Ô) :- get_line(_¹Ô). get_line(Stream,X) :- get_char(Stream,C), get_line_1(Stream,C,Chars), atom_chars(X,Chars). get_line_1(Stream,'\n',[]) :- !. get_line_1(Stream,end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(Stream,C,[C|R]) :- get_char(Stream,C2), get_line_1(Stream,C2,R). get_line(X) :- get_char(C), get_line_1(C,Chars), atom_chars(X,Chars). get_line_1('\n',[]) :- !. get_line_1(end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(C,[C|R]) :- get_char(C2), get_line_1(C2,R). list([_|_]) :- !. list([]. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ºÇÂç¤ÎÍø±× # FX¼è°ú¤Ç¤Ï¡¢°Û¤Ê¤ë¹ñ¤ÎÄ̲ߤò¸ò´¹¤¹¤ë¤³¤È¤Ç°ÙÂØº¹¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢£±¥É¥ë100±ß¤Î»þ¤Ë 1000¥É¥ëÇ㤤¡¢²Á³ÊÊÑÆ°¤Ë¤è¤ê 1¥É¥ë 108±ß¤Ë¤Ê¤Ã¤¿»þ¤ËÇä¤ë¤È¡¢(108±ß ¡Ý 100±ß) ¡ß 1000¥É¥ë = 8000±ß¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ # # ¤¢¤ëÄ̲ߤˤĤ¤¤Æ¡¢»þ¹ï t ¤Ë¤ª¤±¤ë²Á³Ê R[t] (t=1,2,,,N)¤¬ÆþÎϤȤ·¤ÆÍ¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢²Á³Ê¤Îº¹ R[j]¡ÝR[i] (¤¿¤À¤·¡¢j>i ¤È¤¹¤ë) ¤ÎºÇÂçÃͤòµá¤á¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏ # ºÇ½é¤Î¹Ô¤ËÀ°¿ô N ¤¬Í¿¤¨¤é¤ì¤ë¡£ # # ³¤¯N¹Ô¤ËÀ°¿ô R[t] (t=1,2,,,N) ¤¬½çÈÖ¤ËÍ¿¤¨¤é¤ì¤ë¡£ # # ½ÐÎÏ # ºÇÂçÃͤò£±¹Ô¤Ë½ÐÎϤ»¤è¡£ # # À©Ìó # 2?N?200000 # 1?R[t]?109 # ÆþÎÏÎã 1 # 6 # 2 # 3 # 1 # 3 # 4 # 3 # ÆþÎÏÎã 1 ¤ËÂФ¹¤ë½ÐÎÏ # 3 # ÆþÎÏÎã 2 # 4 # 4 # 1 # 2 # 1 # ÆþÎÏÎã 2 ¤ËÂФ¹¤ë½ÐÎÏ # 1 'FX¼è°ú¤Ç¤Ï¡¢°Û¤Ê¤ë¹ñ¤ÎÄ̲ߤò¸ò´¹¤¹¤ë¤³¤È¤Ç°ÙÂØº¹¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢£±¥É¥ë100±ß¤Î»þ¤Ë 1000¥É¥ëÇ㤤¡¢²Á³ÊÊÑÆ°¤Ë¤è¤ê 1¥É¥ë 108±ß¤Ë¤Ê¤Ã¤¿»þ¤ËÇä¤ë¤È¡¢ (108±ß ¡Ý 100±ß) ¡ß 1000¥É¥ë = 8000±ß¤ÎÍø±×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤¢¤ëÄ̲ߤˤĤ¤¤Æ¡¢»þ¹ï t ¤Ë¤ª¤±¤ë²Á³Ê R[t] (t=1,2,,,N)¤¬ÆþÎϤȤ·¤ÆÍ¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢ ²Á³Ê¤Îº¹ R[j]¡ÝR[i] (¤¿¤À¤·¡¢j>i ¤È¤¹¤ë) ¤ÎºÇÂçÃͤòµá¤á¤Æ¤¯¤À¤µ¤¤¡£' :- »þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó), ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó,_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×), ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×¤òɽ¼¨¤¹¤ë(_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×). »þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó¤òÆÀ¤ë(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó) :- »þ·ÏÎó¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô), findall(_²Á³Ê,( between(1,_»þ·ÏÎó¿ô,_t), ²Á³Ê¤òÆÀ¤ë(_²Á³Ê)), _»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó). ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×(_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó,_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×) :- findmax(_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹,( append(_,[_»þ¹ït¤Î²Á³Ê|_¤½¤Î¸å²Á³Ê¤Ê¤é¤Ó],_»þ¹ït¤Ë±÷¤±¤ë²Á³Ê¤Ê¤é¤Ó), »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹)), _ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×). »þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹(_»þ¹ït¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó,_»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹) :- findmax(_»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹,( member(_¤½¤Î¸å¤Î»þ·ÏÎó¤Ç¤Î²Á³Ê,_¤½¤Î¸å¤Î²Á³Ê¤Ê¤é¤Ó), _»þ¹ït¤Î²Á³Ê¤È¤Î²Á³Êº¹ is _¤½¤Î¸å¤Î»þ·ÏÎó¤Ç¤Î²Á³Ê - _»þ¹ït¤Î²Á³Ê), _»þ¹ït¤ÎÅê»ñ¤ËÂФ¹¤ëºÇÂç²Á³Êº¹). »þ·ÏÎó¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô) :- À°¿ô¤òÆÀ¤ë(_»þ·ÏÎó¿ô). ²Á³Ê¤òÆÀ¤ë(_²Á³Ê) :- À°¿ô¤òÆÀ¤ë(_²Á³Ê). ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×¤òɽ¼¨¤¹¤ë(_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×) :- writef('%t\n',[_ºÇÂç¤Î°ÙÂØº¹¤ÎÍø±×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_ǯ,_·î) :- °ìÆü¤ÎÍËÆü(_ǯ,_·î,_°ìÆü¤ÎÍËÆü), ·îËöÆü¤ÎÍËÆü(_ǯ,_·î,_·îËöÆü,_), ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_°ìÆü¤ÎÍËÆü,_·îËöÆü,_¥«¥ì¥ó¥À¡¼), ¥«¥ì¥ó¥À¡¼É½¼¨(_¥«¥ì¥ó¥À¡¼). ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_°ìÆü¤ÎÍËÆü,_·îËöÆü,_¥«¥ì¥ó¥À¡¼) :- findall(_Æü,between(1,_·îËöÆü,_Æü),_ÆüÉդʤé¤Ó), Âè°ì½µ¤ÎÀ°·Á(_°ìÆü¤ÎÍËÆü,_ÆüÉդʤé¤Ó,_Âè°ì½µ,_ÂèÆó½µ°Ê¸å), ºÇ½ª½µ¤ÎÀ°·Á(_ÂèÆó½µ°Ê¸å,_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å), _¥«¥ì¥ó¥À¡¼ = [_Âè°ì½µ|_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å]. Âè°ì½µ¤ÎÀ°·Á(ÆüÍË,[_1,_2,_3,_4,_5,_6,_7|R],[_1,_2,_3,_4,_5,_6,_7],R). Âè°ì½µ¤ÎÀ°·Á(·îÍË,[_1,_2,_3,_4,_5,_6|R],[_,_1,_2,_3,_4,_5,_6],R). Âè°ì½µ¤ÎÀ°·Á(²ÐÍË,[_1,_2,_3,_4,_5|R],[_,_,_1,_2,_3,_4,_5],R). Âè°ì½µ¤ÎÀ°·Á(¿åÍË,[_1,_2,_3,_4|R],[_,_,_,_1,_2,_3,_4],R). Âè°ì½µ¤ÎÀ°·Á(ÌÚÍË,[_1,_2,_3|R],[_,_,_,_,_1,_2,_3],R). Âè°ì½µ¤ÎÀ°·Á(¶âÍË,[_1,_2|R],[_,_,_,_,_,_1,_2],R). Âè°ì½µ¤ÎÀ°·Á(ÅÚÍË,[_1|R],[_,_,_,_,_,_,_1],R). ºÇ½ª½µ¤ÎÀ°·Á([_1,_2,_3,_4,_5,_6,_7|R1],[[_1,_2,_3,_4,_5,_6,_7]|R2]) :- ºÇ½ª½µ¤ÎÀ°·Á(R1,R2),!. ºÇ½ª½µ¤ÎÀ°·Á([],[]) :- !. ºÇ½ª½µ¤ÎÀ°·Á(L1,[L2]) :- length(L2,7), append(L1,_,L2). ¥«¥ì¥ó¥À¡¼É½¼¨([]). ¥«¥ì¥ó¥À¡¼É½¼¨([_½µ|R]) :- ¥«¥ì¥ó¥À¡¼½µÉ½¼¨(_½µ), ¥«¥ì¥ó¥À¡¼É½¼¨(R). ¥«¥ì¥ó¥À¡¼½µÉ½¼¨([]) :- write('\n'). ¥«¥ì¥ó¥À¡¼½µÉ½¼¨([A|R]) :- ɽ¼¨¹à(A,_ɽ¼¨¹à), writef('%3R',[_ɽ¼¨¹à]), ¥«¥ì¥ó¥À¡¼½µÉ½¼¨(R). ɽ¼¨¹à(' ',' ') :- !. ɽ¼¨¹à(N,N). °ìÆü¤ÎÍËÆü(1970,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(1970,2,ÆüÍË). °ìÆü¤ÎÍËÆü(1970,3,ÆüÍË). °ìÆü¤ÎÍËÆü(1970,4,¿åÍË). °ìÆü¤ÎÍËÆü(1970,5,¶âÍË). °ìÆü¤ÎÍËÆü(1970,6,·îÍË). °ìÆü¤ÎÍËÆü(1970,7,¿åÍË). °ìÆü¤ÎÍËÆü(1970,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(1970,9,²ÐÍË). °ìÆü¤ÎÍËÆü(1970,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(1970,11,ÆüÍË). °ìÆü¤ÎÍËÆü(1970,12,²ÐÍË). °ìÆü¤ÎÍËÆü(1971,1,¶âÍË). °ìÆü¤ÎÍËÆü(1971,2,·îÍË). °ìÆü¤ÎÍËÆü(1971,3,·îÍË). °ìÆü¤ÎÍËÆü(1971,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(1971,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(1971,6,²ÐÍË). °ìÆü¤ÎÍËÆü(1971,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(1971,8,ÆüÍË). °ìÆü¤ÎÍËÆü(1971,9,¿åÍË). °ìÆü¤ÎÍËÆü(1971,10,¶âÍË). °ìÆü¤ÎÍËÆü(1971,11,·îÍË). °ìÆü¤ÎÍËÆü(1971,12,¿åÍË). °ìÆü¤ÎÍËÆü(1972,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(1972,2,²ÐÍË). °ìÆü¤ÎÍËÆü(1972,3,¿åÍË). °ìÆü¤ÎÍËÆü(1972,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(1972,5,·îÍË). °ìÆü¤ÎÍËÆü(1972,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(1972,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(1972,8,²ÐÍË). °ìÆü¤ÎÍËÆü(1972,9,¶âÍË). °ìÆü¤ÎÍËÆü(1972,10,ÆüÍË). °ìÆü¤ÎÍËÆü(1972,11,¿åÍË). °ìÆü¤ÎÍËÆü(1972,12,¶âÍË). °ìÆü¤ÎÍËÆü(1973,1,·îÍË). °ìÆü¤ÎÍËÆü(1973,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(1973,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(1973,4,ÆüÍË). °ìÆü¤ÎÍËÆü(1973,5,²ÐÍË). °ìÆü¤ÎÍËÆü(1973,6,¶âÍË). °ìÆü¤ÎÍËÆü(1973,7,ÆüÍË). °ìÆü¤ÎÍËÆü(1973,8,¿åÍË). °ìÆü¤ÎÍËÆü(1973,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(1973,10,·îÍË). °ìÆü¤ÎÍËÆü(1973,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(1973,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(1974,1,²ÐÍË). °ìÆü¤ÎÍËÆü(1974,2,¶âÍË). °ìÆü¤ÎÍËÆü(1974,3,¶âÍË). °ìÆü¤ÎÍËÆü(1974,4,·îÍË). °ìÆü¤ÎÍËÆü(1974,5,¿åÍË). °ìÆü¤ÎÍËÆü(1974,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(1974,7,·îÍË). °ìÆü¤ÎÍËÆü(1974,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(1974,9,ÆüÍË). °ìÆü¤ÎÍËÆü(1974,10,²ÐÍË). °ìÆü¤ÎÍËÆü(1974,11,¶âÍË). °ìÆü¤ÎÍËÆü(1974,12,ÆüÍË). °ìÆü¤ÎÍËÆü(1975,1,¿åÍË). °ìÆü¤ÎÍËÆü(1975,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(1975,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(1975,4,²ÐÍË). °ìÆü¤ÎÍËÆü(1975,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(1975,6,ÆüÍË). °ìÆü¤ÎÍËÆü(1975,7,²ÐÍË). °ìÆü¤ÎÍËÆü(1975,8,¶âÍË). °ìÆü¤ÎÍËÆü(1975,9,·îÍË). °ìÆü¤ÎÍËÆü(1975,10,¿åÍË). °ìÆü¤ÎÍËÆü(1975,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(1975,12,·îÍË). °ìÆü¤ÎÍËÆü(1976,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(1976,2,ÆüÍË). °ìÆü¤ÎÍËÆü(1976,3,·îÍË). °ìÆü¤ÎÍËÆü(1976,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(1976,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(1976,6,²ÐÍË). °ìÆü¤ÎÍËÆü(1976,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(1976,8,ÆüÍË). °ìÆü¤ÎÍËÆü(1976,9,¿åÍË). °ìÆü¤ÎÍËÆü(1976,10,¶âÍË). °ìÆü¤ÎÍËÆü(1976,11,·îÍË). °ìÆü¤ÎÍËÆü(1976,12,¿åÍË). °ìÆü¤ÎÍËÆü(1977,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(1977,2,²ÐÍË). °ìÆü¤ÎÍËÆü(1977,3,²ÐÍË). °ìÆü¤ÎÍËÆü(1977,4,¶âÍË). °ìÆü¤ÎÍËÆü(1977,5,ÆüÍË). °ìÆü¤ÎÍËÆü(1977,6,¿åÍË). °ìÆü¤ÎÍËÆü(1977,7,¶âÍË). °ìÆü¤ÎÍËÆü(1977,8,·îÍË). °ìÆü¤ÎÍËÆü(1977,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(1977,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(1977,11,²ÐÍË). °ìÆü¤ÎÍËÆü(1977,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(1978,1,ÆüÍË). °ìÆü¤ÎÍËÆü(1978,2,¿åÍË). °ìÆü¤ÎÍËÆü(1978,3,¿åÍË). °ìÆü¤ÎÍËÆü(1978,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(1978,5,·îÍË). °ìÆü¤ÎÍËÆü(1978,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(1978,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(1978,8,²ÐÍË). °ìÆü¤ÎÍËÆü(1978,9,¶âÍË). °ìÆü¤ÎÍËÆü(1978,10,ÆüÍË). °ìÆü¤ÎÍËÆü(1978,11,¿åÍË). °ìÆü¤ÎÍËÆü(1978,12,¶âÍË). °ìÆü¤ÎÍËÆü(1979,1,·îÍË). °ìÆü¤ÎÍËÆü(1979,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(1979,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(1979,4,ÆüÍË). °ìÆü¤ÎÍËÆü(1979,5,²ÐÍË). °ìÆü¤ÎÍËÆü(1979,6,¶âÍË). °ìÆü¤ÎÍËÆü(1979,7,ÆüÍË). °ìÆü¤ÎÍËÆü(1979,8,¿åÍË). °ìÆü¤ÎÍËÆü(1979,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(1979,10,·îÍË). °ìÆü¤ÎÍËÆü(1979,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(1979,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(1980,1,²ÐÍË). °ìÆü¤ÎÍËÆü(1980,2,¶âÍË). °ìÆü¤ÎÍËÆü(1980,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(1980,4,²ÐÍË). °ìÆü¤ÎÍËÆü(1980,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(1980,6,ÆüÍË). °ìÆü¤ÎÍËÆü(1980,7,²ÐÍË). °ìÆü¤ÎÍËÆü(1980,8,¶âÍË). °ìÆü¤ÎÍËÆü(1980,9,·îÍË). °ìÆü¤ÎÍËÆü(1980,10,¿åÍË). °ìÆü¤ÎÍËÆü(1980,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(1980,12,·îÍË). °ìÆü¤ÎÍËÆü(1981,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(1981,2,ÆüÍË). °ìÆü¤ÎÍËÆü(1981,3,ÆüÍË). °ìÆü¤ÎÍËÆü(1981,4,¿åÍË). °ìÆü¤ÎÍËÆü(1981,5,¶âÍË). °ìÆü¤ÎÍËÆü(1981,6,·îÍË). °ìÆü¤ÎÍËÆü(1981,7,¿åÍË). °ìÆü¤ÎÍËÆü(1981,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(1981,9,²ÐÍË). °ìÆü¤ÎÍËÆü(1981,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(1981,11,ÆüÍË). °ìÆü¤ÎÍËÆü(1981,12,²ÐÍË). °ìÆü¤ÎÍËÆü(1982,1,¶âÍË). °ìÆü¤ÎÍËÆü(1982,2,·îÍË). °ìÆü¤ÎÍËÆü(1982,3,·îÍË). °ìÆü¤ÎÍËÆü(1982,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(1982,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(1982,6,²ÐÍË). °ìÆü¤ÎÍËÆü(1982,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(1982,8,ÆüÍË). °ìÆü¤ÎÍËÆü(1982,9,¿åÍË). °ìÆü¤ÎÍËÆü(1982,10,¶âÍË). °ìÆü¤ÎÍËÆü(1982,11,·îÍË). °ìÆü¤ÎÍËÆü(1982,12,¿åÍË). °ìÆü¤ÎÍËÆü(1983,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(1983,2,²ÐÍË). °ìÆü¤ÎÍËÆü(1983,3,²ÐÍË). °ìÆü¤ÎÍËÆü(1983,4,¶âÍË). °ìÆü¤ÎÍËÆü(1983,5,ÆüÍË). °ìÆü¤ÎÍËÆü(1983,6,¿åÍË). °ìÆü¤ÎÍËÆü(1983,7,¶âÍË). °ìÆü¤ÎÍËÆü(1983,8,·îÍË). °ìÆü¤ÎÍËÆü(1983,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(1983,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(1983,11,²ÐÍË). °ìÆü¤ÎÍËÆü(1983,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(1984,1,ÆüÍË). °ìÆü¤ÎÍËÆü(1984,2,¿åÍË). °ìÆü¤ÎÍËÆü(1984,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(1984,4,ÆüÍË). °ìÆü¤ÎÍËÆü(1984,5,²ÐÍË). °ìÆü¤ÎÍËÆü(1984,6,¶âÍË). °ìÆü¤ÎÍËÆü(1984,7,ÆüÍË). °ìÆü¤ÎÍËÆü(1984,8,¿åÍË). °ìÆü¤ÎÍËÆü(1984,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(1984,10,·îÍË). °ìÆü¤ÎÍËÆü(1984,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(1984,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(1985,1,²ÐÍË). °ìÆü¤ÎÍËÆü(1985,2,¶âÍË). °ìÆü¤ÎÍËÆü(1985,3,¶âÍË). °ìÆü¤ÎÍËÆü(1985,4,·îÍË). °ìÆü¤ÎÍËÆü(1985,5,¿åÍË). °ìÆü¤ÎÍËÆü(1985,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(1985,7,·îÍË). °ìÆü¤ÎÍËÆü(1985,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(1985,9,ÆüÍË). °ìÆü¤ÎÍËÆü(1985,10,²ÐÍË). °ìÆü¤ÎÍËÆü(1985,11,¶âÍË). °ìÆü¤ÎÍËÆü(1985,12,ÆüÍË). °ìÆü¤ÎÍËÆü(1986,1,¿åÍË). °ìÆü¤ÎÍËÆü(1986,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(1986,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(1986,4,²ÐÍË). °ìÆü¤ÎÍËÆü(1986,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(1986,6,ÆüÍË). °ìÆü¤ÎÍËÆü(1986,7,²ÐÍË). °ìÆü¤ÎÍËÆü(1986,8,¶âÍË). °ìÆü¤ÎÍËÆü(1986,9,·îÍË). °ìÆü¤ÎÍËÆü(1986,10,¿åÍË). °ìÆü¤ÎÍËÆü(1986,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(1986,12,·îÍË). °ìÆü¤ÎÍËÆü(1987,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(1987,2,ÆüÍË). °ìÆü¤ÎÍËÆü(1987,3,ÆüÍË). °ìÆü¤ÎÍËÆü(1987,4,¿åÍË). °ìÆü¤ÎÍËÆü(1987,5,¶âÍË). °ìÆü¤ÎÍËÆü(1987,6,·îÍË). °ìÆü¤ÎÍËÆü(1987,7,¿åÍË). °ìÆü¤ÎÍËÆü(1987,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(1987,9,²ÐÍË). °ìÆü¤ÎÍËÆü(1987,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(1987,11,ÆüÍË). °ìÆü¤ÎÍËÆü(1987,12,²ÐÍË). °ìÆü¤ÎÍËÆü(1988,1,¶âÍË). °ìÆü¤ÎÍËÆü(1988,2,·îÍË). °ìÆü¤ÎÍËÆü(1988,3,²ÐÍË). °ìÆü¤ÎÍËÆü(1988,4,¶âÍË). °ìÆü¤ÎÍËÆü(1988,5,ÆüÍË). °ìÆü¤ÎÍËÆü(1988,6,¿åÍË). °ìÆü¤ÎÍËÆü(1988,7,¶âÍË). °ìÆü¤ÎÍËÆü(1988,8,·îÍË). °ìÆü¤ÎÍËÆü(1988,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(1988,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(1988,11,²ÐÍË). °ìÆü¤ÎÍËÆü(1988,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(1989,1,ÆüÍË). °ìÆü¤ÎÍËÆü(1989,2,¿åÍË). °ìÆü¤ÎÍËÆü(1989,3,¿åÍË). °ìÆü¤ÎÍËÆü(1989,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(1989,5,·îÍË). °ìÆü¤ÎÍËÆü(1989,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(1989,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(1989,8,²ÐÍË). °ìÆü¤ÎÍËÆü(1989,9,¶âÍË). °ìÆü¤ÎÍËÆü(1989,10,ÆüÍË). °ìÆü¤ÎÍËÆü(1989,11,¿åÍË). °ìÆü¤ÎÍËÆü(1989,12,¶âÍË). °ìÆü¤ÎÍËÆü(1990,1,·îÍË). °ìÆü¤ÎÍËÆü(1990,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(1990,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(1990,4,ÆüÍË). °ìÆü¤ÎÍËÆü(1990,5,²ÐÍË). °ìÆü¤ÎÍËÆü(1990,6,¶âÍË). °ìÆü¤ÎÍËÆü(1990,7,ÆüÍË). °ìÆü¤ÎÍËÆü(1990,8,¿åÍË). °ìÆü¤ÎÍËÆü(1990,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(1990,10,·îÍË). °ìÆü¤ÎÍËÆü(1990,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(1990,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(1991,1,²ÐÍË). °ìÆü¤ÎÍËÆü(1991,2,¶âÍË). °ìÆü¤ÎÍËÆü(1991,3,¶âÍË). °ìÆü¤ÎÍËÆü(1991,4,·îÍË). °ìÆü¤ÎÍËÆü(1991,5,¿åÍË). °ìÆü¤ÎÍËÆü(1991,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(1991,7,·îÍË). °ìÆü¤ÎÍËÆü(1991,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(1991,9,ÆüÍË). °ìÆü¤ÎÍËÆü(1991,10,²ÐÍË). °ìÆü¤ÎÍËÆü(1991,11,¶âÍË). °ìÆü¤ÎÍËÆü(1991,12,ÆüÍË). °ìÆü¤ÎÍËÆü(1992,1,¿åÍË). °ìÆü¤ÎÍËÆü(1992,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(1992,3,ÆüÍË). °ìÆü¤ÎÍËÆü(1992,4,¿åÍË). °ìÆü¤ÎÍËÆü(1992,5,¶âÍË). °ìÆü¤ÎÍËÆü(1992,6,·îÍË). °ìÆü¤ÎÍËÆü(1992,7,¿åÍË). °ìÆü¤ÎÍËÆü(1992,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(1992,9,²ÐÍË). °ìÆü¤ÎÍËÆü(1992,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(1992,11,ÆüÍË). °ìÆü¤ÎÍËÆü(1992,12,²ÐÍË). °ìÆü¤ÎÍËÆü(1993,1,¶âÍË). °ìÆü¤ÎÍËÆü(1993,2,·îÍË). °ìÆü¤ÎÍËÆü(1993,3,·îÍË). °ìÆü¤ÎÍËÆü(1993,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(1993,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(1993,6,²ÐÍË). °ìÆü¤ÎÍËÆü(1993,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(1993,8,ÆüÍË). °ìÆü¤ÎÍËÆü(1993,9,¿åÍË). °ìÆü¤ÎÍËÆü(1993,10,¶âÍË). °ìÆü¤ÎÍËÆü(1993,11,·îÍË). °ìÆü¤ÎÍËÆü(1993,12,¿åÍË). °ìÆü¤ÎÍËÆü(1994,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(1994,2,²ÐÍË). °ìÆü¤ÎÍËÆü(1994,3,²ÐÍË). °ìÆü¤ÎÍËÆü(1994,4,¶âÍË). °ìÆü¤ÎÍËÆü(1994,5,ÆüÍË). °ìÆü¤ÎÍËÆü(1994,6,¿åÍË). °ìÆü¤ÎÍËÆü(1994,7,¶âÍË). °ìÆü¤ÎÍËÆü(1994,8,·îÍË). °ìÆü¤ÎÍËÆü(1994,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(1994,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(1994,11,²ÐÍË). °ìÆü¤ÎÍËÆü(1994,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(1995,1,ÆüÍË). °ìÆü¤ÎÍËÆü(1995,2,¿åÍË). °ìÆü¤ÎÍËÆü(1995,3,¿åÍË). °ìÆü¤ÎÍËÆü(1995,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(1995,5,·îÍË). °ìÆü¤ÎÍËÆü(1995,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(1995,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(1995,8,²ÐÍË). °ìÆü¤ÎÍËÆü(1995,9,¶âÍË). °ìÆü¤ÎÍËÆü(1995,10,ÆüÍË). °ìÆü¤ÎÍËÆü(1995,11,¿åÍË). °ìÆü¤ÎÍËÆü(1995,12,¶âÍË). °ìÆü¤ÎÍËÆü(1996,1,·îÍË). °ìÆü¤ÎÍËÆü(1996,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(1996,3,¶âÍË). °ìÆü¤ÎÍËÆü(1996,4,·îÍË). °ìÆü¤ÎÍËÆü(1996,5,¿åÍË). °ìÆü¤ÎÍËÆü(1996,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(1996,7,·îÍË). °ìÆü¤ÎÍËÆü(1996,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(1996,9,ÆüÍË). °ìÆü¤ÎÍËÆü(1996,10,²ÐÍË). °ìÆü¤ÎÍËÆü(1996,11,¶âÍË). °ìÆü¤ÎÍËÆü(1996,12,ÆüÍË). °ìÆü¤ÎÍËÆü(1997,1,¿åÍË). °ìÆü¤ÎÍËÆü(1997,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(1997,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(1997,4,²ÐÍË). °ìÆü¤ÎÍËÆü(1997,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(1997,6,ÆüÍË). °ìÆü¤ÎÍËÆü(1997,7,²ÐÍË). °ìÆü¤ÎÍËÆü(1997,8,¶âÍË). °ìÆü¤ÎÍËÆü(1997,9,·îÍË). °ìÆü¤ÎÍËÆü(1997,10,¿åÍË). °ìÆü¤ÎÍËÆü(1997,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(1997,12,·îÍË). °ìÆü¤ÎÍËÆü(1998,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(1998,2,ÆüÍË). °ìÆü¤ÎÍËÆü(1998,3,ÆüÍË). °ìÆü¤ÎÍËÆü(1998,4,¿åÍË). °ìÆü¤ÎÍËÆü(1998,5,¶âÍË). °ìÆü¤ÎÍËÆü(1998,6,·îÍË). °ìÆü¤ÎÍËÆü(1998,7,¿åÍË). °ìÆü¤ÎÍËÆü(1998,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(1998,9,²ÐÍË). °ìÆü¤ÎÍËÆü(1998,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(1998,11,ÆüÍË). °ìÆü¤ÎÍËÆü(1998,12,²ÐÍË). °ìÆü¤ÎÍËÆü(1999,1,¶âÍË). °ìÆü¤ÎÍËÆü(1999,2,·îÍË). °ìÆü¤ÎÍËÆü(1999,3,·îÍË). °ìÆü¤ÎÍËÆü(1999,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(1999,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(1999,6,²ÐÍË). °ìÆü¤ÎÍËÆü(1999,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(1999,8,ÆüÍË). °ìÆü¤ÎÍËÆü(1999,9,¿åÍË). °ìÆü¤ÎÍËÆü(1999,10,¶âÍË). °ìÆü¤ÎÍËÆü(1999,11,·îÍË). °ìÆü¤ÎÍËÆü(1999,12,¿åÍË). °ìÆü¤ÎÍËÆü(2000,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(2000,2,²ÐÍË). °ìÆü¤ÎÍËÆü(2000,3,¿åÍË). °ìÆü¤ÎÍËÆü(2000,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(2000,5,·îÍË). °ìÆü¤ÎÍËÆü(2000,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(2000,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(2000,8,²ÐÍË). °ìÆü¤ÎÍËÆü(2000,9,¶âÍË). °ìÆü¤ÎÍËÆü(2000,10,ÆüÍË). °ìÆü¤ÎÍËÆü(2000,11,¿åÍË). °ìÆü¤ÎÍËÆü(2000,12,¶âÍË). °ìÆü¤ÎÍËÆü(2001,1,·îÍË). °ìÆü¤ÎÍËÆü(2001,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(2001,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(2001,4,ÆüÍË). °ìÆü¤ÎÍËÆü(2001,5,²ÐÍË). °ìÆü¤ÎÍËÆü(2001,6,¶âÍË). °ìÆü¤ÎÍËÆü(2001,7,ÆüÍË). °ìÆü¤ÎÍËÆü(2001,8,¿åÍË). °ìÆü¤ÎÍËÆü(2001,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(2001,10,·îÍË). °ìÆü¤ÎÍËÆü(2001,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(2001,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(2002,1,²ÐÍË). °ìÆü¤ÎÍËÆü(2002,2,¶âÍË). °ìÆü¤ÎÍËÆü(2002,3,¶âÍË). °ìÆü¤ÎÍËÆü(2002,4,·îÍË). °ìÆü¤ÎÍËÆü(2002,5,¿åÍË). °ìÆü¤ÎÍËÆü(2002,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(2002,7,·îÍË). °ìÆü¤ÎÍËÆü(2002,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(2002,9,ÆüÍË). °ìÆü¤ÎÍËÆü(2002,10,²ÐÍË). °ìÆü¤ÎÍËÆü(2002,11,¶âÍË). °ìÆü¤ÎÍËÆü(2002,12,ÆüÍË). °ìÆü¤ÎÍËÆü(2003,1,¿åÍË). °ìÆü¤ÎÍËÆü(2003,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(2003,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(2003,4,²ÐÍË). °ìÆü¤ÎÍËÆü(2003,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(2003,6,ÆüÍË). °ìÆü¤ÎÍËÆü(2003,7,²ÐÍË). °ìÆü¤ÎÍËÆü(2003,8,¶âÍË). °ìÆü¤ÎÍËÆü(2003,9,·îÍË). °ìÆü¤ÎÍËÆü(2003,10,¿åÍË). °ìÆü¤ÎÍËÆü(2003,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(2003,12,·îÍË). °ìÆü¤ÎÍËÆü(2004,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(2004,2,ÆüÍË). °ìÆü¤ÎÍËÆü(2004,3,·îÍË). °ìÆü¤ÎÍËÆü(2004,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(2004,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(2004,6,²ÐÍË). °ìÆü¤ÎÍËÆü(2004,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(2004,8,ÆüÍË). °ìÆü¤ÎÍËÆü(2004,9,¿åÍË). °ìÆü¤ÎÍËÆü(2004,10,¶âÍË). °ìÆü¤ÎÍËÆü(2004,11,·îÍË). °ìÆü¤ÎÍËÆü(2004,12,¿åÍË). °ìÆü¤ÎÍËÆü(2005,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(2005,2,²ÐÍË). °ìÆü¤ÎÍËÆü(2005,3,²ÐÍË). °ìÆü¤ÎÍËÆü(2005,4,¶âÍË). °ìÆü¤ÎÍËÆü(2005,5,ÆüÍË). °ìÆü¤ÎÍËÆü(2005,6,¿åÍË). °ìÆü¤ÎÍËÆü(2005,7,¶âÍË). °ìÆü¤ÎÍËÆü(2005,8,·îÍË). °ìÆü¤ÎÍËÆü(2005,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(2005,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(2005,11,²ÐÍË). °ìÆü¤ÎÍËÆü(2005,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(2006,1,ÆüÍË). °ìÆü¤ÎÍËÆü(2006,2,¿åÍË). °ìÆü¤ÎÍËÆü(2006,3,¿åÍË). °ìÆü¤ÎÍËÆü(2006,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(2006,5,·îÍË). °ìÆü¤ÎÍËÆü(2006,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(2006,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(2006,8,²ÐÍË). °ìÆü¤ÎÍËÆü(2006,9,¶âÍË). °ìÆü¤ÎÍËÆü(2006,10,ÆüÍË). °ìÆü¤ÎÍËÆü(2006,11,¿åÍË). °ìÆü¤ÎÍËÆü(2006,12,¶âÍË). °ìÆü¤ÎÍËÆü(2007,1,·îÍË). °ìÆü¤ÎÍËÆü(2007,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(2007,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(2007,4,ÆüÍË). °ìÆü¤ÎÍËÆü(2007,5,²ÐÍË). °ìÆü¤ÎÍËÆü(2007,6,¶âÍË). °ìÆü¤ÎÍËÆü(2007,7,ÆüÍË). °ìÆü¤ÎÍËÆü(2007,8,¿åÍË). °ìÆü¤ÎÍËÆü(2007,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(2007,10,·îÍË). °ìÆü¤ÎÍËÆü(2007,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(2007,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(2008,1,²ÐÍË). °ìÆü¤ÎÍËÆü(2008,2,¶âÍË). °ìÆü¤ÎÍËÆü(2008,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(2008,4,²ÐÍË). °ìÆü¤ÎÍËÆü(2008,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(2008,6,ÆüÍË). °ìÆü¤ÎÍËÆü(2008,7,²ÐÍË). °ìÆü¤ÎÍËÆü(2008,8,¶âÍË). °ìÆü¤ÎÍËÆü(2008,9,·îÍË). °ìÆü¤ÎÍËÆü(2008,10,¿åÍË). °ìÆü¤ÎÍËÆü(2008,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(2008,12,·îÍË). °ìÆü¤ÎÍËÆü(2009,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(2009,2,ÆüÍË). °ìÆü¤ÎÍËÆü(2009,3,ÆüÍË). °ìÆü¤ÎÍËÆü(2009,4,¿åÍË). °ìÆü¤ÎÍËÆü(2009,5,¶âÍË). °ìÆü¤ÎÍËÆü(2009,6,·îÍË). °ìÆü¤ÎÍËÆü(2009,7,¿åÍË). °ìÆü¤ÎÍËÆü(2009,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(2009,9,²ÐÍË). °ìÆü¤ÎÍËÆü(2009,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(2009,11,ÆüÍË). °ìÆü¤ÎÍËÆü(2009,12,²ÐÍË). °ìÆü¤ÎÍËÆü(2010,1,¶âÍË). °ìÆü¤ÎÍËÆü(2010,2,·îÍË). °ìÆü¤ÎÍËÆü(2010,3,·îÍË). °ìÆü¤ÎÍËÆü(2010,4,ÌÚÍË). °ìÆü¤ÎÍËÆü(2010,5,ÅÚÍË). °ìÆü¤ÎÍËÆü(2010,6,²ÐÍË). °ìÆü¤ÎÍËÆü(2010,7,ÌÚÍË). °ìÆü¤ÎÍËÆü(2010,8,ÆüÍË). °ìÆü¤ÎÍËÆü(2010,9,¿åÍË). °ìÆü¤ÎÍËÆü(2010,10,¶âÍË). °ìÆü¤ÎÍËÆü(2010,11,·îÍË). °ìÆü¤ÎÍËÆü(2010,12,¿åÍË). °ìÆü¤ÎÍËÆü(2011,1,ÅÚÍË). °ìÆü¤ÎÍËÆü(2011,2,²ÐÍË). °ìÆü¤ÎÍËÆü(2011,3,²ÐÍË). °ìÆü¤ÎÍËÆü(2011,4,¶âÍË). °ìÆü¤ÎÍËÆü(2011,5,ÆüÍË). °ìÆü¤ÎÍËÆü(2011,6,¿åÍË). °ìÆü¤ÎÍËÆü(2011,7,¶âÍË). °ìÆü¤ÎÍËÆü(2011,8,·îÍË). °ìÆü¤ÎÍËÆü(2011,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(2011,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(2011,11,²ÐÍË). °ìÆü¤ÎÍËÆü(2011,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(2012,1,ÆüÍË). °ìÆü¤ÎÍËÆü(2012,2,¿åÍË). °ìÆü¤ÎÍËÆü(2012,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(2012,4,ÆüÍË). °ìÆü¤ÎÍËÆü(2012,5,²ÐÍË). °ìÆü¤ÎÍËÆü(2012,6,¶âÍË). °ìÆü¤ÎÍËÆü(2012,7,ÆüÍË). °ìÆü¤ÎÍËÆü(2012,8,¿åÍË). °ìÆü¤ÎÍËÆü(2012,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(2012,10,·îÍË). °ìÆü¤ÎÍËÆü(2012,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(2012,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(2013,1,²ÐÍË). °ìÆü¤ÎÍËÆü(2013,2,¶âÍË). °ìÆü¤ÎÍËÆü(2013,3,¶âÍË). °ìÆü¤ÎÍËÆü(2013,4,·îÍË). °ìÆü¤ÎÍËÆü(2013,5,¿åÍË). °ìÆü¤ÎÍËÆü(2013,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(2013,7,·îÍË). °ìÆü¤ÎÍËÆü(2013,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(2013,9,ÆüÍË). °ìÆü¤ÎÍËÆü(2013,10,²ÐÍË). °ìÆü¤ÎÍËÆü(2013,11,¶âÍË). °ìÆü¤ÎÍËÆü(2013,12,ÆüÍË). °ìÆü¤ÎÍËÆü(2014,1,¿åÍË). °ìÆü¤ÎÍËÆü(2014,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(2014,3,ÅÚÍË). °ìÆü¤ÎÍËÆü(2014,4,²ÐÍË). °ìÆü¤ÎÍËÆü(2014,5,ÌÚÍË). °ìÆü¤ÎÍËÆü(2014,6,ÆüÍË). °ìÆü¤ÎÍËÆü(2014,7,²ÐÍË). °ìÆü¤ÎÍËÆü(2014,8,¶âÍË). °ìÆü¤ÎÍËÆü(2014,9,·îÍË). °ìÆü¤ÎÍËÆü(2014,10,¿åÍË). °ìÆü¤ÎÍËÆü(2014,11,ÅÚÍË). °ìÆü¤ÎÍËÆü(2014,12,·îÍË). °ìÆü¤ÎÍËÆü(2015,1,ÌÚÍË). °ìÆü¤ÎÍËÆü(2015,2,ÆüÍË). °ìÆü¤ÎÍËÆü(2015,3,ÆüÍË). °ìÆü¤ÎÍËÆü(2015,4,¿åÍË). °ìÆü¤ÎÍËÆü(2015,5,¶âÍË). °ìÆü¤ÎÍËÆü(2015,6,·îÍË). °ìÆü¤ÎÍËÆü(2015,7,¿åÍË). °ìÆü¤ÎÍËÆü(2015,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(2015,9,²ÐÍË). °ìÆü¤ÎÍËÆü(2015,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(2015,11,ÆüÍË). °ìÆü¤ÎÍËÆü(2015,12,²ÐÍË). °ìÆü¤ÎÍËÆü(2016,1,¶âÍË). °ìÆü¤ÎÍËÆü(2016,2,·îÍË). °ìÆü¤ÎÍËÆü(2016,3,²ÐÍË). °ìÆü¤ÎÍËÆü(2016,4,¶âÍË). °ìÆü¤ÎÍËÆü(2016,5,ÆüÍË). °ìÆü¤ÎÍËÆü(2016,6,¿åÍË). °ìÆü¤ÎÍËÆü(2016,7,¶âÍË). °ìÆü¤ÎÍËÆü(2016,8,·îÍË). °ìÆü¤ÎÍËÆü(2016,9,ÌÚÍË). °ìÆü¤ÎÍËÆü(2016,10,ÅÚÍË). °ìÆü¤ÎÍËÆü(2016,11,²ÐÍË). °ìÆü¤ÎÍËÆü(2016,12,ÌÚÍË). °ìÆü¤ÎÍËÆü(2017,1,ÆüÍË). °ìÆü¤ÎÍËÆü(2017,2,¿åÍË). °ìÆü¤ÎÍËÆü(2017,3,¿åÍË). °ìÆü¤ÎÍËÆü(2017,4,ÅÚÍË). °ìÆü¤ÎÍËÆü(2017,5,·îÍË). °ìÆü¤ÎÍËÆü(2017,6,ÌÚÍË). °ìÆü¤ÎÍËÆü(2017,7,ÅÚÍË). °ìÆü¤ÎÍËÆü(2017,8,²ÐÍË). °ìÆü¤ÎÍËÆü(2017,9,¶âÍË). °ìÆü¤ÎÍËÆü(2017,10,ÆüÍË). °ìÆü¤ÎÍËÆü(2017,11,¿åÍË). °ìÆü¤ÎÍËÆü(2017,12,¶âÍË). °ìÆü¤ÎÍËÆü(2018,1,·îÍË). °ìÆü¤ÎÍËÆü(2018,2,ÌÚÍË). °ìÆü¤ÎÍËÆü(2018,3,ÌÚÍË). °ìÆü¤ÎÍËÆü(2018,4,ÆüÍË). °ìÆü¤ÎÍËÆü(2018,5,²ÐÍË). °ìÆü¤ÎÍËÆü(2018,6,¶âÍË). °ìÆü¤ÎÍËÆü(2018,7,ÆüÍË). °ìÆü¤ÎÍËÆü(2018,8,¿åÍË). °ìÆü¤ÎÍËÆü(2018,9,ÅÚÍË). °ìÆü¤ÎÍËÆü(2018,10,·îÍË). °ìÆü¤ÎÍËÆü(2018,11,ÌÚÍË). °ìÆü¤ÎÍËÆü(2018,12,ÅÚÍË). °ìÆü¤ÎÍËÆü(2019,1,²ÐÍË). °ìÆü¤ÎÍËÆü(2019,2,¶âÍË). °ìÆü¤ÎÍËÆü(2019,3,¶âÍË). °ìÆü¤ÎÍËÆü(2019,4,·îÍË). °ìÆü¤ÎÍËÆü(2019,5,¿åÍË). °ìÆü¤ÎÍËÆü(2019,6,ÅÚÍË). °ìÆü¤ÎÍËÆü(2019,7,·îÍË). °ìÆü¤ÎÍËÆü(2019,8,ÌÚÍË). °ìÆü¤ÎÍËÆü(2019,9,ÆüÍË). °ìÆü¤ÎÍËÆü(2019,10,²ÐÍË). °ìÆü¤ÎÍËÆü(2019,11,¶âÍË). °ìÆü¤ÎÍËÆü(2019,12,ÆüÍË). °ìÆü¤ÎÍËÆü(2020,1,¿åÍË). °ìÆü¤ÎÍËÆü(2020,2,ÅÚÍË). °ìÆü¤ÎÍËÆü(2020,3,ÆüÍË). °ìÆü¤ÎÍËÆü(2020,4,¿åÍË). °ìÆü¤ÎÍËÆü(2020,5,¶âÍË). °ìÆü¤ÎÍËÆü(2020,6,·îÍË). °ìÆü¤ÎÍËÆü(2020,7,¿åÍË). °ìÆü¤ÎÍËÆü(2020,8,ÅÚÍË). °ìÆü¤ÎÍËÆü(2020,9,²ÐÍË). °ìÆü¤ÎÍËÆü(2020,10,ÌÚÍË). °ìÆü¤ÎÍËÆü(2020,11,ÆüÍË). °ìÆü¤ÎÍËÆü(2020,12,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1970,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1970,2,28,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1970,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1970,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1970,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1970,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1970,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1970,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1970,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1970,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1970,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1970,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1971,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1971,2,28,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1971,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1971,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1971,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1971,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1971,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1971,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1971,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1971,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1971,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1971,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1972,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1972,2,29,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1972,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1972,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1972,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1972,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1972,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1972,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1972,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1972,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1972,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1972,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1973,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1973,2,28,¿åÍË). ·îËöÆü¤ÎÍËÆü(1973,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1973,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1973,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1973,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1973,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1973,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1973,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1973,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1973,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1973,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1974,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1974,2,28,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1974,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1974,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1974,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1974,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1974,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1974,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1974,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1974,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1974,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1974,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1975,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1975,2,28,¶âÍË). ·îËöÆü¤ÎÍËÆü(1975,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1975,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1975,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1975,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1975,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1975,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1975,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1975,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1975,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1975,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1976,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1976,2,29,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1976,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1976,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1976,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1976,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1976,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1976,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1976,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1976,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1976,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1976,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1977,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1977,2,28,·îÍË). ·îËöÆü¤ÎÍËÆü(1977,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1977,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1977,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1977,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1977,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1977,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1977,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1977,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1977,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1977,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1978,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1978,2,28,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1978,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1978,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1978,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1978,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1978,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1978,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1978,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1978,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1978,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1978,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1979,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1979,2,28,¿åÍË). ·îËöÆü¤ÎÍËÆü(1979,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1979,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1979,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1979,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1979,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1979,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1979,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1979,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1979,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1979,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1980,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1980,2,29,¶âÍË). ·îËöÆü¤ÎÍËÆü(1980,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1980,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1980,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1980,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1980,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1980,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1980,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1980,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1980,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1980,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1981,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1981,2,28,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1981,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1981,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1981,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1981,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1981,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1981,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1981,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1981,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1981,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1981,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1982,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1982,2,28,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1982,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1982,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1982,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1982,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1982,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1982,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1982,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1982,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1982,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1982,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1983,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1983,2,28,·îÍË). ·îËöÆü¤ÎÍËÆü(1983,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1983,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1983,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1983,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1983,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1983,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1983,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1983,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1983,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1983,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1984,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1984,2,29,¿åÍË). ·îËöÆü¤ÎÍËÆü(1984,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1984,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1984,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1984,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1984,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1984,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1984,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1984,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1984,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1984,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1985,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1985,2,28,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1985,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1985,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1985,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1985,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1985,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1985,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1985,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1985,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1985,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1985,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1986,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1986,2,28,¶âÍË). ·îËöÆü¤ÎÍËÆü(1986,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1986,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1986,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1986,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1986,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1986,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1986,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1986,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1986,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1986,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1987,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1987,2,28,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1987,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1987,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1987,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1987,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1987,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1987,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1987,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1987,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1987,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1987,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1988,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1988,2,29,·îÍË). ·îËöÆü¤ÎÍËÆü(1988,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1988,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1988,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1988,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1988,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1988,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1988,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1988,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1988,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1988,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1989,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1989,2,28,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1989,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1989,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1989,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1989,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1989,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1989,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1989,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1989,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1989,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1989,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1990,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1990,2,28,¿åÍË). ·îËöÆü¤ÎÍËÆü(1990,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1990,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1990,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1990,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1990,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1990,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1990,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1990,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1990,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1990,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1991,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1991,2,28,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1991,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1991,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1991,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1991,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1991,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1991,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1991,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1991,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1991,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1991,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1992,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1992,2,29,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1992,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1992,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1992,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1992,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1992,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1992,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1992,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1992,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1992,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1992,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1993,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1993,2,28,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1993,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1993,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1993,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1993,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1993,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1993,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1993,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1993,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1993,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1993,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1994,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1994,2,28,·îÍË). ·îËöÆü¤ÎÍËÆü(1994,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1994,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1994,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1994,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1994,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1994,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1994,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1994,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1994,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1994,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1995,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1995,2,28,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1995,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1995,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1995,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1995,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1995,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1995,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1995,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1995,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1995,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1995,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1996,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1996,2,29,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1996,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1996,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1996,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1996,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1996,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1996,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1996,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1996,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1996,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1996,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1997,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1997,2,28,¶âÍË). ·îËöÆü¤ÎÍËÆü(1997,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1997,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1997,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1997,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1997,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1997,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1997,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1997,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1997,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1997,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1998,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1998,2,28,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1998,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1998,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1998,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1998,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1998,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(1998,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1998,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1998,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1998,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(1998,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1999,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1999,2,28,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1999,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(1999,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(1999,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(1999,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(1999,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(1999,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1999,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(1999,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(1999,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(1999,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2000,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2000,2,29,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2000,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2000,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2000,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2000,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2000,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2000,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2000,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2000,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2000,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2000,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2001,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2001,2,28,¿åÍË). ·îËöÆü¤ÎÍËÆü(2001,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2001,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2001,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2001,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2001,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2001,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2001,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2001,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2001,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2001,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2002,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2002,2,28,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2002,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2002,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2002,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2002,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2002,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2002,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2002,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2002,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2002,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2002,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2003,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2003,2,28,¶âÍË). ·îËöÆü¤ÎÍËÆü(2003,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2003,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2003,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2003,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2003,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2003,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2003,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2003,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2003,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2003,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2004,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2004,2,29,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2004,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2004,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2004,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2004,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2004,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2004,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2004,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2004,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2004,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2004,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2005,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2005,2,28,·îÍË). ·îËöÆü¤ÎÍËÆü(2005,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2005,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2005,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2005,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2005,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2005,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2005,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2005,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2005,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2005,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2006,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2006,2,28,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2006,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2006,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2006,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2006,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2006,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2006,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2006,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2006,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2006,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2006,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2007,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2007,2,28,¿åÍË). ·îËöÆü¤ÎÍËÆü(2007,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2007,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2007,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2007,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2007,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2007,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2007,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2007,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2007,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2007,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2008,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2008,2,29,¶âÍË). ·îËöÆü¤ÎÍËÆü(2008,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2008,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2008,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2008,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2008,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2008,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2008,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2008,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2008,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2008,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2009,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2009,2,28,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2009,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2009,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2009,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2009,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2009,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2009,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2009,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2009,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2009,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2009,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2010,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2010,2,28,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2010,3,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2010,4,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2010,5,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2010,6,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2010,7,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2010,8,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2010,9,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2010,10,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2010,11,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2010,12,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2011,1,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2011,2,28,·îÍË). ·îËöÆü¤ÎÍËÆü(2011,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2011,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2011,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2011,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2011,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2011,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2011,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2011,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2011,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2011,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2012,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2012,2,29,¿åÍË). ·îËöÆü¤ÎÍËÆü(2012,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2012,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2012,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2012,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2012,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2012,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2012,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2012,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2012,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2012,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2013,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2013,2,28,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2013,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2013,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2013,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2013,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2013,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2013,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2013,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2013,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2013,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2013,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2014,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2014,2,28,¶âÍË). ·îËöÆü¤ÎÍËÆü(2014,3,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2014,4,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2014,5,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2014,6,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2014,7,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2014,8,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2014,9,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2014,10,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2014,11,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2014,12,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2015,1,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2015,2,28,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2015,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2015,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2015,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2015,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2015,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2015,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2015,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2015,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2015,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2015,12,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2016,1,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2016,2,29,·îÍË). ·îËöÆü¤ÎÍËÆü(2016,3,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2016,4,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2016,5,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2016,6,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2016,7,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2016,8,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2016,9,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2016,10,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2016,11,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2016,12,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2017,1,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2017,2,28,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2017,3,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2017,4,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2017,5,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2017,6,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2017,7,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2017,8,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2017,9,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2017,10,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2017,11,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2017,12,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2018,1,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2018,2,28,¿åÍË). ·îËöÆü¤ÎÍËÆü(2018,3,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2018,4,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2018,5,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2018,6,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2018,7,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2018,8,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2018,9,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2018,10,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2018,11,30,¶âÍË). ·îËöÆü¤ÎÍËÆü(2018,12,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2019,1,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2019,2,28,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2019,3,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2019,4,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2019,5,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2019,6,30,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2019,7,31,¿åÍË). ·îËöÆü¤ÎÍËÆü(2019,8,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2019,9,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2019,10,31,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2019,11,30,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2019,12,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2020,1,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2020,2,29,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2020,3,31,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2020,4,30,ÌÚÍË). ·îËöÆü¤ÎÍËÆü(2020,5,31,ÆüÍË). ·îËöÆü¤ÎÍËÆü(2020,6,30,²ÐÍË). ·îËöÆü¤ÎÍËÆü(2020,7,31,¶âÍË). ·îËöÆü¤ÎÍËÆü(2020,8,31,·îÍË). ·îËöÆü¤ÎÍËÆü(2020,9,30,¿åÍË). ·îËöÆü¤ÎÍËÆü(2020,10,31,ÅÚÍË). ·îËöÆü¤ÎÍËÆü(2020,11,30,·îÍË). ·îËöÆü¤ÎÍËÆü(2020,12,31,ÌÚÍË). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % ǯ¡¢·î¤¬Í¿¤¨¤é¤ì¤¿»þ¡¢ÆüÍËÆü¤«¤é»Ï¤Þ¤ë¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë¡£ % ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_ǯ,_·î) :- ·îËöÆü(_ǯ,_·î,_·îËöÆü), 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,1,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü), ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_ÍËÆü,_·îËöÆü,_¥«¥ì¥ó¥À¡¼), ¥«¥ì¥ó¥À¡¼É½¼¨(_¥«¥ì¥ó¥À¡¼). ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_°ìÆü¤ÎÍËÆü,_·îËöÆü,_¥«¥ì¥ó¥À¡¼) :- findall(_Æü,between(1,_·îËöÆü,_Æü),_ÆüÉդʤé¤Ó), Âè°ì½µ¤ÎÀ°·Á(_°ìÆü¤ÎÍËÆü,_ÆüÉդʤé¤Ó,_Âè°ì½µ,_ÂèÆó½µ°Ê¸å), ºÇ½ª½µ¤ÎÀ°·Á(_ÂèÆó½µ°Ê¸å,_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å), _¥«¥ì¥ó¥À¡¼ = [_Âè°ì½µ|_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å]. Âè°ì½µ¤ÎÀ°·Á(ÆüÍË,[_1,_2,_3,_4,_5,_6,_7|R],[_1,_2,_3,_4,_5,_6,_7],R). Âè°ì½µ¤ÎÀ°·Á(·îÍË,[_1,_2,_3,_4,_5,_6|R],[_,_1,_2,_3,_4,_5,_6],R). Âè°ì½µ¤ÎÀ°·Á(²ÐÍË,[_1,_2,_3,_4,_5|R],[_,_,_1,_2,_3,_4,_5],R). Âè°ì½µ¤ÎÀ°·Á(¿åÍË,[_1,_2,_3,_4|R],[_,_,_,_1,_2,_3,_4],R). Âè°ì½µ¤ÎÀ°·Á(ÌÚÍË,[_1,_2,_3|R],[_,_,_,_,_1,_2,_3],R). Âè°ì½µ¤ÎÀ°·Á(¶âÍË,[_1,_2|R],[_,_,_,_,_,_1,_2],R). Âè°ì½µ¤ÎÀ°·Á(ÅÚÍË,[_1|R],[_,_,_,_,_,_,_1],R). ºÇ½ª½µ¤ÎÀ°·Á([_1,_2,_3,_4,_5,_6,_7|R1],[[_1,_2,_3,_4,_5,_6,_7]|R2]) :- ºÇ½ª½µ¤ÎÀ°·Á(R1,R2),!. ºÇ½ª½µ¤ÎÀ°·Á([],[]) :- !. ºÇ½ª½µ¤ÎÀ°·Á(L1,[L2]) :- length(L2,7), append(L1,_,L2). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î > 2, 'Zeller¤Î¸ø¼°'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ), 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î =< 2, _ǯ_1 is _ǯ - 1, _·î_2 is _·î + 12, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ_1,_·î_2,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ) :- _ÍËÆü¤òɽ¤¹ÃÍ is (_ǯ + truncate(_ǯ / 4) - truncate(_ǯ / 100) + truncate(_ǯ / 400) + truncate((13 * _·î + 8) / 5) + _Æü) mod 7. 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(0,ÆüÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(1,·îÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(2,²ÐÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(3,¿åÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(4,ÌÚÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(5,¶âÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(6,ÅÚÍË). ·îËöÆü(_ǯ,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îËöÆü(_ǯ,2,28) :- !. ·îËöÆü(_,_·î,31) :- member(_·î,[1,3,5,7,8,10,12]). ·îËöÆü(_,_·î,30) :- member(_·î,[4,6,9,11]). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. ¥«¥ì¥ó¥À¡¼É½¼¨([]). ¥«¥ì¥ó¥À¡¼É½¼¨([_½µ|R]) :- ¥«¥ì¥ó¥À¡¼½µÉ½¼¨(_½µ), ¥«¥ì¥ó¥À¡¼É½¼¨(R). ¥«¥ì¥ó¥À¡¼½µÉ½¼¨([]) :- write('\n'). ¥«¥ì¥ó¥À¡¼½µÉ½¼¨([A|R]) :- ɽ¼¨¹à(A,_ɽ¼¨¹à), writef('%3R',[_ɽ¼¨¹à]), ¥«¥ì¥ó¥À¡¼½µÉ½¼¨(R). ɽ¼¨¹à(' ',' ') :- !. ɽ¼¨¹à(N,N). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ÆüÍ˵¯ÅÀ¥«¥ì¥ó¥À¡¼(_°ìÆü¤ÎÍËÆü,_ËöÆüÀ°¿ô,_¥«¥ì¥ó¥À¡¼) :- findall(_Æü,between(1,_ËöÆüÀ°¿ô,_Æü),_ÆüÉդʤé¤Ó), Âè°ì½µ¤ÎÀ°·Á(_°ìÆü¤ÎÍËÆü,_ÆüÉդʤé¤Ó,_Âè°ì½µ,_ÂèÆó½µ°Ê¸å), ºÇ½ª½µ¤ÎÀ°·Á(_ÂèÆó½µ°Ê¸å,_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å), _¥«¥ì¥ó¥À¡¼ = [_Âè°ì½µ|_ºÇ½ª½µ¤òÀ°·Á¤µ¤ì¤¿ÂèÆó½µ°Ê¸å]. Âè°ì½µ¤ÎÀ°·Á(ÆüÍË,[_1,_2,_3,_4,_5,_6,_7|R],[_1,_2,_3,_4,_5,_6,_7],R). Âè°ì½µ¤ÎÀ°·Á(·îÍË,[_1,_2,_3,_4,_5,_6|R],[_,_1,_2,_3,_4,_5,_6],R). Âè°ì½µ¤ÎÀ°·Á(²ÐÍË,[_1,_2,_3,_4,_5|R],[_,_,_1,_2,_3,_4,_5],R). Âè°ì½µ¤ÎÀ°·Á(¿åÍË,[_1,_2,_3,_4|R],[_,_,_,_1,_2,_3,_4],R). Âè°ì½µ¤ÎÀ°·Á(ÌÚÍË,[_1,_2,_3|R],[_,_,_,_,_1,_2,_3],R). Âè°ì½µ¤ÎÀ°·Á(¶âÍË,[_1,_2|R],[_,_,_,_,_,_1,_2],R). Âè°ì½µ¤ÎÀ°·Á(ÅÚÍË,[_1|R],[_,_,_,_,_,_,_1],R). ºÇ½ª½µ¤ÎÀ°·Á([_1,_2,_3,_4,_5,_6,_7|R1],[[_1,_2,_3,_4,_5,_6,_7]|R2]) :- ºÇ½ª½µ¤ÎÀ°·Á(R1,R2),!. ºÇ½ª½µ¤ÎÀ°·Á(L1,[L2]) :- length(L2,7), append(L1,_,L2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1411227287/178 # ¤ªÂê # "¤³¤Îʸ»úÎó¤Ë¤Ï1¤¬¢¢¸Ä¡¤2¤¬¢¢¸Ä¡¤3¤¬¢¢¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä¤¢¤ë¡£" # ¤Î¢¢¤ò¤½¤ì¤¾¤ìŬÀڤʿô»ú¤ËÃÖ¤­´¹¤¨¡¢Àµ¤·¤¤Ê¸¾Ï¤È¤·¤Æ´°À®¤µ¤»¤ë¥³¡¼¥É¤ò½ñ¤±¡£ # # ¸µ¥Í¥¿¡§https://www.facebook.com/NewtonScience/photos/a.314504251971427.78296.285001398255046/716155815139600/ # # '"¤³¤Îʸ»úÎó¤Ë¤Ï1¤¬¢¢¸Ä¡¤2¤¬¢¢¸Ä¡¤3¤¬¢¢¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä¤¢¤ë¡£" ¤È¤¤¤¦Ê¸¾Ï¤¬¤¢¤ë¡£¢¢¤ò¤½¤ì¤¾¤ìŬÀڤʿô»ú¤ËÃÖ¤­´¹¤¨¡¢Àµ¤·¤¤Ê¸¾Ï¤È¤·¤Æ´°À®¤µ¤»¤ë¥³¡¼¥É¤ò½ñ¤±¡£'(_Àµ¤·¤¤Ê¸¾Ï) :- '1¤¬¢¢¸Ä¡¤2¤¬¢¢¸Ä¡¤3¤¬¢¢¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä'(_n1,_n2,_n3,_n4,_1,_2,_3,_4), '"¤³¤Îʸ»úÎó¤Ë¤Ï1¤¬¢¢¸Ä¡¤2¤¬¢¢¸Ä¡¤3¤¬¢¢¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä¤¢¤ë¡£" ¤È¤¤¤¦Ê¸¾Ï¤¬¤¢¤ë¡£¢¢¤ò¤½¤ì¤¾¤ìŬÀڤʿô»ú¤ËÃÖ¤­´¹¤¨¡¢Àµ¤·¤¤Ê¸¾Ï¤È¤·¤Æ´°À®¤µ¤»¤ë'(_1,_2,_3,_4,_Àµ¤·¤¤Ê¸¾Ï), Àµ¤·¤¤Ê¸¾Ï¤Ç¤¢¤ë(_Àµ¤·¤¤Ê¸¾Ï,_n1,_n2,_n3,_n4). '1¤¬¢¢¸Ä¡¤2¤¬¢¢¸Ä¡¤3¤¬¢¢¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä'(_n1,_n2,_n3,_n4,_1,_2,_3,_4) :- '1¤¬¢¢¸Ä'(_n1,_1), '2¤¬¢¢¸Ä'(_n2,_2), '3¤¬¢¢¸Ä'(_n3,_3), '1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä¤¢¤ë'(_n4,_4). '1¤¬¢¢¸Ä'(_n1,_1) :- between(0,9,_n1), number_chars(_n1,[_1]). '2¤¬¢¢¸Ä'(_n2,_2) :- between(0,9,_n2), number_chars(_n2,[_2]). '3¤¬¢¢¸Ä'(_n3,_3) :- between(0,9,_n3), number_chars(_n3,[_3]). '1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä¤¢¤ë'(_n4,_4) :- between(0,9,_n4), number_chars(_n4,[_4]). '"¤³¤Îʸ»úÎó¤Ë¤Ï1¤¬¢¢¸Ä¡¤2¤¬¢¢¸Ä¡¤3¤¬¢¢¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬¢¢¸Ä¤¢¤ë¡£" ¤È¤¤¤¦Ê¸¾Ï¤¬¤¢¤ë¡£¢¢¤ò¤½¤ì¤¾¤ìŬÀڤʿô»ú¤ËÃÖ¤­´¹¤¨¡¢Àµ¤·¤¤Ê¸¾Ï¤È¤·¤Æ´°À®¤µ¤»¤ë'(_1,_2,_3,_4,_Àµ¤·¤¤Ê¸¾Ï) :- swritef(_Àµ¤·¤¤Ê¸¾Ï,'¤³¤Îʸ»úÎó¤Ë¤Ï1¤¬%t¸Ä¡¤2¤¬%t¸Ä¡¤3¤¬%t¸Ä¡¤1¤«¤é3°Ê³°¤Î¿ô»ú¤¬%t¸Ä¤¢¤ë¡£',[_1,_2,_3,_4]). Àµ¤·¤¤Ê¸¾Ï¤Ç¤¢¤ë(_Àµ¤·¤¤Ê¸¾Ï,_n1,_n2,_n3,_n4) :- '1¤ÎÅÙ¿ô¤Ï'(_Àµ¤·¤¤Ê¸¾Ï,_n1), '2¤ÎÅÙ¿ô¤Ï'(_Àµ¤·¤¤Ê¸¾Ï,_n2), '3¤ÎÅÙ¿ô¤Ï'(_Àµ¤·¤¤Ê¸¾Ï,_n3), '1¤«¤é3°Ê³°¤Î¿ô»ú¤ÎÅÙ¿ô'(_Àµ¤·¤¤Ê¸¾Ï,_n4). '1¤ÎÅÙ¿ô¤Ï'(_Àµ¤·¤¤Ê¸¾Ï,_n1) :- ÅÙ¿ô(sub_atom(_Àµ¤·¤¤Ê¸¾Ï,_,1,_,'1'),_n1). '2¤ÎÅÙ¿ô¤Ï'(_Àµ¤·¤¤Ê¸¾Ï,_n2) :- ÅÙ¿ô(sub_atom(_Àµ¤·¤¤Ê¸¾Ï,_,1,_,'2'),_n2). '3¤ÎÅÙ¿ô¤Ï'(_Àµ¤·¤¤Ê¸¾Ï,_n3) :- ÅÙ¿ô(sub_atom(_Àµ¤·¤¤Ê¸¾Ï,_,1,_,'3'),_n3). '1¤«¤é3°Ê³°¤Î¿ô»ú¤ÎÅÙ¿ô'(_Àµ¤·¤¤Ê¸¾Ï,_n4) :- ÅÙ¿ô((sub_atom(_Àµ¤·¤¤Ê¸¾Ï,_,1,_,A),member(A,['4','5','6','7','8','9','0'])),_n4). ÅÙ¿ô(_ÌÜɸ,_ÅÙ¿ô) :- findall(1,_ÌÜɸ,L), length(L,_ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1411227287/89 # 0¤È1¤Î¤ß¤Ç¥é¥ó¥À¥à¤ËÀ¸À®¤·¤¿Ê¸»úÎóS¤¬¤¢¤ë # Ťµ¤Ï2<=S<=1000¤Ç¤¢¤ë # 11001010110100011001011011111111111111000000000010111000000 # # Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢Â¾¤ÎϢ³¤¹¤ëʸ»úÎó¤è¤ê¤â°ìÈÖŤ¤Ê¸»úÎó¤òMX # Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢¥ËÈÖÌܤËû¤¤Ê¸»úÎó¤òMN # ¤È¤·¤¿¤È¤­¤ÎMX¤ÈMN¤òµá¤á¤è # ¸«Åö¤¿¤é¤Ê¤¤¾ì¹ç¤ÏFALSE¤ò½ÐÎϤ·¤í # # S=110001010100 # MX=3 (000¤¬°ìÈÖŤ¤) # MN=2 (11¤Þ¤¿¤Ï00¤¬ÆóÈÖÌܤËŤ¤) # # S=111111 # MX=3 (111111¤¬°ìÈÖŤ¤) # MN=FALSE (2ÈÖÌܤËû¤¤¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤) # # S=10 # MX=FALSE (1ÈÖŤ¤¤Î¤¬Â¸ºß¤·¤Ê¤¤) # MX=FALSE (2ÈÖÌܤËû¤¤¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤) # # '0¤È1¤Î¤ß¤Ç¥é¥ó¥À¥à¤ËÀ¸À®¤·¤¿Ê¸»úÎóS¤¬¤¢¤ë Ťµ¤Ï2<=S<=1000¤Ç¤¢¤ë 11001010110100011001011011111111111111000000000010111000000 Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢Â¾¤ÎϢ³¤¹¤ëʸ»úÎó¤è¤ê¤â°ìÈÖŤ¤Ê¸»úÎó¤òMX Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢¥ËÈÖÌܤËû¤¤Ê¸»úÎó¤òMN ¤È¤·¤¿¤È¤­¤ÎMX¤ÈMN¤òµá¤á¤è ¸«Åö¤¿¤é¤Ê¤¤¾ì¹ç¤ÏFALSE¤ò½ÐÎϤ·¤í' :- '0¤È1¤Î¤ß¤Ç¥é¥ó¥À¥à¤ËÀ¸À®¤·¤¿Ê¸»úÎóS¤¬¤¢¤ë'(_ʸ»úÎó), forall('Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢Â¾¤ÎϢ³¤¹¤ëʸ»úÎó¤è¤ê¤â°ìÈÖŤ¤Ê¸»úÎó¤òMX Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢¥ËÈÖÌܤËû¤¤Ê¸»úÎó¤òMN ¤È¤·¤¿¤È¤­¤ÎMX¤ÈMN¤òµá¤á¤è ¸«Åö¤¿¤é¤Ê¤¤¾ì¹ç¤ÏFALSE¤ò½ÐÎϤ·¤í'(_ʸ»úÎó,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó), write('S=%t\nMX=%t,MN=%t\n',[_ʸ»úÎó,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó])),!. '0¤È1¤Î¤ß¤Ç¥é¥ó¥À¥à¤ËÀ¸À®¤·¤¿Ê¸»úÎóS¤¬¤¢¤ë Ťµ¤Ï2<=S<=1000¤Ç¤¢¤ë 11001010110100011001011011111111111111000000000010111000000 Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢Â¾¤ÎϢ³¤¹¤ëʸ»úÎó¤è¤ê¤â°ìÈÖŤ¤Ê¸»úÎó¤òMX Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢¥ËÈÖÌܤËû¤¤Ê¸»úÎó¤òMN ¤È¤·¤¿¤È¤­¤ÎMX¤ÈMN¤òµá¤á¤è ¸«Åö¤¿¤é¤Ê¤¤¾ì¹ç¤ÏFALSE¤ò½ÐÎϤ·¤í' :- write('FALSE\n'). '0¤È1¤Î¤ß¤Ç¥é¥ó¥À¥à¤ËÀ¸À®¤·¤¿Ê¸»úÎóS¤¬¤¢¤ë'(_ʸ»úÎó) :- R is random(999) + 2, findall(_0¤Þ¤¿¤Ï1,( between(2,R,_), _0¤Þ¤¿¤Ï1 is random(3341) mod 2), _0¤Þ¤¿¤Ï1¤Ê¤é¤Ó), atomic_list_concat(_0¤Þ¤¿¤Ï1¤Ê¤é¤Ó,_ʸ»úÎó). 'Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢Â¾¤ÎϢ³¤¹¤ëʸ»úÎó¤è¤ê¤â°ìÈÖŤ¤Ê¸»úÎó¤òMX Ʊ¤¸Ê¸»ú¤ÇϢ³¤·¤¿Ê¸»úÎó¤ÎÆâ¡¢¥ËÈÖÌܤËû¤¤Ê¸»úÎó¤òMN ¤È¤·¤¿¤È¤­¤ÎMX¤ÈMN¤òµá¤á¤è ¸«Åö¤¿¤é¤Ê¤¤¾ì¹ç¤ÏFALSE¤ò½ÐÎϤ·¤í'(_ʸ»úÎó,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó) :- Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó¤òÆÀ¤ë(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó), ºÇĹʸ»úÎó¤Èû¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó). Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó¤òÆÀ¤ë(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó) :- findall([_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô],( Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô)), _Ϣ³¤·¤¿Ê¸»úÎó_ʸ»ú¿ô¤Ê¤é¤Ó). Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô) :- '0¤ÎϢ³¤·¤¿¤Îʸ»úÎó'(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô). Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô) :- '1¤ÎϢ³¤·¤¿¤Îʸ»úÎó¤Èʸ»ú¿ô'(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô). '0¤ÎϢ³¤·¤¿¤Îʸ»úÎó'(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô) :- sub_atom(_ʸ»úÎó,_³«»ÏÅÀ,_ʸ»ú¿ô,_»Ä¤êʸ»ú¿ô,_Ϣ³¤·¤¿Ê¸»úÎó), Á°¸å¤Ë0¤Îʸ»ú¤¬¤Ê¤¤(_ʸ»úÎó,_³«»ÏÅÀ,_ʸ»ú¿ô,_»Ä¤êʸ»ú¿ô), forall(sub_atom(_Ϣ³¤·¤¿Ê¸»úÎó,_,1,_,_ʸ»ú),_ʸ»ú='0'). '1¤ÎϢ³¤·¤¿¤Îʸ»úÎó'(_ʸ»úÎó,_Ϣ³¤·¤¿Ê¸»úÎó,_ʸ»ú¿ô) :- sub_atom(_ʸ»úÎó,_³«»ÏÅÀ,_ʸ»ú¿ô,_»Ä¤êʸ»ú¿ô,_Ϣ³¤·¤¿Ê¸»úÎó), Á°¸å¤Ë0¤Îʸ»ú¤¬¤Ê¤¤(_ʸ»úÎó,_³«»ÏÅÀ,_ʸ»ú¿ô,_»Ä¤êʸ»ú¿ô), forall(sub_atom(_Ϣ³¤·¤¿Ê¸»úÎó,_,1,_,_ʸ»ú),_ʸ»ú='1'). Á°¸å¤Ë0¤Îʸ»ú¤¬¤Ê¤¤(_ʸ»úÎó,_³«»ÏÅÀ,_ʸ»ú¿ô) :- succ(_³«»ÏÅÀ_1,_³«»ÏÅÀ), _³«»ÏÅÀ_2 is _³«»ÏÅÀ + _ʸ»ú¿ô, \+(sub_atom(_ʸ»úÎó,_³«»ÏÅÀ_1,1,_,'0')), \+(sub_atom(_ʸ»úÎó,_³«»ÏÅÀ_2,1,_,'0')). Á°¸å¤Ë1¤Îʸ»ú¤¬¤Ê¤¤(_ʸ»úÎó,_³«»ÏÅÀ,_ʸ»ú¿ô) :- succ(_³«»ÏÅÀ_1,_³«»ÏÅÀ), _³«»ÏÅÀ_2 is _³«»ÏÅÀ + _ʸ»ú¿ô, \+(sub_atom(_ʸ»úÎó,_³«»ÏÅÀ_1,1,_,'1')), \+(sub_atom(_ʸ»úÎó,_³«»ÏÅÀ_2,1,_,'1')). ºÇĹʸ»úÎó¤Èû¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤÎʸ»úÎó) :- ºÇĹʸ»ú¿ô¤Èû¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ºÇĹʸ»ú¿ô,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô), ºÇĹʸ»ú¿ô¤Èû¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»úÎó(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ºÇĹʸ»ú¿ô,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»úÎó). ºÇĹʸ»ú¿ô¤Èû¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ºÇĹʸ»ú¿ô,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô) :- ʸ»úÎóĹ¤Ê¤é¤Ó(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ʸ»úÎóĹ¤Ê¤é¤Ó), sort(_ʸ»úÎóĹ¤Ê¤é¤Ó,_À°Îó¤·¤¿Ê¸»úÎóĹ¤Ê¤é¤Ó), nth1(2,_À°Îó¤·¤¿Ê¸»úÎóĹ¤Ê¤é¤Ó,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô), append(_,[_ºÇĹʸ»ú¿ô],_À°Îó¤·¤¿Ê¸»úÎóĹ¤Ê¤é¤Ó). ʸ»ú¿ô¤Ê¤é¤Ó(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ʸ»ú¿ô¤Ê¤é¤Ó) :- findall(_ʸ»ú¿ô,( member([_,_ʸ»ú¿ô],_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»úÎó¿ô¤Ê¤é¤Ó)), _ʸ»ú¿ô¤Ê¤é¤Ó). ºÇĹʸ»ú¿ô¤Èû¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»úÎó(_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó,_ºÇĹʸ»ú¿ô,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô,_ºÇĹʸ»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»úÎó) :- member([_ºÇĹʸ»úÎó,_ºÇĹʸ»ú¿ô],_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó), member([_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»úÎó,_û¤¤Êý¤«¤éÆóÈÖÌܤËû¤¤Ê¸»ú¿ô],_Ϣ³¤·¤¿Ê¸»úÎó¤Èʸ»ú¿ô¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part5 #27 # # n¤³¤Î³Ñº½Åü¤Ç¤Ç¤­¤ëľÊýÂΤϲ¿¼ïÎढ¤ë¤«¡© # 'n¤³¤Î³Ñº½Åü¤Ç¤Ç¤­¤ëľÊýÂΤϲ¿¼ïÎढ¤ë¤«¡©'(_n,_²¿¼ïÎà) :- 'n¤³¤Î³Ñº½Åü¤Ç¤Ç¤­¤ëľÊýÂΤÏ'(_n,_ľÊýÂΤʤé¤Ó), length(_ľÊýÂΤʤé¤Ó,_²¿¼ïÎà). 'n¤³¤Î³Ñº½Åü¤Ç¤Ç¤­¤ëľÊýÂΤÏ'(_n,_ľÊýÂΤʤé¤Ó) :- findall(M,between(1,_n,M),L), findall([_ÊÕ1,_ÊÕ2,_ÊÕ3],( ľÊýÂÎ(L,_n,_ÊÕ1,_ÊÕ2,_ÊÕ3)),_ľÊýÂΤʤé¤Ó). ľÊýÂÎ(L,_n,_ÊÕ1,_ÊÕ2,_ÊÕ3) :- '_ÊÕ1,_ÊÕ2,_ÊÕ3¤òÁªÂò'(L,_ÊÕ1,_ÊÕ2,_ÊÕ3), '_ÊÕ1,_ÊÕ2,_ÊÕ3¤Ï¾º½ç'(_ÊÕ1,_ÊÕ2,_ÊÕ3), _n is _ÊÕ1 * _ÊÕ2 + _ÊÕ3. '_ÊÕ1,_ÊÕ2,_ÊÕ3¤òÁªÂò'(L,_ÊÕ1,_ÊÕ2,_ÊÕ3) :- select(_ÊÕ1,L,R1), select(_ÊÕ2,L,R2), select(_ÊÕ3,L,R3). '_ÊÕ1,_ÊÕ2,_ÊÕ3¤Ï¾º½ç'(_ÊÕ1,_ÊÕ2,_ÊÕ3) :- _ÊÕ1 =< _ÊÕ2, _ÊÕ2 =< _ÊÕ3. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1411227287/18 # Í¥Àè½ç°Ì¤¬Ê¸Ì®¤È¤·¤ÆÌ·½â¡¦º®Í𤷤Ƥ¤¤ë¤è¤¦¤À¡¢Í¥ÀèÅ٤ι⤤½ç¤Ë # # 5¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê # ½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í # 4¤È6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤ò½ÐÎϤ·¤í # 4¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizz¤ò½ÐÎϤ·¤í # 6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏBuzz¤ò½ÐÎϤ·¤í # ¤½¤ì°Ê³°¤Ï¿ô»ú¤ò½ÐÎϤ·¤í # # ¤È¤¤¤¦¤³¤È¤«¡© # '5¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê ½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í 4¤È6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤ò½ÐÎϤ·¤í 4¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizz¤ò½ÐÎϤ·¤í 6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏBuzz¤ò' :- between(1,100,_¿ô»ú), '5¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê ½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í 4¤È6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤ò½ÐÎϤ·¤í 4¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizz¤ò½ÐÎϤ·¤í 6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏBuzz¤ò½ÐÎϤ·¤í ¤½¤ì°Ê³°¤Ï¿ô»ú¤ò½ÐÎϤ·¤í'(_¿ô»ú), _¿ô»ú = 100. '5¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê ½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í 4¤È6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤ò½ÐÎϤ·¤í 4¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizz¤ò½ÐÎϤ·¤í 6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏBuzz¤ò½ÐÎϤ·¤í ¤½¤ì°Ê³°¤Ï¿ô»ú¤ò½ÐÎϤ·¤í'(_¿ô»ú) :- '5¤Ç³ä¤êÀڤ줿»þ¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê'(_¿ô»ú,_ɽ¼¨), '5¤Ç¤Ï³ä¤êÀڤ줺¡¢Fizz¡¢Buzz¡¢¤Þ¤¿¤ÏFizzBuzz¤òɽ¼¨¤¹¤ë¤Î¤Ï4¤Þ¤¿¤Ï6¤Ç³ä¤êÀÚ¤ì¤ë»þ'(_¿ô»ú,_ɽ¼¨), '¤½¤ì°Ê³°¤Ï¿ô»ú¤ò'(_¿ô»ú,_ɽ¼¨), '½ÐÎϤ·¤í(½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í)'(_ɽ¼¨). '5¤Ç³ä¤êÀڤ줿»þ¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê'(_¿ô»ú,'') :- '5¤Ç³ä¤êÀڤ줿'(_¿ô»ú),!. '5¤Ç³ä¤êÀڤ줿»þ¤Ï²¿¤â½ÐÎϤ¹¤ë¤Ê'(_,_). '5¤Ç¤Ï³ä¤êÀڤ줺¡¢Fizz¡¢Buzz¡¢¤Þ¤¿¤ÏFizzBuzz¤òɽ¼¨¤¹¤ë¤Î¤Ï4¤Þ¤¿¤Ï6¤Ç³ä¤êÀÚ¤ì¤ë»þ'(_¿ô»ú,_ɽ¼¨) :- '5¤Ç¤Ï³ä¤êÀڤ줺¡¢4¤È6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤ò'(_¿ô»ú,_ɽ¼¨),!. '5¤Ç¤Ï³ä¤êÀڤ줺¡¢Fizz¡¢Buzz¡¢¤Þ¤¿¤ÏFizzBuzz¤òɽ¼¨¤¹¤ë¤Î¤Ï4¤Þ¤¿¤Ï6¤Ç³ä¤êÀÚ¤ì¤ë»þ'(_¿ô»ú,_ɽ¼¨) :- '5¤Ç¤Ï³ä¤êÀڤ줺¡¢4¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizz¤ò'(_¿ô»ú,_ɽ¼¨),!. '5¤Ç¤Ï³ä¤êÀڤ줺¡¢Fizz¡¢Buzz¡¢¤Þ¤¿¤ÏFizzBuzz¤òɽ¼¨¤¹¤ë¤Î¤Ï4¤Þ¤¿¤Ï6¤Ç³ä¤êÀÚ¤ì¤ë»þ'(_¿ô»ú,_ɽ¼¨) :- '5¤Ç¤Ï³ä¤êÀڤ줺¡¢6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏBuzz¤ò'(_¿ô»ú,_ɽ¼¨),!. '5¤Ç¤Ï³ä¤êÀڤ줺¡¢Fizz¡¢Buzz¡¢¤Þ¤¿¤ÏFizzBuzz¤òɽ¼¨¤¹¤ë¤Î¤Ï4¤Þ¤¿¤Ï6¤Ç³ä¤êÀÚ¤ì¤ë»þ'(_,_). '5¤Ç¤Ï³ä¤êÀڤ줺¡¢4¤È6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤ò'(_¿ô»ú,'FizzBuzz') :- '5¤Ç¤Ï³ä¤êÀڤ줺'(_¿ô»ú), '4¤È6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú),!. '5¤Ç¤Ï³ä¤êÀڤ줺¡¢4¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizz¤ò'(_¿ô»ú,'Fizz') :- '5¤Ç¤Ï³ä¤êÀڤ줺¡¢4¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú). '5¤Ç¤Ï³ä¤êÀڤ줺¡¢6¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏBuzz¤ò'(_¿ô»ú,'Buzz') :- '5¤Ç¤Ï³ä¤êÀڤ줺¡¢6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú). '5¤Ç¤Ï³ä¤êÀڤ줺¡¢4¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú) :- '5¤Ç¤Ï³ä¤êÀڤ줺'(_¿ô»ú), '4¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú), \+('6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú)). '5¤Ç¤Ï³ä¤êÀڤ줺¡¢6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú) :- '5¤Ç¤Ï³ä¤êÀڤ줺'(_¿ô»ú), '6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú), \+('4¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú)). '5¤Ç³ä¤êÀڤ줿'(_¿ô»ú) :- 0 is _¿ô»ú mod 5. '5¤Ç¤Ï³ä¤êÀڤ줺'(_¿ô»ú) :- \+(0 is _¿ô»ú mod 5). '4¤È6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú) :- '4¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú), '6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú). '4¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú) :- 0 is _¿ô»ú mod 4. '6¤Ç³ä¤êÀÚ¤ì¤ë'(_¿ô»ú) :- 0 is _¿ô»ú mod 6. '¤½¤ì°Ê³°¤Ï¿ô»ú¤ò'(_¿ô»ú,V) :- var(V), _¿ô»ú=V,!. '¤½¤ì°Ê³°¤Ï¿ô»ú¤ò'(_,_). '½ÐÎϤ·¤í(½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í)'('') :- !. '½ÐÎϤ·¤í(½ÐÎϤ´¤È¤Ë²þ¹Ô¤âÆþ¤ì¤í)'(_ɽ¼¨) :- writef('%t\n',[_ɽ¼¨]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1402622093/884 # ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò½ÐÎϤ»¤è # # ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò½ÐÎϤ»¤è(N,M) :- ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò(N,M,_ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíÏÂ), ½ÐÎϤ»¤è(_ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíÏÂ). ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò(N,M,_ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíÏÂ) :- ÁíϤò(_Ìó¿ô,( ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤Î(N,M,_À°¿ô), Ìó¿ô¤Î(_À°¿ô,_Ìó¿ô)),_ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíÏÂ). ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤Î(N,M,_À°¿ô) :- between(N,M,_À°¿ô). Ìó¿ô¤Î(_À°¿ô,_Ìó¿ô) :- between(1,_À°¿ô,_Ìó¿ô), 0 is _À°¿ô mod _Ìó¿ô. ÁíϤò(A,B,C) :- findsum(A,B,C). ½ÐÎϤ»¤è(_Ìó¿ô¤ÎÁíÏÂ) :- writef('%t\n',[_Ìó¿ô¤ÎÁíÏÂ]). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1402622093/884 # ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò½ÐÎϤ»¤è # # ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò½ÐÎϤ»¤è(N,M) :- ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò(N,M,_Ìó¿ô¤ÎÁíÏÂ), ½ÐÎϤ»¤è(_Ìó¿ô¤ÎÁíÏÂ). ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤ÎÁíϤò(N,M,_Ìó¿ô¤ÎÁíÏÂ) :- ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤Î(N,M,_Ìó¿ô¤Î), ÁíϤò(_Ìó¿ô¤Î,_Ìó¿ô¤ÎÁíÏÂ). ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô¤Î(N,M,_Ìó¿ô¤Î) :- findall(_Ìó¿ô,ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô(N,M,_Ìó¿ô),_Ìó¿ô¤Î). ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤ÎÌó¿ô(N,M,_Ìó¿ô) :- ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤Î(N,M,_À°¿ô), Ìó¿ô(_À°¿ô,_Ìó¿ô). ºÇ¾®ÃÍN¤«¤éºÇÂçÃÍM¤Þ¤Ç¤Î(N,M,_À°¿ô) :- between(N,M,_À°¿ô). Ìó¿ô(_À°¿ô,_Ìó¿ô) :- between(1,_À°¿ô,_Ìó¿ô), 0 is _À°¿ô mod _Ìó¿ô. ÁíϤò(_Ìó¿ô¤Î,_Ìó¿ô¤ÎÁíÏÂ) :- sum_list(_Ìó¿ô¤Î,_Ìó¿ô¤ÎÁíÏÂ). ½ÐÎϤ»¤è(_Ìó¿ô¤ÎÁíÏÂ) :- writef('%t\n',[_Ìó¿ô¤ÎÁíÏÂ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ÌäÂêʸ # ¹â¶¶·¯¤Î¹ñ¤Ç¤Ï¡¢N ¼ïÎà¤Î¹Å²ß¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ 1 ÈÖÌܤιŲߤβÁÃÍ¤Ï 1 ±ß¤Ç¤¹¡£ k ÈÖÌܤιŲߤβÁÃͤϡ¢k¡Ý1 ÈÖÌܤιŲߤΠ10 Çܤ¢¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢2 ÈÖÌÜ¤Î¹Å²ß¤Ï 10 ±ß¤Î²ÁÃͤ¬¤¢¤ê¡¢5 ÈÖÌÜ¤Î¹Å²ß¤Ï 10000 ±ß¤Î²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£ # # ¹â¶¶·¯¤Ï¡¢¤ªÄà¤ê¤¬·ù¤¤¤Ç¤¹¡£¤Ê¤Î¤Ç¡¢½ÐÍè¤ë¤À¤±¤Ô¤Ã¤¿¤ê¤Î¶â³Û¤ÇÇ㤤ʪ¤¬¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¹â¶¶·¯¤Ï¡¢º£»ý¤Ã¤Æ¤¤¤ë¹Å²ß¤Ç¡¢²¿¼ïÎà¤Î¶â³Û¤¬Ê§¤¨¤ë¤«¤òÄ´¤Ù¤¿¤¤¤È»×¤¤¤Þ¤·¤¿¡£ # # ¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ # # ÆþÎÏ # ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤ë¡£ # # N # A1 # A2 # : # AN # 1 ¹ÔÌܤˤϡ¢¹Å²ß¤Î¼ïÎà¿ô N(1¡åN¡å50) ¤¬¡¢1 ¹Ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ # 2 ¹ÔÌܤ«¤é N ¹Ô¤Ç¤Ï¡¢¹â¶¶·¯¤¬³Æ¹Å²ß¤ò²¿Ëç»ý¤Ã¤Æ¤¤¤ë¤«¤¬Í¿¤¨¤é¤ì¤ë¡£ ¤³¤Î¤¦¤Á i(1¡åi¡åN) ¹ÔÌܤǤϡ¢ i ÈÖÌܤιŲߤò¡¢¹â¶¶·¯¤¬²¿Ëç»ý¤Ã¤Æ¤¤¤ë¤«¤òɽ¤¹À°¿ô Ai(0¡åAi¡å50000)¤¬Í¿¤¨¤é¤ì¤ë¡£ # ½ÐÎÏ # ¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤Î¼ïÎà¿ô¤ò¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò 1 ¹Ô¤Ç½ÐÎϤ»¤è¡£½ÐÎϤÎËöÈø¤Ï²þ¹Ô¤ò¤¤¤ì¤ë¤³¤È¡£ # # ÆþÎÏÎã1 # 2 # 2 # 1 # ½ÐÎÏÎã1 # 5 # ʧ¤¨¤ë¶â³Û¤Ï¡¢1 ±ß, 2 ±ß, 10 ±ß, 11 ±ß, 12 ±ß¤Î 5 Ä̤ê¤È¤Ê¤ê¤Þ¤¹¡£ # # 0 ±ß¤Ï´Þ¤Þ¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏÎã2 # 2 # 32 # 3 # ½ÐÎÏÎã2 # 62 # 1 ±ß¤«¤é 62 ±ß¤Î 62 Ä̤ê¤Î¶â³Û¤ò»Ùʧ¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ # # ÆþÎÏÎã3 # 4 # 12 # 3 # 7 # 34 # ½ÐÎÏÎã3 # 12039 # ÆþÎÏÎã4 # 10 # 1234 # 2 # 857 # 3858 # 1 # 5000 # 32 # 4 # 1 # 857 # ½ÐÎÏÎã4 # 969347336 # 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # '¹â¶¶·¯¤Î¹ñ¤Ç¤Ï¡¢N ¼ïÎà¤Î¹Å²ß¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ 1 ÈÖÌܤιŲߤβÁÃÍ¤Ï 1 ±ß¤Ç¤¹¡£ k ÈÖÌܤιŲߤβÁÃͤϡ¢k¡¾1 ÈÖÌܤιŲߤΠ10 Çܤ¢¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢2 ÈÖÌÜ¤Î¹Å²ß¤Ï 10 ±ß¤Î²ÁÃͤ¬¤¢¤ê¡¢5 ÈÖÌÜ¤Î¹Å²ß¤Ï 10000 ±ß¤Î²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£ ¹â¶¶·¯¤Ï¡¢¤ªÄà¤ê¤¬·ù¤¤¤Ç¤¹¡£¤Ê¤Î¤Ç¡¢½ÐÍè¤ë¤À¤±¤Ô¤Ã¤¿¤ê¤Î¶â³Û¤ÇÇ㤤ʪ¤¬¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¹â¶¶·¯¤Ï¡¢º£»ý¤Ã¤Æ¤¤¤ë¹Å²ß¤Ç¡¢²¿¼ïÎà¤Î¶â³Û¤¬Ê§¤¨¤ë¤«¤òÄ´¤Ù¤¿ ¤¤¤È»×¤¤¤Þ¤·¤¿¡£ ¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿ ¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£' :- ²¿¼ïÎफ¤È¤½¤ì¤¾¤ì¤Î¹Å²ß¤ÎËç¿ô¤òÆÀ¤ë(_²¿¼ïÎà,_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó), ºÇÂ粿Ä̤ê(_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó,_ºÇÂ粿Ä̤ê), ºÇÂç²ÄǽÀ­¤«¤é½ÅÊ£¤òº¹¤·°ú¤¯(_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó,_ºÇÂ粿Ä̤ê,_²¿Ä̤ê), '¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_²¿Ä̤ê). ²¿¼ïÎफ¤È¤½¤ì¤¾¤ì¤Î¹Å²ß¤ÎËç¿ô¤òÆÀ¤ë(_²¿¼ïÎà,_Ëç¿ô¤Ê¤é¤Ó) :- ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_²¿¼ïÎà), findall([M,_À°¿ô],( between(1,_²¿¼ïÎà,N), succ(M,N), ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô)), _Ëç¿ô¤Ê¤é¤Ó). ºÇÂ粿Ä̤ê(_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó,_ºÇÂ粿Ä̤ê) :- ºÇÂ粿Ä̤ê(_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó,1,_ºÇÂ粿Ä̤ê). ºÇÂ粿Ä̤ê([],_ºÇÂ粿Ä̤ê,_ºÇÂ粿Ä̤ê). ºÇÂ粿Ä̤ê([[_,0]|R]],_ºÇÂ粿Ä̤ê,_ºÇÂ粿Ä̤ê) :- ºÇÂ粿Ä̤ê(R,_ºÇÂ粿Ä̤ê,_ºÇÂ粿Ä̤ê),!. ºÇÂ粿Ä̤ê([[A,B]|R],N,_ºÇÂ粿Ä̤ê) :- N_2 is B * N, ºÇÂ粿Ä̤ê(R,N_2,_ºÇÂ粿Ä̤ê). ºÇÂç²ÄǽÀ­¤«¤é½ÅÊ£¤òº¹¤·°ú¤¯(_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó,_ºÇÂ粿Ä̤ê,_²¿Ä̤ê) :- findsum(_º¹¤·°ú¤­¿ô,( append(L1,[[_¼ïÎà,_Ëç¿ô]|L2],_¼ïÎàÊÌËç¿ô¤Ê¤é¤Ó), º¹¤·°ú¤­¿ô(_¼ïÎà,_Ëç¿ô,L1,_º¹¤·°ú¤­¿ô)), _½ÅÊ£º¹¤·°ú¤­¿ô), _²¿Ä̤ê is _ºÇÂ粿Ä̤ê - _½ÅÊ£º¹¤·°ú¤­¿ô. º¹¤·°ú¤­¿ô(_¼ïÎà_1,_Ëç¿ô_1,L1,_º¹¤·°ú¤­¿ô)) :- findsum(_º¹¤·°ú¤­¿ô_3,( member([_¼ïÎà,_Ëç¿ô],L1), _º¹¤·°ú¤­¿ô_1 is _Ëç¿ô_1 // (_¼ïÎà_1 // _¼ïÎà), _º¹¤·°ú¤­¿ô_2 is _Ëç¿ô // (_¼ïÎà_1 // _¼ïÎà), º¹¤·°ú¤­¿ôÁªÂò(_º¹¤·°ú¤­¿ô_1,_º¹¤·°ú¤­¿ô_2,_º¹¤·°ú¤­¿ô_3)), _º¹¤·°ú¤­¿ô). º¹¤·°ú¤­¿ôÁªÂò(_º¹¤·°ú¤­¿ô_1,_º¹¤·°ú¤­¿ô_2,_º¹¤·°ú¤­¿ô_1) :- _º¹¤·°ú¤­¿ô_1 =< _º¹¤·°ú¤­¿ô_2,!. º¹¤·°ú¤­¿ôÁªÂò(_º¹¤·°ú¤­¿ô_1,_º¹¤·°ú¤­¿ô_2,_º¹¤·°ú¤­¿ô_2). '¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_²¿Ä̤ê) :- '1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_²¿Ä̤ê),!. '¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_²¿Ä̤ê) :- writef('%t²¿Ä̤ê\n',[_²¿Ä̤ê]). '1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_²¿Ä̤ê) :- _²¿Ä̤ê >= 1000000007, _²¿Ä̤ê¤ò1000000007¤Ç³ä¤Ã¤¿Í¾¤ê is _²¿Ä̤ê mod 1000000007, writef('%t²¿Ä̤ê\n',[_²¿Ä̤ê¤ò1000000007¤Ç³ä¤Ã¤¿Í¾¤ê]). ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô) :- ɸ½àÆþÎϤ«¤éʸ»úÎó¤òÆÀ¤ë(_ʸ»úÎó), À°¿ôÆþÎϸ¡ºº(_ʸ»úÎó,_À°¿ô),!. ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô) :- ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô). À°¿ôÆþÎϸ¡ºº(_ʸ»úÎó,_À°¿ô) :- catch(read_term_from_atom(_ʸ»úÎó,_À°¿ô,[]),E,fail), integer(_À°¿ô),!. ɸ½àÆþÎϤ«¤éʸ»úÎó¤òÆÀ¤ë(_ʸ»úÎó) :- findall(_ʸ»ú,( ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú), (½ªÎ»Ê¸»ú(_ʸ»ú),!,fail;true)),Chars), atom_chars(_ʸ»úÎó,Chars). ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú) :- get_char(_ʸ»ú). ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú) :- ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú). ½ªÎ»Ê¸»ú('\n'). ½ªÎ»Ê¸»ú(end_of_file). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ÌäÂêʸ # ¹â¶¶·¯¤Î¹ñ¤Ç¤Ï¡¢N ¼ïÎà¤Î¹Å²ß¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ 1 ÈÖÌܤιŲߤβÁÃÍ¤Ï 1 ±ß¤Ç¤¹¡£ k ÈÖÌܤιŲߤβÁÃͤϡ¢k¡Ý1 ÈÖÌܤιŲߤΠ10 Çܤ¢¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢2 ÈÖÌÜ¤Î¹Å²ß¤Ï 10 ±ß¤Î²ÁÃͤ¬¤¢¤ê¡¢5 ÈÖÌÜ¤Î¹Å²ß¤Ï 10000 ±ß¤Î²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£ # # ¹â¶¶·¯¤Ï¡¢¤ªÄà¤ê¤¬·ù¤¤¤Ç¤¹¡£¤Ê¤Î¤Ç¡¢½ÐÍè¤ë¤À¤±¤Ô¤Ã¤¿¤ê¤Î¶â³Û¤ÇÇ㤤ʪ¤¬¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¹â¶¶·¯¤Ï¡¢º£»ý¤Ã¤Æ¤¤¤ë¹Å²ß¤Ç¡¢²¿¼ïÎà¤Î¶â³Û¤¬Ê§¤¨¤ë¤«¤òÄ´¤Ù¤¿¤¤¤È»×¤¤¤Þ¤·¤¿¡£ # # ¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ # # ÆþÎÏ # ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤ë¡£ # # N # A1 # A2 # : # AN # 1 ¹ÔÌܤˤϡ¢¹Å²ß¤Î¼ïÎà¿ô N(1¡åN¡å50) ¤¬¡¢1 ¹Ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ # 2 ¹ÔÌܤ«¤é N ¹Ô¤Ç¤Ï¡¢¹â¶¶·¯¤¬³Æ¹Å²ß¤ò²¿Ëç»ý¤Ã¤Æ¤¤¤ë¤«¤¬Í¿¤¨¤é¤ì¤ë¡£ ¤³¤Î¤¦¤Á i(1¡åi¡åN) ¹ÔÌܤǤϡ¢ i ÈÖÌܤιŲߤò¡¢¹â¶¶·¯¤¬²¿Ëç»ý¤Ã¤Æ¤¤¤ë¤«¤òɽ¤¹À°¿ô Ai(0¡åAi¡å50000)¤¬Í¿¤¨¤é¤ì¤ë¡£ # ½ÐÎÏ # ¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤Î¼ïÎà¿ô¤ò¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò 1 ¹Ô¤Ç½ÐÎϤ»¤è¡£½ÐÎϤÎËöÈø¤Ï²þ¹Ô¤ò¤¤¤ì¤ë¤³¤È¡£ # # ÆþÎÏÎã1 # 2 # 2 # 1 # ½ÐÎÏÎã1 # 5 # ʧ¤¨¤ë¶â³Û¤Ï¡¢1 ±ß, 2 ±ß, 10 ±ß, 11 ±ß, 12 ±ß¤Î 5 Ä̤ê¤È¤Ê¤ê¤Þ¤¹¡£ # # 0 ±ß¤Ï´Þ¤Þ¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏÎã2 # 2 # 32 # 3 # ½ÐÎÏÎã2 # 62 # 1 ±ß¤«¤é 62 ±ß¤Î 62 Ä̤ê¤Î¶â³Û¤ò»Ùʧ¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ # # ÆþÎÏÎã3 # 4 # 12 # 3 # 7 # 34 # ½ÐÎÏÎã3 # 12039 # ÆþÎÏÎã4 # 10 # 1234 # 2 # 857 # 3858 # 1 # 5000 # 32 # 4 # 1 # 857 # ½ÐÎÏÎã4 # 969347336 # 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # '¹â¶¶·¯¤Î¹ñ¤Ç¤Ï¡¢N ¼ïÎà¤Î¹Å²ß¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ 1 ÈÖÌܤιŲߤβÁÃÍ¤Ï 1 ±ß¤Ç¤¹¡£ k ÈÖÌܤιŲߤβÁÃͤϡ¢k¡¾1 ÈÖÌܤιŲߤΠ10 Çܤ¢¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢2 ÈÖÌÜ¤Î¹Å²ß¤Ï 10 ±ß¤Î²ÁÃͤ¬¤¢¤ê¡¢5 ÈÖÌÜ¤Î¹Å²ß¤Ï 10000 ±ß¤Î²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£ ¹â¶¶·¯¤Ï¡¢¤ªÄà¤ê¤¬·ù¤¤¤Ç¤¹¡£¤Ê¤Î¤Ç¡¢½ÐÍè¤ë¤À¤±¤Ô¤Ã¤¿¤ê¤Î¶â³Û¤ÇÇ㤤ʪ¤¬¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¹â¶¶·¯¤Ï¡¢º£»ý¤Ã¤Æ¤¤¤ë¹Å²ß¤Ç¡¢²¿¼ïÎà¤Î¶â³Û¤¬Ê§¤¨¤ë¤«¤òÄ´¤Ù¤¿ ¤¤¤È»×¤¤¤Þ¤·¤¿¡£ ¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿ ¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£' :- ²¿¼ïÎफ¤È¤½¤ì¤¾¤ì¤Î¹Å²ß¤ÎËç¿ô¤òÆÀ¤ë(_²¿¼ïÎà,_Ëç¿ô¤Ê¤é¤Ó), ¹Å²ß¤Î¹ç·×¶â³Û¼ïÎà(_Ëç¿ô¤Ê¤é¤Ó,_²¿Ä̤ê), '¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_²¿Ä̤ê). ²¿¼ïÎफ¤È¤½¤ì¤¾¤ì¤Î¹Å²ß¤ÎËç¿ô¤òÆÀ¤ë(_²¿¼ïÎà,_Ëç¿ô¤Ê¤é¤Ó) :- ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_²¿¼ïÎà), findall(_À°¿ô,( between(1,_²¿¼ïÎà,_), ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô)), _Ëç¿ô¤Ê¤é¤Ó). ¹Å²ß¤Î¹ç·×¶â³Û¼ïÎà(_Ëç¿ô¤Ê¤é¤Ó,_²¿Ä̤ê) :- findall(_¹ç·×¶â³Û,¹ç·×¶â³Û(0,_Ëç¿ô¤Ê¤é¤Ó,0,_¹ç·×¶â³Û),L1), sort(L1,L2), length(L2,_²¿Ä̤ê). ¹ç·×¶â³Û(N,[],_¹ç·×¶â³Û,_¹ç·×¶â³Û). ¹ç·×¶â³Û(N,[_Ëç¿ô|R],_¹ç·×¶â³Û_1,_¹ç·×¶â³Û) :- '1¤«¤éËç¿ôʬ¤òÁý¤ä¤·¤Æ¹ç·×¶â³Û¤òÈó·èÄêÀ­¤Ë·×»»¤·¤Æ¤¤¤¯'(N,_Ëç¿ô,_¤´¶â³Û¶â³Û_1,_¹ç·×¶â³Û_2), succ(N,N_2), ¹ç·×¶â³Û(N_2,R,_¹ç·×¶â³Û_2,_¹ç·×¶â³Û). '1¤«¤éËç¿ôʬ¤òÁý¤ä¤·¤Æ¹ç·×¶â³Û¤òÈó·èÄêŪ¤Ë·×»»¤·¤Æ¤¤¤¯'(N,_Ëç¿ô,_¹ç·×¶â³Û_1,_¹ç·×¶â³Û_2) :- between(1,_Ëç¿ô,M), _¹ç·×¶â³Û_2 is _¹ç·×¶â³Û_1 + 10 ^ N * M. '¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_¼ïÎà) :- '1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_¼ïÎà),!. '¹â¶¶·¯¤¬Ê§¤¨¤ë¶â³Û¤¬²¿Ä̤ꤢ¤ë¤«¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢¤³¤ì¤ÏËÄÂç¤Ê¿ô¤È¤Ê¤ë¤¿¤á¡¢ 1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_¼ïÎà) :- writef('%t¼ïÎà\n',[_¼ïÎà]). '1000000007 °Ê¾å¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ 1000000007 ¤Ç³ä¤Ã¤¿Í¾¤ê¤ò½ÐÎϤ·¤Ê¤µ¤¤¡£'(_¼ïÎà) :- _¼ïÎà >= 1000000007, _¼ïÎà¤ò1000000007¤Ç³ä¤Ã¤¿Í¾¤ê is _¼ïÎà mod 1000000007, writef('%t¼ïÎà\n',[_¼ïÎà¤ò1000000007¤Ç³ä¤Ã¤¿Í¾¤ê]). ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô) :- ɸ½àÆþÎϤ«¤éʸ»úÎó¤òÆÀ¤ë(_ʸ»úÎó), À°¿ôÆþÎϸ¡ºº(_ʸ»úÎó,_À°¿ô),!. ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô) :- ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_À°¿ô). À°¿ôÆþÎϸ¡ºº(_ʸ»úÎó,_À°¿ô) :- catch(read_term_from_atom(_ʸ»úÎó,_À°¿ô,[]),E,fail), integer(_À°¿ô),!. ɸ½àÆþÎϤ«¤éʸ»úÎó¤òÆÀ¤ë(_ʸ»úÎó) :- findall(_ʸ»ú,( ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú), (½ªÎ»Ê¸»ú(_ʸ»ú),!,fail;true)),Chars), atom_chars(_ʸ»úÎó,Chars). ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú) :- get_char(_ʸ»ú). ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú) :- ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú). ½ªÎ»Ê¸»ú('\n'). ½ªÎ»Ê¸»ú(end_of_file). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ÌäÂêʸ # (21:13 Äɵ­)¡¡|A|=|B|=1¤Î¥±¡¼¥¹¤¬¥Æ¥¹¥ÈÃæ¤Ë°ì¤Ä´Þ¤Þ¤ì¤Æ¤¤¤Þ¤·¤¿¤Î¤Ç¡¢¥ê¥¸¥ã¥Ã¥¸¤ò¹Ô¤¤¤Þ¤¹¡£¤Ê¤ª¡¢¤³¤Î¥±¡¼¥¹¤ÇNO¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤Ë±Æ¶Á¤Ï¤¢¤ê¤Þ¤»¤ó¡£ # # ʸ»úÎó A ¤Îʸ»ú¤ò¤Á¤ç¤¦¤É 3 ²ó¥¹¥ï¥Ã¥×¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Ê¸»úÎó B ¤ËÊÑ´¹¤Ç¤­¤ë¤È¤­¡¢Æó¤Ä¤Îʸ»úÎó A, B ¤ò¡¢ÃçÎɤ·Ê¸»úÎó¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡£ # # ¥¹¥ï¥Ã¥×¤È¤Ï¡¢Ê¸»úÎó¤Ë´Þ¤Þ¤ì¤ë 2 ¤Ä¤Îʸ»ú¤ò¡¢Æþ¤ìÂØ¤¨¤ë¤³¤È¤ò»Ø¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢abc¤È¤¤¤¦Ê¸»úÎó¤Ç¤¢¤ì¤Ð¡¢a¤Èc¤òÆþ¤ìÂØ¤¨¤Æ¡¢cba¤Î¤è¤¦¤ËÊÑ´¹¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ # # aa¤Î¤è¤¦¤Êʸ»úÎó¤ËÂФ·¡¢ 1 ʸ»úÌܤÎa¤È¡¢ 2 ʸ»úÌܤÎa¤òÆþ¤ìÂØ¤¨¤ë¤³¤È¤Ïµö¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢Æ±¤¸¾ì½ê¤Îʸ»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ # # ʸ»úÎó A, B ¤¬Í¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢ÃçÎɤ·Ê¸»úÎó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤òȽÄꤷ¤Ê¤µ¤¤¡£ # # ÆþÎÏ # ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤ë¡£ # # A # B # 1 ¹ÔÌܤˤϡ¢Ê¸»úÎó A(2¡å|A|¡å1000) ¤¬Í¿¤¨¤é¤ì¤ë¡£ # 2 ¹ÔÌܤˤϡ¢Ê¸»úÎó B(|B|=|A|) ¤¬Í¿¤¨¤é¤ì¤ë¡£ # A, B ¶¦¤Ë¡¢¾®Ê¸»ú¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¤ß¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Êݾ㤵¤ì¤Æ¤¤¤ë¡£ # ½ÐÎÏ # Í¿¤¨¤é¤ì¤¿ 2 ¤Ä¤Îʸ»úÎ󤬡¢ÃçÎɤ·Ê¸»úÎó¤Ç¤¢¤ì¤ÐYES¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤ÐNO¤ò½ÐÎϤ»¤è¡£ ½ÐÎϤÎËöÈø¤Ë¤Ï²þ¹Ô¤ò¤¤¤ì¤ë¤³¤È¡£ # # ÆþÎÏÎã1 # abcdef # fedcba # ½ÐÎÏÎã1 # YES # ¤Þ¤º¡¢Ê¸»úÎó A ¤Îabcdef¤Îa¤Èf¤ò¥¹¥ï¥Ã¥×¤·¡¢fbcdea¤È¤·¤Þ¤¹¡£ # # ¼¡¤Ë¡¢b¤Èe¤ò¥¹¥ï¥Ã¥×¤·¡¢fecdba¤È¤·¤Þ¤¹¡£ # # ºÇ¸å¤Ë¡¢c¤Èd¤ò¥¹¥ï¥Ã¥×¤·¡¢fedcba¤È¤¹¤ë¤È¡¢Ê¸»úÎó B ¤È°ìÃפ·¤Þ¤¹¡£ # # ¤è¤Ã¤Æ¡¢¤³¤Î 2 ¤Ä¤Îʸ»úÎó¤Ï¡¢ÃçÎɤ·Ê¸»úÎó¤È¤Ê¤ë¤¿¤á¡¢YES¤È½ÐÎϤ·¤Þ¤¹¡£ # # ÆþÎÏÎã2 # abababab # babababa # ½ÐÎÏÎã2 # NO # »È¤Ã¤Æ¤¤¤ëʸ»ú¿ô¤¬Æ±¤¸¤Ç¤â¡¢ 3 ²ó¤Î¥¹¥ï¥Ã¥×¤Ç¤ÏƱ¤¸Ê¸»úÎó¤Ë¤Ç¤­¤Ê¤¤¥Ñ¥¿¡¼¥ó¤â¸ºß¤·¤Þ¤¹¡£ # # ÆþÎÏÎã3 # nt # nt # ½ÐÎÏÎã3 # NO # ¥¹¥ï¥Ã¥×¤Î»ÅÊý¤¬ 1 Ä̤ꤷ¤«¤Ê¤¯¡¢ 3 ²ó¤Î¥¹¥ï¥Ã¥×¤ò·«¤êÊÖ¤¹¤È¡¢tn¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤è¤Ã¤Æ¡¢Æ±¤¸ 2 ¤Ä¤Îʸ»úÎó¤Ç¤¹¤¬¡¢ÃçÎɤ·Ê¸»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ # # ÆþÎÏÎã4 # pqqq # pqqq # ½ÐÎÏÎã4 # YES # ¤Þ¤º¡¢ 1 ÈÖÌܤÎʸ»ú¤È 2 ÈÖÌܤÎʸ»ú¤òÆþ¤ìÂØ¤¨¡¢qpqq¤È¤·¤Þ¤¹¡£ ¼¡¤Ë¡¢ 3 ÈÖÌܤÎʸ»ú¤È 4 ÈÖÌܤÎʸ»ú¤òÆþ¤ìÂØ¤¨¡¢qpqq¤È¤·¤Þ¤¹¡£¤³¤ÎºÝ¡¢Æ±¤¸Ê¸»ú¤òÁª¤ó¤Ç¤¤¤Þ¤¹¤¬¡¢¾ì½ê¤¬°ã¤¦¤Î¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£ ºÇ¸å¤Ë¡¢1ÈÖÌܤÎʸ»ú¤È¡¢2ÈÖÌܤÎʸ»ú¤òÆþ¤ìÂØ¤¨¡¢pqqq¤È¤·¤Þ¤¹¡£ # # ÆþÎÏÎã5 # abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvxyzw # abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz # ½ÐÎÏÎã5 # YES # Ť¤Ê¸»úÎó¤¬Í¿¤¨¤é¤¨¤ì¤ë¤³¤È¤¬¤¢¤ë¤³¤È¤Ë¤âÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏÎã6 # abcdef # ghijkl # ½ÐÎÏÎã6 # NO 'ʸ»úÎó A(2¡å|A|¡å100))¡¢B(|B|=|A|) ¤¬Í¿¤¨¤é¤ì¤ë¤Î¤Ç¡¢ÃçÎɤ·Ê¸»úÎó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤òȽÄꤷ¤Ê¤µ¤¤¡£' :- 'ʸ»úÎó A(2¡å|A|¡å100)'(_A), 'ʸ»úÎó B(|B|=|A|)'(_A,_B), ʸ»úÎó¤ÈÃçÎɤ·Ê¸»úÎó(_A,_B). 'ʸ»úÎó A(2¡å|A|¡å100)'(_A) :- ¹ÔÆþÎÏ(_A), '(2¡å|A|¡å100)'(_A). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(_Codes), atom_codes(_¹Ô,_Codes). '(2¡å|A|¡å100)'(_A) :- atom_length(_A,_Ťµ), between(2,100,_Ťµ). 'ʸ»úÎó B(|B|=|A|)'(_A,_B) :- ¹ÔÆþÎÏ(_B), '(|B|=|A|)'(_A,_B). '(|B|=|A|)'(_A,_B) :- atom_length(_A,_Ťµ), atom_length(_B,_Ťµ). ʸ»úÎó¤ÈÃçÎɤ·Ê¸»úÎó(_ʸ»úÎó,_ÃçÎɤ·Ê¸»úÎó) :- atom_chars(_ʸ»úÎó,L1), ʸ»úÎóÃæ¤Îʸ»ú¤Î»°²ó¥¹¥ï¥Ã¥×(L1,[],L2), atom_chars(_ÃçÎɤ·Ê¸»úÎó,L2). ʸ»úÎóÃæ¤Îʸ»ú¤Î»°²ó¥¹¥ï¥Ã¥×(X,[_,_,_,_,_,_],X). ʸ»úÎóÃæ¤Îʸ»ú¤Î»°²ó¥¹¥ï¥Ã¥×(L1,_ÍúÎò,X) :- ¥¹¥ï¥Ã¥×(L1,_ÍúÎò,_nth0_1,_nth0_2,L2), ʸ»úÎóÃæ¤Îʸ»ú¤Î»°²ó¥¹¥ï¥Ã¥×(L2,[_nth0_1,_nth0_2|_ÍúÎò],X). ¥¹¥ï¥Ã¥×(L1,_ÍúÎò,_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,L2) :- ¸ò´¹¤¹¤ë¸õÊä¤òÆÀ¤ë(L1,_ÍúÎò,_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,A,B), ¸ò´¹¤¹¤ë(L1,_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,A,B,L2). ¸ò´¹¤¹¤ë¸õÊä¤òÆÀ¤ë(L1,_ÍúÎò,_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,_¸ò´¹Í×ÁÇ_1,_¸ò´¹Í×ÁÇ_2) :- '¤Þ¤À¸ò´¹¤·¤Æ¤¤¤Ê¤¤°ÌÃÖ¤ÎÍ×ÁǤò¼è¤ê½Ð¤¹'(_²¿ÈÖÌÜ_1,L1,_ÍúÎò,_¸ò´¹Í×ÁÇ_1), '¤Þ¤À¸ò´¹¤·¤Æ¤¤¤Ê¤¤°ÌÃÖ¤ÎÍ×ÁǤò¼è¤ê½Ð¤¹'(_²¿ÈÖÌÜ_2,L1,[_²¿ÈÖÌÜ_1|_ÍúÎò],_¸ò´¹Í×ÁÇ_2). '¤Þ¤À¸ò´¹¤·¤Æ¤¤¤Ê¤¤°ÌÃÖ¤ÎÍ×ÁǤò¼è¤ê½Ð¤¹'(_²¿ÈÖÌÜ,L,_ÍúÎò,_¸ò´¹Í×ÁÇ) :- nth1(_²¿ÈÖÌÜ,L,_¸ò´¹Í×ÁÇ), \+(member(_²¿ÈÖÌÜ,_ÍúÎò)). ¸ò´¹¤¹¤ë(L1,_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,A,B,L2) :- 'L2¤òÀ¸À®¤¹¤ë'(L1,L2), '¸ò´¹¤¹¤ëÃͤòL2¤ËËä¤á¤ë'(_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,A,B,L2), ÊÑ¿ô¤È¤·¤Æ»Ä¤Ã¤¿Í×ÁǤòËä¤á¤ë(L1,L2). 'L2¤òÀ¸À®¤¹¤ë'(L1,L2) :- length(L1,Len), length(L2,Len). '¸ò´¹¤¹¤ëÃͤòL2¤ËËä¤á¤ë'(_²¿ÈÖÌÜ_1,_²¿ÈÖÌÜ_2,A,B,L2) :- nth1(_²¿ÈÖÌÜ_1,L2,B), nth1(_²¿ÈÖÌÜ_2,L2,A). ÊÑ¿ô¤È¤·¤Æ»Ä¤Ã¤¿Í×ÁǤòËä¤á¤ë([],[]). ÊÑ¿ô¤È¤·¤Æ»Ä¤Ã¤¿Í×ÁǤòËä¤á¤ë([A|R1],[A|R2]) :- ÊÑ¿ô¤È¤·¤Æ»Ä¤Ã¤¿Í×ÁǤòËä¤á¤ë(R1,R2),!. ÊÑ¿ô¤È¤·¤Æ»Ä¤Ã¤¿Í×ÁǤòËä¤á¤ë([_|R1],[A|R2]) :- ÊÑ¿ô¤È¤·¤Æ»Ä¤Ã¤¿Í×ÁǤòËä¤á¤ë(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¥µ¥¤¥³¥í¤¬ 1 ¤Ä¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥¤¥³¥í¤Ï¡¢ 1 ¤«¤é 6 ¤Þ¤Ç¤Î¿ô»ú¤¬°ì¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤ª¤ê¡¢ÂÐÌ̤ÎϤ¬ 7 ¤Ë¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£ # # º£¡¢¥µ¥¤¥³¥í¤Î¾å¤ÎÌ̤˽ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤¬¡¢ A ¤Ç¤¢¤ë¤³¤È¤¬²ò¤Ã¤Æ¤¤¤Þ¤¹¡£ # # ¤³¤ÎÂÐÌ̤ˤ¢¤ë¡¢ÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # # ÆþÎÏ # ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤ë¡£ # # A # 1 ¹ÔÌܤˤϡ¢¥µ¥¤¥³¥í¤Î¾å¤ÎÌ̤˽ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤òɽ¤¹ 1 ¤Ä¤ÎÀ°¿ô A(1¡åA¡å6) ¤¬Í¿¤¨¤é¤ì¤ë¡£ # ½ÐÎÏ # ¥µ¥¤¥³¥í¤ÎÄì¤ÎÌ̤˽ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤ò 1 ¹Ô¤Ç½ÐÎϤ»¤è¡£½ÐÎϤÎËöÈø¤Ë¤Ï²þ¹Ô¤ò¤¤¤ì¤ë¤³¤È¡£ # # ÆþÎÏÎã1 # 6 # ½ÐÎÏÎã1 # 1 # 6 ¤Î΢¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤Ï 1 ¤Ç¤¹¡£ # # ÆþÎÏÎã2 # 3 # ½ÐÎÏÎã2 # 4 # :- dynamic(ÂÐÌ̤ˤ¢¤ë¿ô»ú/2). '¥µ¥¤¥³¥í¤¬ 1 ¤Ä¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥¤¥³¥í¤Ï¡¢ 1 ¤«¤é 6 ¤Þ¤Ç¤Î¿ô»ú¤¬°ì¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤ª¤ê¡¢ÂÐÌ̤ÎϤ¬ 7 ¤Ë¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£ º£¡¢¥µ¥¤¥³¥í¤Î¾å¤ÎÌ̤˽ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤¬¡¢ A ¤Ç¤¢¤ë¤³¤È¤¬²ò¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ÎÂÐÌ̤ˤ¢¤ë¡¢ÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£' :- '¥µ¥¤¥³¥í¤¬ 1 ¤Ä¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥¤¥³¥í¤Ï¡¢ 1 ¤«¤é 6 ¤Þ¤Ç¤Î¿ô»ú¤¬°ì¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤ª¤ê¡¢ÂÐÌ̤ÎϤ¬ 7 ¤Ë¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£', 'º£¡¢¥µ¥¤¥³¥í¤Î¾å¤ÎÌ̤˽ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤¬¡¢ A ¤Ç¤¢¤ë¤³¤È¤¬²ò¤Ã¤Æ¤¤¤Þ¤¹¡£'(_A), '¤³¤ÎÂÐÌ̤ˤ¢¤ë¡¢ÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú¤ò'(_A,_ÂÐÌ̤ˤ¢¤ëÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú), ½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤(_ÂÐÌ̤ˤ¢¤ëÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú). '¥µ¥¤¥³¥í¤¬ 1 ¤Ä¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥¤¥³¥í¤Ï¡¢ 1 ¤«¤é 6 ¤Þ¤Ç¤Î¿ô»ú¤¬°ì¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤ª¤ê¡¢ÂÐÌ̤ÎϤ¬ 7 ¤Ë¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£' :- ' 1 ¤«¤é 6 ¤Þ¤Ç¤Î¿ô»ú¤¬°ì¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤ª¤ê¡¢'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú), ÂÐÌ̤ÎϤ¬ 7 ¤Ë¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú). ' 1 ¤«¤é 6 ¤Þ¤Ç¤Î¿ô»ú¤¬°ì¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤ª¤ê¡¢'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú) :- between(1,6,_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú). 'ÂÐÌ̤ÎϤ¬ 7 ¤Ë¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú) :- 'ÂÐÌ̤ÎϤ¬ 7 ¤Ë'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú,_ÂÐÌ̤ˤ¢¤ë¿ô»ú), '¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú,_ÂÐÌ̤ˤ¢¤ë¿ô»ú). 'ÂÐÌ̤ÎϤ¬ 7 ¤Ë'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú,_ÂÐÌ̤ˤ¢¤ë¿ô»ú) :- length(L1,_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú), length(_ÂÐÌ̤ÎϤòɽ¤¹¤Ê¤é¤Ó,7), append(L1,L2,_ÂÐÌ̤ÎϤòɽ¤¹¤Ê¤é¤Ó), length(L2,_ÂÐÌ̤ˤ¢¤ë¿ô»ú). '¤Ê¤ë¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£'(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú,_ÂÐÌ̤ˤ¢¤ë¿ô»ú) :- assertz(ÂÐÌ̤ˤ¢¤ë¿ô»ú(_1¤«¤é6¤Þ¤Ç¤Î¿ô»ú,_ÂÐÌ̤ˤ¢¤ë¿ô»ú)). 'º£¡¢¥µ¥¤¥³¥í¤Î¾å¤ÎÌ̤˽ñ¤«¤ì¤Æ¤¤¤ë¿ô»ú¤¬¡¢ A ¤Ç¤¢¤ë¤³¤È¤¬²ò¤Ã¤Æ¤¤¤Þ¤¹¡£'(_A) :- ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_A). '¤³¤ÎÂÐÌ̤ˤ¢¤ë¡¢ÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú¤ò'(_A,_ÂÐÌ̤ˤ¢¤ëÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú) :- ÂÐÌ̤ˤ¢¤ë¿ô»ú(_A,_ÂÐÌ̤ˤ¢¤ëÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú). ½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤(_ÂÐÌ̤ˤ¢¤ëÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú) :- writef('%t\n',[_ÂÐÌ̤ˤ¢¤ëÄìÌ̤˽ñ¤«¤ì¤¿¿ô»ú]). ɸ½àÆþÎϤ«¤éÀ°¿ô¤òÆÀ¤ë(_A) :- ɸ½àÆþÎϤ«¤éʸ»úÎó¤òÆÀ¤ë(_ʸ»úÎó), À°¿ôÆþÎϸ¡ºº(_ʸ»úÎó,_À°¿ô),!. À°¿ôÆþÎϸ¡ºº(_ʸ»úÎó,_À°¿ô) :- catch(read_term_from_atom(_ʸ»úÎó,_À°¿ô,[]),E,fail), integer(_À°¿ô),!. ɸ½àÆþÎϤ«¤éʸ»úÎó¤òÆÀ¤ë(_ʸ»úÎó) :- findall(_ʸ»ú,( ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú), (ÆþÎϽªÎ»Ê¸»ú(_ʸ»ú),!,fail;true)),Chars), atom_chars(_ʸ»úÎó,Chars). ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú) :- get_char(_ʸ»ú). ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú) :- ɸ½àÆþÎϤ«¤é°ìʸ»ú¤òÆÀ¤ë(_ʸ»ú). ÆþÎϽªÎ»Ê¸»ú('\n'). ÆþÎϽªÎ»Ê¸»ú(end_of_file). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ÌäÂêʸ # Å·²¼°ì²¦¹ñ¤Ç¤ÏÀ°¿ô¤Ï¼­½ñ½çÈæ³Ó¤Çɽ¤·¤Þ¤¹¡£Æþ¹ñ¤·¤¿¤Ð¤«¤ê¤Î¥À¥¤¥­·¯¤Ï¤È¤ê¤¢¤¨¤º 1000 ¤Þ¤Ç¤ÎÀ°¿ô¤ò½ñ¤­½Ð¤¹¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ # # 1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó¤ò¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢1 ¹Ô¤º¤Ä½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # # ¼­½ñ½çÈæ³Ó¤Ë¤Ä¤¤¤Æ # ʸ»úÎó A ¤ËÂФ·¤Æ¡¢ Ai ¤Ç i ÈÖÌܤÎʸ»ú¤òɽ¤·¡¢ |A| ¤Çʸ»úÎó A ¤Îʸ»ú¿ô¤òɽ¤¹¤³¤È¤Ë¤¹¤ë¤È¡¢Ê¸»úÎó A ¤Èʸ»úÎó B ¤ò¼­½ñ½çÈæ³Ó¤ÇÈæ³Ó¤¹¤ë¤È¤Ï¡¢ # # Ai¡âBi ¤È¤Ê¤ëºÇ¾®¤Î i (1?i?min(|A|, |B|))¤ËÂФ·¤Æ # AiBi ¤Ç¤¢¤ì¤Ð¡¢Ê¸»úÎó A ¤Ïʸ»úÎó B ¤è¤êÂ礭¤¤ # ¤½¤Î¤è¤¦¤Ê i ¤¬Â¸ºß¤·¤Ê¤±¤ì¤Ð¡¢Ê¸»ú¿ô¤¬¾¯¤Ê¤¤Êý¤ò¾®¤µ¤¤¤È¤¹¤ë # ¤È¤·¤ÆÊ¸»úÎó A ¤Èʸ»úÎó B ¤ÎÂç¾®´Ø·¸¤ò·è¤á¤ë¤³¤È¤Ç¤¢¤ë¡£ # # Î㤨¤Ð¡¢ 1, 2, 11, 12, 21 ¤ò¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤¹¤ë¤È 1, 11, 12, 2, 21 ¤È¤Ê¤ë¡£ # # ÆþÎÏ # ¤³¤ÎÌäÂê¤Ç¤ÏÆþÎϤÏÍ¿¤¨¤é¤ì¤Ê¤¤¡£ # # # ½ÐÎÏ # 1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó¤ò¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢1 ¹Ô¤º¤Ä½ÐÎϤ»¤è¡£ # # ¤Ê¤ª¡¢¹Ô¤Î½ªÃ¼¤Ë¤Ï²þ¹Ô¤¬É¬ÍפǤ¢¤ë¡£ '1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó¤ò¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢1 ¹Ô¤º¤Ä½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£' :- '1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó¤ò'(_½½¿Êʸ»úÎó¤Ê¤é¤Ó), '¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢'(_½½¿Êʸ»úÎó¤Ê¤é¤Ó,_¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó), '1 ¹Ô¤º¤Ä½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'(_¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó). '1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó¤ò'(_½½¿Êʸ»úÎó¤Ê¤é¤Ó) :- findall(_½½¿Êʸ»úÎó,'1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿'(_½½¿Ê¿ôʸ»úÎó),_½½¿Êʸ»úÎó¤Ê¤é¤Ó). '1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò½½¿Ê¿ô¤Çɽ¤·¤¿'(_½½¿Ê¿ôʸ»úÎó) :- '1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò'(_À°¿ô), ½½¿Ê¿ô¤Çɽ¤·¤¿(_À°¿ô,_½½¿Ê¿ô¤Çɽ¤·¤¿). '1 °Ê¾å 1000 °Ê²¼¤Î¤¹¤Ù¤Æ¤ÎÀ°¿ô¤ò'(_À°¿ô) :- between(1,1000,_À°¿ô). ½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó¤ò(_À°¿ô,_½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó) :- number_chars(_À°¿ô,Chars), atom_chars(_½½¿Ê¿ô¤Çɽ¤·¤¿Ê¸»úÎó,Chars). '¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢'([],[]). '¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢'([_¼´Í×ÁÇ|L1],L2) :- '¼­½ñ½çÈæ³Ó¤Ç¼´Í×ÁǤȤÎÂç¾®¤Çʬ³ä'(_¼´Í×ÁÇ,L1,L1_1,L1_2), '¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢'(L1_1,L1_1_2), '¼­½ñ½çÈæ³Ó¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ¡¢'(L1_2,L1_2_2), append(L1_1_2,[_¼´Í×ÁÇ|L1_2_2],L2). '¼­½ñ½çÈæ³Ó¤Ç¼´Í×ÁǤȤÎÂç¾®¤Çʬ³ä'(_,[],[],[]). '¼­½ñ½çÈæ³Ó¤Ç¼´Í×ÁǤȤÎÂç¾®¤Çʬ³ä'(_¼´Í×ÁÇ,[A|R2],[A|R3],R4) :- '¼­½ñ½ç¤Ë¾®¤µ¤¤'(A,_¼´Í×ÁÇ),!, '¼­½ñ½çÈæ³Ó¤Ç¼´Í×ÁǤȤÎÂç¾®¤Çʬ³ä'(_¼´Í×ÁÇ,R2,R3,R4). '¼­½ñ½çÈæ³Ó¤Ç¼´Í×ÁǤȤÎÂç¾®¤Çʬ³ä'(_¼´Í×ÁÇ,[A|R2],R3,[A|R4]) :- '¼­½ñ½çÈæ³Ó¤Ç¼´Í×ÁǤȤÎÂç¾®¤Çʬ³ä'(_¼´Í×ÁÇ,R2,R3,R4). '¼­½ñ½ç¤Ë¾®¤µ¤¤'(_ʸ»úÎó_1,_ʸ»úÎó_2) :- 'ʸ»úÎó_1¤Ë¾®¤µ¤¤Ê¸»ú¤¬Àè¤Ë½Ð¸½¤·¤¿'(_ʸ»úÎó_1,_ʸ»úÎó_2),!. '¼­½ñ½ç¤Ë¾®¤µ¤¤'(_ʸ»úÎó_1,_ʸ»úÎó_2) :- ʸ»úÎó¤Îº¹Ê¬¤¬Ê¸»úÎó_2¤Ë¤¢¤ë(_ʸ»úÎó_1,_ʸ»úÎó_2). 'ʸ»úÎó_1¤Ë¾®¤µ¤¤Ê¸»ú¤¬Àè¤Ë½Ð¸½¤·¤¿'(_ʸ»úÎó_1,_ʸ»úÎó_2) :- ÀèÆ¬¤«¤éƱ°ì°ÌÃÖ¤Îʸ»ú¤òÈæ³Ó¤·¤Æ(_ʸ»úÎó_1,_ʸ»úÎó_2,_ʸ»ú_1,_ʸ»ú_2), \+(_ʸ»ú_1 = _ʸ»ú_2),!, _ʸ»ú_1 @< _ʸ»ú_2. ÀèÆ¬¤«¤éƱ°ì°ÌÃÖ¤Îʸ»ú¤òÈæ³Ó¤·¤Æ(_ʸ»úÎó_1,_ʸ»úÎó_2,_ʸ»ú_1,_ʸ»ú_2) :- sub_atom(_ʸ»úÎó_1,_Ʊ°ì°ÌÃÖ,1,_,_ʸ»ú_1), sub_atom(_ʸ»úÎó_2,_Ʊ°ì°ÌÃÖ,1,_,_ʸ»ú_2). 'ʸ»úÎó¤Îº¹Ê¬¤¬Ê¸»úÎó_2¤Ë¤¢¤ë'(_ʸ»úÎó_1,_ʸ»úÎó_2) :- sub_atom(_ʸ»úÎó_2,0,_ʸ»úÎó_1¤ÎŤµ,_º¹Ê¬Ê¸»ú¿ô,_ʸ»úÎó_1), _º¹Ê¬Ê¸»ú¿ô > 0. '1 ¹Ô¤º¤Ä½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'(L2) :- forall(member(M,L2),writef('%t\n',[M])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ÙøÍð½çÎó(_n,_³ÉÍð½çÎó) :- ´°Á´½çÎó(_n,_³ÉÍð½çÎó). ´°Á´½çÎó(_n,_´°Á´½çÎó) :- findall(_m,between(1,_n,_m),L), ´°Á´½çÎó(L,[_],_´°Á´½çÎó). ´°Á´½çÎó([],_,[]). ´°Á´½çÎó(L,Lm,[N|R]) :- select(N,L,L2), \+(length(Lm,N)), ´°Á´½çÎó(L2,[_|Lm],R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1402622093/754 # ¤ªÂê¡§Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤òÀµÊý·Á¤Ë¤·¤Æ½ÐÎÏ # ½Ä²£¤Î»ú¿ô¤¬Åù¤·¤±¤ì¤ÐÀµÊý·Á¤È¤·¤Þ¤¹ # »ú¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ï'*'¤ÇËä¤á¤ë¤³¤È # ;¤ë¾ì¹ç¤Ï;·×¤Êʸ»ú¤ò¼Î¤Æ¤Æ¤«¤Þ¤¤¤Þ¤»¤ó # ¤¿¤À¤·Í¿¤¨¤é¤ì¤¿»ú¿ô¤Ë¤è¤ê¶á¤¤ÀµÊý·Á¤Ë¤¹¤ë¤³¤È # Îã¡§http://jump.2ch.net/?ideone.com/mA41q6 # 1, 2=1x1 # 3, 4, 5, 6=2x2 # 7, 8, 9, 10, 11, 12=3x3 # 13, 14, 15, 16=4x4 # ºÇ½ª¹Ô¤¬*¤À¤±¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ # 'Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤òÀµÊý·Á¤Ë¤·¤Æ½ÐÎÏ ½Ä²£¤Î»ú¿ô¤¬Åù¤·¤±¤ì¤ÐÀµÊý·Á¤È¤·¤Þ¤¹ »ú¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ï'*'¤ÇËä¤á¤ë¤³¤È ;¤ë¾ì¹ç¤Ï;·×¤Êʸ»ú¤ò¼Î¤Æ¤Æ¤«¤Þ¤¤¤Þ¤»¤ó ¤¿¤À¤·Í¿¤¨¤é¤ì¤¿»ú¿ô¤Ë¤è¤ê¶á¤¤ÀµÊý·Á¤Ë¤¹¤ë¤³¤È Îã¡§http://jump.2ch.net/?ideone.com/mA41q6 1, 2=1x1 3, 4, 5, 6=2x2 7, 8, 9, 10, 11, 12=3x3 13, 14, 15, 16=4x4 ºÇ½ª¹Ô¤¬*¤À¤±¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¡£'(_Í¿¤¨¤é¤ì¤¿Ê¸»úÎó,_ÀµÊý·Á¤Îʸ»úÎó) :- ½Ä²£¤Î»ú¿ô(_Í¿¤¨¤é¤ì¤¿Ê¸»úÎó,_½Ä²£¤Î»ú¿ô), 'Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤òÀµÊý·Á¤Ë¤·¤Æ½ÐÎÏ ½Ä²£¤Î»ú¿ô¤¬Åù¤·¤±¤ì¤ÐÀµÊý·Á¤È¤·¤Þ¤¹ »ú¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ï'*'¤ÇËä¤á¤ë¤³¤È ;¤ë¾ì¹ç¤Ï;·×¤Êʸ»ú¤ò¼Î¤Æ¤Æ¤«¤Þ¤¤¤Þ¤»¤ó'(_Í¿¤¨¤é¤ì¤¿Ê¸»úÎó,_½Ä²£¤Î»ú¿ô,_ÀµÊý·Á¤Îʸ»úÎó). ½Ä²£¤Î»ú¿ô(_ʸ»úÎó¤Ê¤é¤Ó,_½Ä²£¤Î»ú¿ô) :- sub_atom(_Í¿¤¨¤é¤ì¤¿Ê¸»úÎó,0,_ʸ»úÎó¤ÎŤµ,1,_Í¿¤¨¤é¤ì¤¿Ê¸»úÎó), _½Ä²£¤Î»ú¿ô_1 is floor(sqrt(_ʸ»úÎó¤ÎŤµ)), _½Ä²£¤Î»ú¿ô_2 is ceiling(sqrt(_ʸ»úÎó¤ÎŤµ)), ½Ä²£¤Î»ú¿ô¤ÎÁªÂò(_ʸ»úÎó¤ÎŤµ,_½Ä²£¤Î»ú¿ô_1,_½Ä²£¤Î»ú¿ô_2,_½Ä²£¤Î»ú¿ô). ½Ä²£¤Î»ú¿ô¤ÎÁªÂò(_ʸ»úÎó¤ÎŤµ,_½Ä²£¤Î»ú¿ô_1,_½Ä²£¤Î»ú¿ô_2,_½Ä²£¤Î»ú¿ô_1) :- abs(_½Ä²£¤Î»ú¿ô_1 ^ 2 - _ʸ»úÎó¤ÎŤµ) =< abs(_½Ä²£¤Î»ú¿ô_2 ^ 2 - _ʸ»úÎó¤ÎŤµ),!. ½Ä²£¤Î»ú¿ô¤ÎÁªÂò(_ʸ»úÎó¤ÎŤµ,_½Ä²£¤Î»ú¿ô_1,_½Ä²£¤Î»ú¿ô_2,_½Ä²£¤Î»ú¿ô_2). 'Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤òÀµÊý·Á¤Ë¤·¤Æ½ÐÎÏ ½Ä²£¤Î»ú¿ô¤¬Åù¤·¤±¤ì¤ÐÀµÊý·Á¤È¤·¤Þ¤¹ »ú¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ï * ¤ÇËä¤á¤ë¤³¤È ;¤ë¾ì¹ç¤Ï;·×¤Êʸ»ú¤ò¼Î¤Æ¤Æ¤«¤Þ¤¤¤Þ¤»¤ó'(_ʸ»úÎó,_½Ä²£¤Î»ú¿ô,_ÀµÊý·Á¤Îʸ»úÎó) :- findall(_¹Ô,( sub_atom(_ʸ»úÎó,_ÊѰÌ,_½Ä²£¤Î»ú¿ô,_»Ä¤êʸ»ú¿ô,_¹Ô), 0 is _ÊÑ°Ì mod _½Ä²£¤Î»ú¿ô, (_¹Ô=_¹Ô_1;_»Ä¤êʸ»ú¿ô < _½Ä²£¤Î»ú¿ô,'»ú¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ï * ¤ÇËä¤á¤ë¤³¤È'(_ʸ»úÎó,_½Ä²£¤Î»ú¿ô,_»Ä¤êʸ»ú¿ô,_¹Ô),!,fail)), _ÀµÊý·Á¤Îʸ»úÎó). '»ú¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ï * ¤ÇËä¤á¤ë¤³¤È'(_ʸ»úÎó,_½Ä²£¤Î»ú¿ô,_»Ä¤êʸ»ú¿ô,_¹Ô) :- atom_length(_ʸ»úÎó,_ʸ»ú¿ô), _À±¤Î»þ¿ô is _½Ä²£¤Î»ú¿ô - _»Ä¤êʸ»ú¿ô, À±Ê¸»úÎó(_À±¤Î»ú¿ô,_À±Ê¸»úÎó), sub_atom(_ʸ»úÎó,_,_»Ä¤êʸ»ú¿ô,0,_Éûʸ»úÎó), atom_concat(_Éûʸ»úÎó,_À±Ê¸»úÎó,_¹Ô). À±Ê¸»úÎó(_»ú¿ô,_À±Ê¸»úÎó) :- findall(*,between(1,_»ú¿ô,_),_À±¤Ê¤é¤Ó), atomic_list_concat(_À±¤Ê¤é¤Ó,_À±Ê¸»úÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1392388003/861 # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] ÌäÂêʸ # ¡ÊRun Length°µ½Ì¡Ë # ʸ»úÎó¤¬Ï¢Â³¤·¤¿¾ì¹ç¡¢¤¢¤ëµ¬Â§¤Çʸ»ú¤òÃÖ¤­´¹¤¨¡¢ # ʸ»úÎó¤òû¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ # Î㤨¤Ð¡¢AAAA¤È¤¤¤¦Ê¸»úÎó¤Î¾ì¹ç¡¢@4A¤Èɽ¸½¤¹¤ì¤Ð # £±Ê¸»úʬ°µ½Ì¤µ¤ì¤Þ¤¹¡£ # ¤³¤Îµ¬Â§¤Ç°µ½Ì¤µ¤ì¤¿Ê¸»úÎó¤òÆþÎϤ·¤Æ # ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ½ªÎ»¤¹¤ë¥×¥í¥°¥é¥à¤ò # ºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ # ¤¿¤À¤·¡¢Éü¸µ¤·¤¿Ê¸»úÎó¤Ë¡÷ʸ»ú¤Ï½Ð¸½¤·¤Ê¤¤¤â¤Î¤È¤·¤Þ¤¹¡£ # # ¸¶Ê¸¤Îʸ»úÎó¤ÏȾ³Ñ¤Î±ÑÂçʸ»ú¡¢±Ñ¾®Ê¸»ú¡¢¿ô»ú¡¢µ­¹æ¤Ç¤¢¤ê100ʸ»ú°ÊÆâ¡¢Ï¢Â³¤¹¤ëʸ»ú¤Ï9ʸ»ú°ÊÆâ¤Ç¤¹¡£ # # ¼Â¹ÔÎã¡Ë # ab@5C1@8050 ÆþÎÏ # abCCCCC10000000050 ½ÐÎÏ # @99+1=1@90 ÆþÎÏ # 999999999+1=1000000000 ½ÐÎÏ # 'ʸ»úÎó¤¬Ï¢Â³¤·¤¿¾ì¹ç¡¢¤¢¤ëµ¬Â§¤Çʸ»ú¤òÃÖ¤­´¹¤¨¡¢ ʸ»úÎó¤òû¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢AAAA¤È¤¤¤¦Ê¸»úÎó¤Î¾ì¹ç¡¢@4A¤Èɽ¸½¤¹¤ì¤Ð £±Ê¸»úʬ°µ½Ì¤µ¤ì¤Þ¤¹¡£ ¤³¤Îµ¬Â§¤Ç°µ½Ì¤µ¤ì¤¿Ê¸»úÎó¤òÆþÎϤ·¤Æ ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ½ªÎ»¤¹¤ë¥×¥í¥°¥é¥à¤ò ºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤¿¤À¤·¡¢Éü¸µ¤·¤¿Ê¸»úÎó¤Ë¡÷ʸ»ú¤Ï½Ð¸½¤·¤Ê¤¤¤â¤Î¤È¤·¤Þ¤¹¡£ ¸¶Ê¸¤Îʸ»úÎó¤ÏȾ³Ñ¤Î±ÑÂçʸ»ú¡¢±Ñ¾®Ê¸»ú¡¢¿ô»ú¡¢µ­¹æ¤Ç¤¢¤ê100ʸ»ú°ÊÆâ¡¢Ï¢Â³¤¹¤ëʸ»ú¤Ï9ʸ»ú°ÊÆâ¤Ç¤¹¡£ ¼Â¹ÔÎã¡Ë ab@5C1@8050 ÆþÎÏ abCCCCC10000000050 ½ÐÎÏ @99+1=1@90 ÆþÎÏ 999999999+1=1000000000 ½ÐÎÏ' :- 'ʸ»úÎó¤¬Ï¢Â³¤·¤¿¾ì¹ç¡¢¤¢¤ëµ¬Â§¤Çʸ»ú¤òÃÖ¤­´¹¤¨¡¢ ʸ»úÎó¤òû¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢AAAA¤È¤¤¤¦Ê¸»úÎó¤Î¾ì¹ç¡¢@4A¤Èɽ¸½¤¹¤ì¤Ð £±Ê¸»úʬ°µ½Ì¤µ¤ì¤Þ¤¹¡£ ¤³¤Îµ¬Â§¤Ç°µ½Ì¤µ¤ì¤¿Ê¸»úÎó¤òÆþÎϤ·¤Æ ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ½ªÎ»¤¹¤ë'. 'ʸ»úÎó¤¬Ï¢Â³¤·¤¿¾ì¹ç¡¢¤¢¤ëµ¬Â§¤Çʸ»ú¤òÃÖ¤­´¹¤¨¡¢ ʸ»úÎó¤òû¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢AAAA¤È¤¤¤¦Ê¸»úÎó¤Î¾ì¹ç¡¢@4A¤Èɽ¸½¤¹¤ì¤Ð £±Ê¸»úʬ°µ½Ì¤µ¤ì¤Þ¤¹¡£ ¤³¤Îµ¬Â§¤Ç°µ½Ì¤µ¤ì¤¿Ê¸»úÎó¤òÆþÎϤ·¤Æ ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ½ªÎ»¤¹¤ë' :- °µ½Ì¤µ¤ì¤¿Ê¸»úÎó¤òÆþÎϤ·(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó), ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó), ½ªÎ»¤¹¤ë(_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó). °µ½Ì¤µ¤ì¤¿Ê¸»úÎó¤òÆþÎϤ·(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó) :- get_line(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó). ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó) :- 'Á°Ê¸»úÎó¡¢°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó,¸åʸ»úÎó¤Ëʬ²ò'(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_Á°Ê¸»úÎó,_°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó,_¸åʸ»úÎó), ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ(_¸åʸ»úÎó,_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó_2), atomic_list_concat([_Á°Ê¸»úÎó,_¿ô»úÎó,_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó_2],_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó),!. ¤â¤È¤Îʸ»úÎó¤ËÉü¸µ¤·¤Æ(_ʸ»úÎó,_ʸ»úÎó). 'Á°Ê¸»úÎó¡¢°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó,¸åʸ»úÎó¤Ëʬ²ò'(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_Á°Ê¸»úÎó,_°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó,_¸åʸ»úÎó) :- 'Á°Ê¸»úÎó¡¢°µ½ÌÉô,¸åʸ»úÎó¤Ëʬ²ò'(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_Á°Ê¸»úÎó,_°µ½ÌÉô,_¸åʸ»úÎó), °µ½ÌÉô¤òÉü¸µ¤¹¤ë(_°µ½ÌÉô,_°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó). 'Á°Ê¸»úÎó¡¢°µ½ÌÉô,¸åʸ»úÎó¤Ëʬ²ò'(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_Á°Ê¸»úÎó,_°µ½ÌÉô,_¸åʸ»úÎó) :- sub_atom(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,S,3,R,_°µ½ÌÉô), sub_atom(_°µ½ÌÉô,0,1,2,'@'), sub_atom(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,0,S,_,_Á°Ê¸»úÎó), sub_atom(_°µ½Ì¤µ¤ì¤¿Ê¸»úÎó,_,R,0,_¸åʸ»úÎó). °µ½ÌÉô¤òÉü¸µ¤¹¤ë(_°µ½ÌÉô,_°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó) :- sub_atom(_°µ½ÌÉô,1,1,_,_·«¤êÊÖ¤·²ó¿ôʸ»ú), sub_atom(_°µ½ÌÉô,2,1,_,_·«¤êÊÖ¤µ¤ì¤ë¿ôʸ»ú), atom_numbers(_·«¤êÊÖ¤·²ó¿ôʸ»ú,[_·«¤êÊÖ¤·²ó¿ô]), findall(_·«¤êÊÖ¤µ¤ì¤ë¿ô»ú,between(1,_·«¤êÊÖ¤·²ó¿ô¿ô,_),_°µ½ÌÉô¤ÎÉü¸µ¤µ¤ì¤¿¿ô»úÎó). ½ªÎ»¤¹¤ë(_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó) :- writef('%t\n',[_Éü¸µ¤µ¤ì¤¿Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part4 #674 # ¤¢¤Ê¤¿(̸Åçµþ»Ò) ¤Ï20Ëü¿Í·î¤ÎµðÂç¤Ê¥×¥í¥¸¥§¥¯¥È¤ò°ì¥ö·î¤Ç½ª¤ï¤é¤»¤ë¤¿¤á¤Ë̵¿ô¤Î²¼ÀÁ¤±²ñ¼Ò¤«¤é¿Í°÷¤ò¤«¤­½¸¤á¤ë»Å»ö¤ò¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ # ¥×¥í¥¸¥§¥¯¥È¤ò½ª¤ï¤é¤»¤ë¤Î¤ËɬÍפʿͰ÷¿ô m ̾ ¤È¡¢È¯Ãí²Äǽ¤Ê²¼ÀÁ¤±²ñ¼Ò¤Î¿ô n ¼Ò¡¢³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¥¢¥µ¥¤¥ó²Äǽ¤Ê¥¨¥ó¥¸¥Ë¥¢¿Í°÷¿ô q_i ̾ ¤È¡¢È¯Ãí¤ËɬÍפÊÈñÍÑ r_i Ëü±ß¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ # # ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¤Ï¡¢°ìÉô¤ò»È¤¦¤Ê¤É¤Ï½ÐÍ褺Á´°÷¤ò»È¤ï¤Ê¤¯¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ # ¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô m °Ê¾å¤òËþ¤¿¤»¤ëÁȤ߹ç¤ï¤»¤Ç¡¢ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û(ñ°Ì¡§Ëü±ß)¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ # ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô¤Î¹ç·×¤Ï¥×¥í¥¸¥§¥¯¥È¤Îµ¬ÌÏ m ¿Í·î°Ê¾å¤Ë¤Ê¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ # ¥Ò¥ó¥È¤ò¸«¤ë # ¢¨ ¼ÂºÝ¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¤³¤ÎÍͤˤϹԤ­¤Þ¤»¤ó¤Î¤Ç¡¢¿Í°÷¤òÁý¤ä¤¹¾ì¹ç¤Ï¿µ½Å¤Ë¸¡Æ¤¤¹¤ë»ö¤ò¤ª´«¤á¤¤¤¿¤·¤Þ¤¹¡£ # ¢¨¤³¤Îʪ¸ì¤Ï¥Õ¥£¥¯¥·¥ç¥ó¤Ç¤¢¤ê¡¢¼Âºß¤Î¿Íʪ¡¦ÃÄÂΤȤϰìÀÚ´Ø·¸¤¢¤ê¤Þ¤»¤ó # # # # ÆþÎϤµ¤ì¤ëÃÍ # ÆþÎϤϰʲ¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÇÍ¿¤¨¤é¤ì¤Þ¤¹¡£ # # m¡¡¡Ê¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô¡Ë # n¡¡¡Ê²¼ÀÁ¤±²ñ¼Ò¤Î¿ô¡Ë # q_1 r_1¡¡¡Ê1ÈÖÌܤβ¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô ȯÃí¤ËɬÍפÊÈñÍÑ[ñ°Ì¡§Ëü±ß]¡Ë # q_2 r_2¡¡¡Ê£²ÈÖÌܤβ¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô ȯÃí¤ËɬÍפÊÈñÍÑ[ñ°Ì¡§Ëü±ß]¡Ë # ¡¦¡¦¡¦ # q_i r_i¡¡¡Ên ÈÖÌܤβ¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô ȯÃí¤ËɬÍפÊÈñÍÑ[ñ°Ì¡§Ëü±ß]¡Ë # ¾ò·ï # 1 ¡å m ¡å 200000¡Ê¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͿô¡§ºÇÂç20Ëü¿Í¡Ë # 1 ¡å n ¡å 50¡Ê²¼ÀÁ¤±²ñ¼Ò¿ô¡§ºÇÂç50¼Ò¡Ë # 1 ¡å q_i ¡å 10000¡Ê³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô¡§ºÇÂç1Ëü¿Í¡Ë # 1 ¡å r_i ¡å 5000000¡Ê³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¤Ø¤ÎȯÃíÈñÍÑ[ñ°Ì¡§Ëü±ß]¡§£±Ëü±ß¡ÁºÇÂç500²¯±ß¡Ë # m ¡å q_1 + q_2 + q_3 ... + q_i¡Ê³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô¤Î¹ç·×¤Ï¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͿô m ¿Í°Ê¾å¤Ë¤Ê¤ë¡Ë # ´üÂÔ¤¹¤ë½ÐÎÏ # ºÇ¤â¥³¥¹¥È¤¬°Â¤¯¤Ê¤ëÁȤ߹ç¤ï¤»¤ÎÁí¥³¥¹¥È¤ò½ÐÎϤ·¤Æ²¼¤µ¤¤¡£ # ºÇ¸å¤Ï²þ¹Ô¤·¡¢Í¾·×¤Êʸ»ú¡¢¶õ¹Ô¤ò´Þ¤ó¤Ç¤Ï¤¤¤±¤Þ¤»¤ó¡£ # ÆþÎÏÎã1 # 60 # 3 # 40 4300 # 30 2300 # 20 2400 # # # ½ÐÎÏÎã1 # 6600 # ÆþÎÏÎã2 # 250 # 5 # 35 3640 # 33 2706 # 98 9810 # 57 5472 # 95 7790 # ½ÐÎÏÎã2 # 23072 '¤¢¤Ê¤¿(̸Åçµþ»Ò) ¤Ï20Ëü¿Í·î¤ÎµðÂç¤Ê¥×¥í¥¸¥§¥¯¥È¤ò°ì¥ö·î¤Ç½ª¤ï¤é¤»¤ë¤¿¤á¤Ë ̵¿ô¤Î²¼ÀÁ¤±²ñ¼Ò¤«¤é¿Í°÷¤ò¤«¤­½¸¤á¤ë»Å»ö¤ò¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¥×¥í¥¸¥§¥¯¥È¤ò½ª¤ï¤é¤»¤ë¤Î¤ËɬÍפʿͰ÷¿ô m ̾ ¤È¡¢È¯Ãí²Äǽ¤Ê²¼ÀÁ¤±²ñ¼Ò¤Î¿ô n ¼Ò¡¢ ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¥¢¥µ¥¤¥ó²Äǽ¤Ê¥¨¥ó¥¸¥Ë¥¢¿Í°÷¿ô q_i ̾ ¤È¡¢È¯Ãí¤ËɬÍפÊÈñÍÑ r_i Ëü±ß¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¤Ï¡¢°ìÉô¤ò»È¤¦¤Ê¤É¤Ï½ÐÍ褺Á´°÷¤ò»È¤ï¤Ê¤¯¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô m °Ê¾å¤òËþ¤¿¤»¤ëÁȤ߹ç¤ï¤»¤Ç¡¢ ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û(ñ°Ì¡§Ëü±ß)¤ò½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¿Í°÷¿ô¤Î¹ç·×¤Ï¥×¥í¥¸¥§¥¯¥È¤Îµ¬ÌÏ m ¿Í·î°Ê¾å¤Ë¤Ê¤ë¤â¤Î¤È¤·¤Þ¤¹¡£' :- '¥×¥í¥¸¥§¥¯¥È¤ò½ª¤ï¤é¤»¤ë¤Î¤ËɬÍפʿͰ÷¿ô m ̾ ¤È¡¢È¯Ãí²Äǽ¤Ê²¼ÀÁ¤±²ñ¼Ò¤Î¿ô n ¼Ò¡¢ ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¥¢¥µ¥¤¥ó²Äǽ¤Ê¥¨¥ó¥¸¥Ë¥¢¿Í°÷¿ô q_i ̾ ¤È¡¢È¯Ãí¤ËɬÍפÊÈñÍÑ r_i Ëü±ß¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£'(_m,_n,_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó), findmin(_¹ç·×¶â³Û,( '¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô m °Ê¾å¤òËþ¤¿¤»¤ëÁȤ߹ç¤ï¤»¤Ç¡¢ ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û(ñ°Ì¡§Ëü±ß)¤ò'(_m,_n,_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó,0,0,_¹ç·×¿Í¿ô,_¹ç·×¶â³Û)),_ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û), '½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'(_ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û). '¥×¥í¥¸¥§¥¯¥È¤ò½ª¤ï¤é¤»¤ë¤Î¤ËɬÍפʿͰ÷¿ô m ̾ ¤È¡¢È¯Ãí²Äǽ¤Ê²¼ÀÁ¤±²ñ¼Ò¤Î¿ô n ¼Ò¡¢ ³Æ²¼ÀÁ¤±²ñ¼Ò¤Î¥¢¥µ¥¤¥ó²Äǽ¤Ê¥¨¥ó¥¸¥Ë¥¢¿Í°÷¿ô q_i ̾ ¤È¡¢È¯Ãí¤ËɬÍפÊÈñÍÑ r_i Ëü±ß¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£'(_m,_n,_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó) :- get_split_line([' ',','],[_m,_n]), findall([_²¼ÀÁ¤±¿Í¿ô,_ÈñÍÑ],( between(1,_n,_), get_split_line([' ',','],[_²¼ÀÁ¤±¿Í¿ô,_ÈñÍÑ])),_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó). '¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô m °Ê¾å¤òËþ¤¿¤»¤ëÁȤ߹ç¤ï¤»¤Ç¡¢ ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û(ñ°Ì¡§Ëü±ß)¤ò'(_m,_n,_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó,_¹ç·×¿Í¿ô,_¹ç·×¶â³Û,_¹ç·×¿Í¿ô,_¹ç·×¶â³Û) :- _¹ç·×¿Í¿ô >= _m,!. '¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô m °Ê¾å¤òËþ¤¿¤»¤ëÁȤ߹ç¤ï¤»¤Ç¡¢ ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û(ñ°Ì¡§Ëü±ß)¤ò'(_m,_n,_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó,_¹ç·×¿Í¿ô_1,_¹ç·×¶â³Û_1,_¹ç·×¿Í¿ô,_¹ç·×¶â³Û) :- ¤Ò¤È¤Ä²¼ÀÁ¤±¿Í¿ô¤ÈÈñÍѤò¼è¤ê½Ð¤¹(_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó,_¹ç·×¿Í¿ô_1,_¹ç·×¶â³Û_1,_¹ç·×¿Í¿ô_2,_¹ç·×¶â³Û_2,_»Ä¤ê¤Ê¤é¤Ó), '¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʿͰ÷¿ô m °Ê¾å¤òËþ¤¿¤»¤ëÁȤ߹ç¤ï¤»¤Ç¡¢ ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û(ñ°Ì¡§Ëü±ß)¤ò'(_m,_n,_»Ä¤ê¤Ê¤é¤Ó,_¹ç·×¿Í¿ô_2,_¹ç·×¶â³Û_2,_¹ç·×¿Í¿ô,_¹ç·×¶â³Û). ¤Ò¤È¤Ä²¼ÀÁ¤±¿Í¿ô¤ÈÈñÍѤò¼è¤ê½Ð¤¹(_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó,_¹ç·×¿Í¿ô_1,_¹ç·×¶â³Û_1,_¹ç·×¿Í¿ô_2,_¹ç·×¶â³Û_2,_»Ä¤ê¤Ê¤é¤Ó) :- select([_²¼ÀÁ¤±¿Í¿ô_1,_ÈñÍÑ_1],_²¼ÀÁ¤±¿Í¿ô_ÈñÍѤʤé¤Ó,_»Ä¤ê¤Ê¤é¤Ó), _¹ç·×¶â³Û_2 is _¹ç·×¶â³Û_1 + _ÈñÍÑ_1, _¹ç·×¿Í¿ô_2 is _¹ç·×¿Í¿ô_1 + _²¼ÀÁ¤±¿Í¿ô_1. '½ÐÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'(_ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û) :- writef('%tËü±ß\n',[_ºÇ¤â°Â¤¯¤¹¤à¹ç·×¶â³Û]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1392388003/851 # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] ÌäÂêʸ # ÆþÎϤµ¤ì¤¿¿ô»ú¤Þ¤Ç¡¢£±¤«¤é½ç¤Ë # ɽ¼¨¤¹¤ë¤³¤È # ¡ÊÆþÎϤµ¤ì¤ë¿ô»ú¤ÎºÇ¾®¤Ï¡¢£±¡Ë # ¡ÊÆþÎϤµ¤ì¤ë¿ô»ú¤ÎºÇÂç¤Ï¡¢£²£°¡Ë # # ¼Â¹ÔÎã # 5 ÆþÎÏ # 1 2 3 4 5 ½ÐÎÏ # 11 ÆþÎÏ # 1 2 3 4 5 6 7 8 9 10 11 ½ÐÎÏ # 1 ÆþÎÏ # 1 ½ÐÎÏ # # 'ÆþÎϤµ¤ì¤¿¿ô»ú¤Þ¤Ç¡¢£±¤«¤é½ç¤Ë ɽ¼¨¤¹¤ë¤³¤È ¡ÊÆþÎϤµ¤ì¤ë¿ô»ú¤ÎºÇ¾®¤Ï¡¢£±¡Ë ¡ÊÆþÎϤµ¤ì¤ë¿ô»ú¤ÎºÇÂç¤Ï¡¢£²£°¡Ë' :- 'ÆþÎϤµ¤ì¤¿¿ô»ú¤Þ¤Ç¡¢¡ÊÆþÎϤµ¤ì¤ë¿ô»ú¤ÎºÇ¾®¤Ï¡¢£±ºÇÂç¤Ï¡¢£²£°¡Ë'(_ÆþÎϤµ¤ì¤¿¿ô»ú), '£±¤«¤é½ç¤Ëɽ¼¨¤¹¤ë¤³¤È'(_ÆþÎϤµ¤ì¤¿¿ô»ú). '£±¤«¤é½ç¤Ëɽ¼¨¤¹¤ë¤³¤È'(_ÆþÎϤµ¤ì¤¿¿ô»ú) :- findall(_À°¿ô,between(1,_ÆþÎϤµ¤ì¤¿¿ô»ú,_À°¿ô),L), atomic_list_concat(L,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1392388003/788 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°1 # [2] ÌäÂêʸ # Àµ¤ÎÀ°¿ô¤òÆÉ¤ß¹þ¤ß¡¢¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô¤ò # Á´¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ë # # 'Àµ¤ÎÀ°¿ô¤òÆÉ¤ß¹þ¤ß¡¢¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô¤ò Á´¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ë' :- 'Àµ¤ÎÀ°¿ô¤òÆÉ¤ß¹þ¤ß¡¢'(_Àµ¤ÎÀ°¿ô), ¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô¤òÁ´¤ÆÉ½¼¨¤¹¤ë(_Àµ¤ÎÀ°¿ô). 'Àµ¤ÎÀ°¿ô¤òÆÉ¤ß¹þ¤ß¡¢'(_Àµ¤ÎÀ°¿ô) :- À°¿ô¤òÆÀ¤ë(_Àµ¤ÎÀ°¿ô,_Àµ¤ÎÀ°¿ô >= 0,_Àµ¤ÎÀ°¿ô). ¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô¤òÁ´¤ÆÉ½¼¨¤¹¤ë(_Àµ¤ÎÀ°¿ô) :- forall(¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô¤ò(_Àµ¤ÎÀ°¿ô,_¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô),Á´¤ÆÉ½¼¨¤¹¤ë(_¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô)). ¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô¤ò(_Àµ¤ÎÀ°¿ô,_¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô) :- between(1,_Àµ¤ÎÀ°¿ô,_¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô), _¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô < _Àµ¤ÎÀ°¿ô, 0 is _¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô mod 3. Á´¤ÆÉ½¼¨¤¹¤ë(_¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô) :- writef('%t\n',[_¤½¤ÎÀ°¿ô¤è¤ê¾®¤µ¤¤£³¤ÎÇÜ¿ô]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1392388003/771 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ # 10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤÇÛÉÛ¤ò¿Þ¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # # ¡¡¡¡¡¡ 100¡§¡¡* # 90¡¡-¡¡99¡§¡¡** # 80¡¡-¡¡89¡§¡¡*** # ¡¡¡¡¡¡(ÃæÎ¬) # 0 -¡¡ 9¡§¡¡* # # ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·Ž¤¿Í¿ôʬ¤À¤± * ¤ò½ÐÎϤ¹¤ë¤³¤È # ¡¡[3.1] OS¡§ Windows8 # ¡¡[3.3] ¸À¸ì¡§ C # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤÇÛÉÛ¤ò¿Þ¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è ¡¡¡¡¡¡ 100¡§¡¡* 90¡¡-¡¡99¡§¡¡** 80¡¡-¡¡89¡§¡¡*** ¡¡¡¡¡¡(ÃæÎ¬) 0 -¡¡ 9¡§¡¡* ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·Ž¤¿Í¿ôʬ¤À¤± * ¤ò½ÐÎϤ¹¤ë¤³¤È' 'ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·Ž¤10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤ'(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô), 'ÇÛÉÛ¤ò¿Þ¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è ¡¡¡¡¡¡ 100¡§¡¡* 90¡¡-¡¡99¡§¡¡** 80¡¡-¡¡89¡§¡¡*** ¡¡¡¡¡¡(ÃæÎ¬) 0 -¡¡ 9¡§¡¡* ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·Ž¤¿Í¿ôʬ¤À¤± * ¤ò½ÐÎϤ¹¤ë¤³¤È'(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô). 'ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·Ž¤10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤ'(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- findall(_³ØÀ¸¤ÎÅÀ¿ô,( between(1,10,_), À°¿ô¤òÆÀ¤ë(³ØÀ¸¤ÎÅÀ¿ô,'ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·¡¢'(_³ØÀ¸¤ÎÅÀ¿ô),_³ØÀ¸¤ÎÅÀ¿ô)), _10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô). 'ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·¡¢'(_³ØÀ¸¤ÎÅÀ¿ô) :- _³ØÀ¸¤ÎÅÀ¿ô >= 0, _³ØÀ¸¤ÎÅÀ¿ô =< 100. 'ÇÛÉÛ¤ò¿Þ¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è ¡¡¡¡¡¡ 100¡§¡¡* 90¡¡-¡¡99¡§¡¡** 80¡¡-¡¡89¡§¡¡*** ¡¡¡¡¡¡(ÃæÎ¬) 0 -¡¡ 9¡§¡¡* ÅÀ¿ô¤Ï100ÅÀËþÅÀ¤È¤·Ž¤¿Í¿ôʬ¤À¤± * ¤ò½ÐÎϤ¹¤ë¤³¤È'(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- ɽ¼¨¤Ï100ÅÀ¤À¤±ÆÃÊÌ(_10¿Í¤Î³ØÀ¸ÅÀ¿ô), '100ÅÀ°Ê³°¤Î10¥¯¥é¥¹¤Îɽ¼¨'(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô). ɽ¼¨¤Ï100ÅÀ¤À¤±ÆÃÊÌ(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- ¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,100,100,_100ÅÀ¤Î³ØÀ¸¤Î¿Í¿ô), sub_atom('**********',0,_100ÅÀ¤Î³ØÀ¸¤Î¿Í¿ô,_,_100ÅÀ¤Î³ØÀ¸¤Î¿Í¿ôɽ¼¨), writef(' 100: %t\n',[_100ÅÀ¤Î³ØÀ¸¤Î¿Í¿ôɽ¼¨]),!. '100ÅÀ°Ê³°¤Î10¥¯¥é¥¹¤Îɽ¼¨'(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- ¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô(_¥¯¥é¥¹,_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô), sub_atom('**********',0,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô,_,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ôɽ¼¨), writef('%3R-%3R: %t\n',[_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ôɽ¼¨]), _¥¯¥é¥¹ = 0. ¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô(_¥¯¥é¥¹,_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô) :- member(_¥¯¥é¥¹,[9,8,7,6,5,4,3,2,1,0]), '¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô¡¢¾å¸Â¤ÎÅÀ¿ô'(_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô), ¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô). '¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô¡¢¾å¸Â¤ÎÅÀ¿ô'(_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô) :- _¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô is _¥¯¥é¥¹ * 10, _¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô is _¥¯¥é¥¹ * 10 + 9. ¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô(_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô,_¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô) :- finsum(1,( member(_³ØÀ¸¤ÎÅÀ¿ô,_10¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô), _³ØÀ¸¤ÎÅÀ¿ô >= _¥¯¥é¥¹¤Î²¼¸Â¤ÎÅÀ¿ô, _³ØÀ¸¤ÎÅÀ¿ô =< _¥¯¥é¥¹¤Î¾å¸Â¤ÎÅÀ¿ô)), _¥¯¥é¥¹¤Î³ØÀ¸¤Î¿Í¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1392388003/769 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ # 6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # '6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è' :- '6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë'. '6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë' :- '6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤ'(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô), ºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô). '6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ßޤ'(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- '6¿Í¤Î³ØÀ¸¤Î'(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô), ÅÀ¿ô¤òÆÉ¤ß¹þ¤ß(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô). '6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ß¡¢'(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- findall(_³ØÀ¸¤ÎÅÀ¿ô,( between(1,6,_), À°¿ô¤òÆÀ¤ë(³ØÀ¸¤ÎÅÀ¿ô,true,_³ØÀ¸¤ÎÅÀ¿ô)), _6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô). ºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô) :- ºÇ¹âÅÀ¤ò(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_ºÇ¹âÅÀ), ɽ¼¨¤¹¤ë(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_ºÇ¹âÅÀ). ºÇ¹âÅÀ¤ò(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_ºÇ¹âÅÀ) :- append(L1,[_ºÇ¹âÅÀ|L2],_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô), \+((member(A,L1),A > _ºÇ¹âÅÀ)), \+((member(A,L2),A > _ºÇ¹âÅÀ)). ɽ¼¨¤¹¤ë(_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô,_ºÇ¹âÅÀ) :- writef('6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô = %t,%t,%t,%t,%t,%t\n',_6¿Í¤Î³ØÀ¸¤ÎÅÀ¿ô), writef('ºÇ¹âÅÀ = %t\n',[_ºÇ¹âÅÀ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: http://peace.2ch.net/test/read.cgi/tech/1392388003/765 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°1 # [2] ÌäÂêʸ¡§n¿Íʬ¤Î»î¸³¤ÎÆÀÅÀ¤ÎϤÈÊ¿¶Ñ¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # »Ï¤á¤Ë½èÍý¤¹¤ë¥Ç¡¼¥¿¤Î¿Í¿ôn¤òÆÉ¤ß¹þ¤ß¡¢¼¡¤Ën¿Íʬ¤ÎÆÀÅÀ¤òÆÉ¤ß¹þ¤à¡£ # ¤½¤·¤Æ¡¢Ï¤ÈÊ¿¶Ñ¤òµá¤á½ÐÎϤ¹¤ë¡£ # ¼¡¤Ë¡¢s(90°Ê¾å)¡¢a(80¡Á89)¡¢b(70¡Á79)¡¢c(60¡Á69)¡¢f(¤½¤ì°Ê³°) # ¤Î¿Í¿ô¤òµá¤á¤ë¥×¥í¥°¥é¥à¤ò¡¢if elseʸ¤ò»È¤¤ºîÀ®¤»¤è¡£ # # ¤³¤³¤«¤é¤¬ËÜÂê¤Ê¤Î¤Ç¤¹¤¬ # # ¾åµ­ÌäÂê¤Îs¡¢a¡¢b¡¢c¡¢f¤Î¿Í¿ô¤ò # ´Ø¿ô¤ò»ÈÍѤ·¤Æ¡ö¤Çɽ¤¹¥Ò¥¹¥È¥°¥é¥à¤Ë¤»¤è¡£ # # 'n¿Íʬ¤Î»î¸³¤ÎÆÀÅÀ¤ÎϤÈÊ¿¶Ñ¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ »Ï¤á¤Ë½èÍý¤¹¤ë¥Ç¡¼¥¿¤Î¿Í¿ôn¤òÆÉ¤ß¹þ¤ß¡¢¼¡¤Ën¿Íʬ¤ÎÆÀÅÀ¤òÆÉ¤ß¹þ¤à¡£ ¤½¤·¤Æ¡¢Ï¤ÈÊ¿¶Ñ¤òµá¤á½ÐÎϤ¹¤ë¡£ ¼¡¤Ë¡¢s(90°Ê¾å)¡¢a(80¡Á89)¡¢b(70¡Á79)¡¢c(60¡Á69)¡¢f(¤½¤ì°Ê³°) ¤Î¿Í¿ô¤òµá¤á¤ë¥×¥í¥°¥é¥à¤ò¡¢if elseʸ¤ò»È¤¤ºîÀ®¤»¤è¡£ ¤³¤³¤«¤é¤¬ËÜÂê¤Ê¤Î¤Ç¤¹¤¬ ¾åµ­ÌäÂê¤Îs¡¢a¡¢b¡¢c¡¢f¤Î¿Í¿ô¤ò ´Ø¿ô¤ò»ÈÍѤ·¤Æ¡ö¤Çɽ¤¹¥Ò¥¹¥È¥°¥é¥à¤Ë¤»¤è¡£'(_¥Ò¥¹¥È¥°¥é¥à) :- 'n¿Íʬ¤Î»î¸³¤ÎÆÀÅÀ¤ÎϤÈÊ¿¶Ñ¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ »Ï¤á¤Ë½èÍý¤¹¤ë¥Ç¡¼¥¿¤Î¿Í¿ôn¤òÆÉ¤ß¹þ¤ß¡¢¼¡¤Ën¿Íʬ¤ÎÆÀÅÀ¤òÆÉ¤ß¹þ¤à¡£ ¤½¤·¤Æ¡¢Ï¤ÈÊ¿¶Ñ¤òµá¤á'(_n,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ), ½ÐÎϤ¹¤ë(_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ), '¼¡¤Ë¡¢s(90°Ê¾å)¡¢a(80¡Á89)¡¢b(70¡Á79)¡¢c(60¡Á69)¡¢f(¤½¤ì°Ê³°) ¤Î¿Í¿ô¤òµá¤á¤ë¥×¥í¥°¥é¥à¤ò¡¢if elseʸ¤ò»È¤¤ºîÀ®¤»¤è¡£'(_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó), '¾åµ­ÌäÂê¤Îs¡¢a¡¢b¡¢c¡¢f¤Î¿Í¿ô¤ò ´Ø¿ô¤ò»ÈÍѤ·¤Æ¡ö¤Çɽ¤¹¥Ò¥¹¥È¥°¥é¥à¤Ë¤»¤è¡£'(_n,_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó,_¥Ò¥¹¥È¥°¥é¥à). 'n¿Íʬ¤Î»î¸³¤ÎÆÀÅÀ¤ÎϤÈÊ¿¶Ñ¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ »Ï¤á¤Ë½èÍý¤¹¤ë¥Ç¡¼¥¿¤Î¿Í¿ôn¤òÆÉ¤ß¹þ¤ß¡¢¼¡¤Ën¿Íʬ¤ÎÆÀÅÀ¤òÆÉ¤ß¹þ¤à¡£ ¤½¤·¤Æ¡¢Ï¤ÈÊ¿¶Ñ¤òµá¤á'(_n,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ) :- '»Ï¤á¤Ë½èÍý¤¹¤ë¥Ç¡¼¥¿¤Î¿Í¿ôn¤òÆÉ¤ß¹þ¤ß¡¢'(_n), '¼¡¤Ën¿Íʬ¤ÎÆÀÅÀ¤òÆÉ¤ß¹þ¤à¡£'(_n,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó), 'n¿Íʬ¤Î»î¸³¤ÎÆÀÅÀ¤ÎϤÈÊ¿¶Ñ¤òµá¤á¤ë'(_n,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ). '»Ï¤á¤Ë½èÍý¤¹¤ë¥Ç¡¼¥¿¤Î¿Í¿ôn¤òÆÉ¤ß¹þ¤ß¡¢'(_n) :- À°¿ô¤òÆÀ¤ë(¿Í¿ô,true,_¿Í¿ô). '¼¡¤Ën¿Íʬ¤ÎÆÀÅÀ¤òÆÉ¤ß¹þ¤à¡£'(_n,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó) :- findall(_ÆÀÅÀ,( between(1,_n,_), À°¿ô¤òÆÀ¤ë(ÆÀÅÀ,true,_ÆÀÅÀ)), _n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó). 'n¿Íʬ¤Î»î¸³¤ÎÆÀÅÀ¤ÎϤÈÊ¿¶Ñ¤òµá¤á¤ë'(_n,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ) :- sum_list(_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_ÆÀÅÀ¤ÎÏÂ), _Ê¿¶Ñ is _ÆÀÅÀ¤ÎÏ / _n. ½ÐÎϤ¹¤ë(_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ) :- writef('ÆÀÅÀ¤ÎÏ = %t\nÊ¿¶Ñ = %t\n',[_ÆÀÅÀ¤ÎÏÂ,_Ê¿¶Ñ]). '¼¡¤Ë¡¢s(90°Ê¾å)¡¢a(80¡Á89)¡¢b(70¡Á79)¡¢c(60¡Á69)¡¢f(¤½¤ì°Ê³°) ¤Î¿Í¿ô¤òµá¤á¤ë¥×¥í¥°¥é¥à¤ò¡¢if elseʸ¤ò»È¤¤ºîÀ®¤»¤è¡£'(_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó) :- findall([_¥¯¥é¥¹,_¿Í¿ô],( member(_¥¯¥é¥¹,[s,a,b,c,f]), ¥¯¥é¥¹¤Î¿Í¿ô(_¥¯¥é¥¹,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¿Í¿ô)), _¥¯¥é¥¹_¿Í¿ô_¤Ê¤é¤Ó). ¥¯¥é¥¹¤Î¿Í¿ô(_¥¯¥é¥¹,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó,_¿Í¿ô) :- findall(1,( member(_ÆÀÅÀ,_n¿Íʬ¤ÎÆÀÅÀ¤Ê¤é¤Ó), ¥¯¥é¥¹(_¥¯¥é¥¹,_ÆÀÅÀ)), L), sum_list(L,_¿Í¿ô). ¥¯¥é¥¹(s,_ÆÀÅÀ) :- _ÆÀÅÀ >= 90. ¥¯¥é¥¹(a,_ÆÀÅÀ) :- between(80,89,_ÆÀÅÀ). ¥¯¥é¥¹(b,_ÆÀÅÀ) :- between(70,79,_ÆÀÅÀ). ¥¯¥é¥¹(c,_ÆÀÅÀ) :- between(60,69,_ÆÀÅÀ). ¥¯¥é¥¹(f,_ÆÀÅÀ) :- ¥¯¥é¥¹_f(_ÆÀÅÀ). ¥¯¥é¥¹_f(_ÆÀÅÀ) :- \+(_ÆÀÅÀ >= 60). '¾åµ­ÌäÂê¤Îs¡¢a¡¢b¡¢c¡¢f¤Î¿Í¿ô¤ò ´Ø¿ô¤ò»ÈÍѤ·¤Æ¡ö¤Çɽ¤¹¥Ò¥¹¥È¥°¥é¥à¤Ë¤»¤è¡£'(_n,_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó,_¥Ò¥¹¥È¥°¥é¥à) :- length(_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó,_¥¯¥é¥¹¤Î¿ô), ¥Ò¥¹¥È¥°¥é¥à¤ÎÀ¸À®(_n,_¥¯¥é¥¹¤Î¿ô,_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó,_¥Ò¥¹¥È¥°¥é¥à). ¥Ò¥¹¥È¥°¥é¥à¤ÎÀ¸À®(_n,_¥¯¥é¥¹¤Î¿ô,_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó,_¥Ò¥¹¥È¥°¥é¥à) :- findall([_¥¯¥é¥¹,_À±Ê¸»úÎó],( member([_¥¯¥é¥¹,_¿Í¿ô],_¥¯¥é¥¹_¿Í¿ô¤Ê¤é¤Ó), _À±¤Î¿ô is _¿Í¿ô // (_n // _¥¯¥é¥¹¤Î¿ô // 5), À±Ê¸»úÎó(_À±¤Î¿ô,_À±Ê¸»úÎó)), _¥Ò¥¹¥È¥°¥é¥à). À±Ê¸»úÎó(_À±¤Î¿ô,_À±Ê¸»úÎó) :- findall('¡ö',between(1,_À±¤Î¿ô,_),L), atomic_list_concat(L,_À±Ê¸»úÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://peace.2ch.net/test/read.cgi/tech/1392388003/740 # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] ÌäÂêʸ¡¢¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤ÎȽÄê½èÍý¤ò¹Ô¤¦ # £±¿ÍÌܤοô»úÎó¤òÆþÎϡʣ±¸Ä¡Á£±£°¸Ä¤Þ¤Ç¡Ë # £²¿ÍÌܤοô»úÎó¤òÆþÎϡʣ±¸Ä¡Á£±£°¸Ä¤Þ¤Ç¡Ë # ¿ô»ú¤Ï¡¢£±¤«¤é£±£³¡£ # ¹ç·×¤¬£²£±¤òͤ¨¤¿¤éÅÀ¿ô¤Ï¡¢£°ÅÀ¡£ # £±¤Ï¡¢£±ÅÀ¤Þ¤¿¤Ï¡¢£±£±ÅÀ¤È¤·¤Æ»È¤¨¤ë¡£ # £±£±°Ê¾å¤Ï£±£°ÅÀ¤È¤·¤Æ¿ô¤¨¤ë¡£ # ¤½¤ì°Ê³°¤Ï¡¢¿ô»ú¤¬¤½¤Î¤Þ¤ÞÅÀ¿ô¡£ # ¾¡¤Ã¤¿Êý¤òÈÖ¹æ¤Çɽ¼¨¡Ê1 or 2) # °ú¤­Ê¬¤±¤Ï¡¢2¤Î¾¡¤Á¤È¤¹¤ë # ¼Â¹ÔÎã¡Ë # 1 5 8 ÆþÎÏ£±(14) # 5 7 4 ÆþÎÏ£²(16) # 2 ½ÐÎÏ # 13 1 ÆþÎÏ£±(21) # 12 10 ÆþÎÏ£²(20) # 1 ½ÐÎÏ # 13 8 ÆþÎÏ£±(18) # 1 9 ÆþÎÏ£²(20) # 2 ½ÐÎÏ # 1 1 8 ÆþÎÏ£±(20) # 3 4 7 ÆþÎÏ£²(14) # 1 ½ÐÎÏ # 10 8 7 ÆþÎÏ£±(25) # 3 5 8 ÆþÎÏ£²(16) # 2 ½ÐÎÏ # '¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤ÎȽÄê½èÍý¤ò¹Ô¤¦ ¹ç·×¤¬£²£±¤òͤ¨¤¿¤éÅÀ¿ô¤Ï¡¢£°ÅÀ¡£ £±¤Ï¡¢£±ÅÀ¤Þ¤¿¤Ï¡¢£±£±ÅÀ¤È¤·¤Æ»È¤¨¤ë¡£ £±£±°Ê¾å¤Ï£±£°ÅÀ¤È¤·¤Æ¿ô¤¨¤ë¡£ ¤½¤ì°Ê³°¤Ï¡¢¿ô»ú¤¬¤½¤Î¤Þ¤ÞÅÀ¿ô¡£ ¾¡¤Ã¤¿Êý¤òÈÖ¹æ¤Çɽ¼¨¡Ê1 or 2) °ú¤­Ê¬¤±¤Ï¡¢2¤Î¾¡¤Á¤È¤¹¤ë' :- ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_£±¿ÍÌܤοô»ú¤Ê¤é¤Ó,_£²¿ÍÌܤοô»ú¤Ê¤é¤Ó), '¹ç·×¤¬£²£±¤òͤ¨¤¿¤éÅÀ¿ô¤Ï¡¢£°ÅÀ¡£ £±¤Ï¡¢£±ÅÀ¤Þ¤¿¤Ï¡¢£±£±ÅÀ¤È¤·¤Æ»È¤¨¤ë¡£ £±£±°Ê¾å¤Ï£±£°ÅÀ¤È¤·¤Æ¿ô¤¨¤ë¡£ ¤½¤ì°Ê³°¤Ï¡¢¿ô»ú¤¬¤½¤Î¤Þ¤ÞÅÀ¿ô¡£'(_£±¿ÍÌܤοô»ú¤Ê¤é¤Ó,_£²¿ÍÌܤοô»ú¤Ê¤é¤Ó,_ÅÀ¿ô_1,_ÅÀ¿ô_2), ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤ÎȽÄê(_ÅÀ¿ô_1,_ÅÀ¿ô_2,_¾¡¼Ô), ¾¡¤Ã¤¿Êý¤òÈÖ¹æ¤Çɽ¼¨(_¾¡¼Ô). ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_£±¿ÍÌܤοô»ú¤Ê¤é¤Ó,_£²¿ÍÌܤοô»ú¤Ê¤é¤Ó) :- ¥«¡¼¥É¤Î½àÈ÷(_Çۤ껥_1), ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_Çۤ껥_1,[],_£±¿ÍÌܤοô»ú¤Ê¤é¤Ó,_Çۤ껥_2), ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_Çۤ껥_2,[],_£²¿ÍÌܤοô»ú¤Ê¤é¤Ó,_),!. ¥«¡¼¥É¤Î½àÈ÷(_Çۤ껥) :- findall(N,( between(1,13,N), between(1,4,_)), _Çۤ껥). ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_Çۤ껥,_¿ô»ú¤Ê¤é¤Ó,_¿ô»ú¤Ê¤é¤Ó,_Çۤ껥) :- ¹ç·×ÅÀ¤ÎºÇ¹â(_¿ô»ú¤Ê¤é¤Ó,_¹ç·×ÅÀ¤ÎºÇ¹â), between(14,21,_¹ç·×ÅÀ¤ÎºÇ¹â),!. ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_Çۤ껥_1,_¸½ºß¤Þ¤Ç¤Î¿ô»ú¤Ê¤é¤Ó,_¿ô»ú¤Ê¤é¤Ó,_»Ä¤êÇۤ껥) :- °ìËçÇÛ¤ë(_Çۤ껥_1,_¿ô»ú,_Çۤ껥_2), ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤Î»¥¤òÇÛ¤ë(_Çۤ껥_2,[_¿ô»ú|_¸½ºß¤Þ¤Ç¤Î¿ô»ú¤Ê¤é¤Ó],_¿ô»ú¤Ê¤é¤Ó,_»Ä¤êÇۤ껥). °ìËçÇÛ¤ë(_Çۤ껥_1,_¿ô»ú,_Çۤ껥_2) :- length(_Çۤ껥_1,_Çۤ껥¤ÎËç¿ô), _È´¤­°ÌÃÖ is random(_Çۤ껥¤ÎËç¿ô), length(L1,_È´¤­°ÌÃÖ), append(L1,[_¿ô»ú|L2],_Çۤ껥_1), append(L1,L2,_Çۤ껥_2). '¹ç·×¤¬£²£±¤òͤ¨¤¿¤éÅÀ¿ô¤Ï¡¢£°ÅÀ¡£ £±¤Ï¡¢£±ÅÀ¤Þ¤¿¤Ï¡¢£±£±ÅÀ¤È¤·¤Æ»È¤¨¤ë¡£ £±£±°Ê¾å¤Ï£±£°ÅÀ¤È¤·¤Æ¿ô¤¨¤ë¡£ ¤½¤ì°Ê³°¤Ï¡¢¿ô»ú¤¬¤½¤Î¤Þ¤ÞÅÀ¿ô¡£'(_£±¿ÍÌܤοô»ú¤Ê¤é¤Ó,_£²¿ÍÌܤοô»ú¤Ê¤é¤Ó,_ÅÀ¿ô_1,_ÅÀ¿ô_2) :- ¹ç·×ÅÀ¤ÎºÇ¹â(_£±¿ÍÌܤοô»ú¤Ê¤é¤Ó,_ÅÀ¿ô_1), ¹ç·×ÅÀ¤ÎºÇ¹â(_£²¿ÍÌܤοô»ú¤Ê¤é¤Ó,_ÅÀ¿ô_2). ¹ç·×ÅÀ¤ÎºÇ¹â(_¿ô»ú¤Ê¤é¤Ó,_¹ç·×ÅÀ¤ÎºÇ¹â) :- findall(_¹ç·×ÅÀ,( ¹ç·×ÅÀ(_¿ô»ú¤Ê¤é¤Ó,_¹ç·×ÅÀ)), _¹ç·×ÅÀ¤Ê¤é¤Ó), findmax(_¹ç·×ÅÀ,( member(_¹ç·×ÅÀ,_¹ç·×ÅÀ¤Ê¤é¤Ó), _¹ç·×ÅÀ =< 21), _¹ç·×ÅÀ¤ÎºÇ¹â),!. ¹ç·×ÅÀ¤ÎºÇ¹â(_,0). ¹ç·×ÅÀ([],0). ¹ç·×ÅÀ([N|R],S) :- ¹ç·×ÅÀ(R,S_2), ÅÀ¿ô¤Î¿ô¤¨Êý(N,N_2), S is N_2 + S_2. ÅÀ¿ô¤Î¿ô¤¨Êý(1,1). ÅÀ¿ô¤Î¿ô¤¨Êý(1,11). ÅÀ¿ô¤Î¿ô¤¨Êý(11,10). ÅÀ¿ô¤Î¿ô¤¨Êý(12,10). ÅÀ¿ô¤Î¿ô¤¨Êý(13,10). ÅÀ¿ô¤Î¿ô¤¨Êý(N,N) :- between(2,10,N). ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤ÎȽÄê(_ÅÀ¿ô_1,_ÅÀ¿ô_2,2) :- _ÅÀ¿ô_2 >= _ÅÀ¿ô_1,!. ¥Ö¥é¥Ã¥¯¥¸¥ã¥Ã¥¯¤ÎȽÄê(_,_,1). ¾¡¤Ã¤¿Êý¤òÈÖ¹æ¤Çɽ¼¨(_¾¡¼Ô) :- writef('¾¡¤Ã¤¿¤Î¤Ï %t ¤Ç¤¹\n',[_¾¡¼Ô]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: http://peace.2ch.net/test/read.cgi/tech/1392388003/736 # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] ÌäÂêʸ # °Ê²¼¤Î¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤. # ʸ»úÎó¤ò£µ¤ÄÆþÎϤ·¡¢¤½¤ÎÃæ¤Î # °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤òɽ¼¨ # ¡Ê±Ñ¿ô»ú¤Î¤ß¡Ë # ¡Êʸ»úÎó¤Ï¡¢50ʸ»ú°ÊÆâ¡Ë # ¡Ê±Ñ»ú¤ÎÂçʸ»ú¤È¾®Ê¸»ú¤Ï¡¢ # ¡¡ÆÃ¤Ë¹Íθ¤·¤Ê¤¤¤Ç¡¢¤½¤Î¤Þ¤ÞÈæ³Ó # ¡¡¤·¤ÆÎɤ¤¤³¤È¤È¤¹¤ë¡Ë # # ¼Â¹ÔÎã¡Ë # abc ÆþÎÏ£± # aaaa ÆþÎÏ£² # wsdd ÆþÎÏ£³ # gfd ÆþÎÏ£´ # xxxd ÆþÎÏ£µ # aaaa ½ÐÎÏ # 19dfc ÆþÎÏ£± # xuw29 ÆþÎÏ£² # 12k2 ÆþÎÏ£³ # mnnn ÆþÎÏ£´ # bccd1 ÆþÎÏ£µ # 12k2 ½ÐÎÏ # 'ʸ»úÎó¤ò£µ¤ÄÆþÎϤ·¡¢¤½¤ÎÃæ¤Î°ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤òɽ¼¨ ¡Ê±Ñ¿ô»ú¤Î¤ß¡Ë¡Êʸ»úÎó¤Ï¡¢50ʸ»ú°ÊÆâ¡Ë¡Ê±Ñ»ú¤ÎÂçʸ»ú¤È¾®Ê¸»ú¤Ï¡¢ÆÃ¤Ë¹Íθ¤·¤Ê¤¤¤Ç¡¢¤½¤Î¤Þ¤ÞÈæ³Ó¤·¤ÆÎɤ¤¤³¤È¤È¤¹¤ë¡Ë' :- 'ʸ»úÎó¤ò£µ¤ÄÆþÎϤ·¡¢'(_ʸ»úÎó¤Ê¤é¤Ó), °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤òɽ¼¨(_ʸ»úÎó¤Ê¤é¤Ó). 'ʸ»úÎó¤ò£µ¤ÄÆþÎϤ·¡¢'(_ʸ»úÎó¤Ê¤é¤Ó) :- findall(_ʸ»úÎó,( between(1,5,_), get_line(_ʸ»úÎó)), _ʸ»úÎó¤Ê¤é¤Ó). °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤òɽ¼¨([_ʸ»úÎó|_»Ä¤êʸ»úÎó¤Ê¤é¤Ó],_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó) :- °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤ò(_»Ä¤êʸ»úÎó¤Ê¤é¤Ó],_ʸ»úÎó,_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó), ɽ¼¨(_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó). °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤ò([],_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó,_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó). °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤ò([_ʸ»úÎó|_»Ä¤êʸ»úÎó¤Ê¤é¤Ó],_¸½»þÅÀ¤Ç°ìÈÖ¾®¤µ¤¤Ê¸»úÎó,_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó) :- _ʸ»úÎó @< _¸½»þÅÀ¤Ç°ìÈÖ¾®¤µ¤¤Ê¸»úÎó, °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤ò(_»Ä¤êʸ»úÎó¤Ê¤é¤Ó,_ʸ»úÎó,_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó). °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤ò([_ʸ»úÎó|_»Ä¤êʸ»úÎó¤Ê¤é¤Ó],_¸½»þÅÀ¤Ç°ìÈÖ¾®¤µ¤¤Ê¸»úÎó,_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó) :- _ʸ»úÎó @>= _¸½»þÅÀ¤Ç°ìÈÖ¾®¤µ¤¤Ê¸»úÎó, °ìÈÖ¾®¤µ¤¤Ê¸»úÎó¤ò(_»Ä¤êʸ»úÎó¤Ê¤é¤Ó,_¸½»þÅÀ¤Ç°ìÈÖ¾®¤µ¤¤Ê¸»úÎó,_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó). ɽ¼¨(_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó) :- writef('%t\n',[_°ìÈÖ¾®¤µ¤¤Ê¸»úÎó]). get_line(X) :- get_char(C), get_line_1(C,Chars), atom_chars(X,Chars). get_line_1('\n',[]) :- !. get_line_1(end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(C,[C|R]) :- get_char(C2), get_line_1(C2,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % tic-tac-toe¸¡ºº % 'tic-tac-toe¸¡ºº'(LL) :- member([A,A,A],LL). 'tic-tac-toe¸¡ºº'(LL) :- between(1,3,_nth1), findall(A,( member(L,LL), nth1(_nth1,L,A)), [A,A,A]). 'tic-tac-toe¸¡ºº'(LL) :- 'tic-tac-toe³Ñ¹Ô¸¡ºº'(LL,[1,2,3]). 'tic-tac-toe¸¡ºº'(LL) :- 'tic-tac-toe³Ñ¹Ô¸¡ºº'(LL,[3,2,1]). 'tic-tac-toe³Ñ¹Ô¸¡ºº'(LL,_½ç½ø¤Ê¤é¤Ó) :- findall(L,( member(_nth1,_½ç½ø¤Ê¤é¤Ó), nth1(_nth1,LL,L), nth1(_nth1,L,A)), [A,A,A]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ËâÊý¿Ø(_ËâÊý¿Ø) :- ËâÊý¿Ø¤Î¹½À®Í×ÁǤòÆÀ¤ë(_ËâÊý¿Ø,Ln1,Ln2,_¿ô¤Ê¤é¤Ó), ËâÊý¿Ø¤ò¹½À®¤·¤Æ¤ß¤ë(Ln1,Ln2,_¿ô¤Ê¤é¤Ó,_¹Ô_Îó_¹ç·×,_ËâÊý¿Ø), ËâÊý¿ØÎ󸡺º(_ËâÊý¿Ø,_¹Ô_Îó_¹ç·×). ËâÊý¿Ø¤Î¹½À®Í×ÁǤòÆÀ¤ë(_ËâÊý¿Ø,Ln1,Ln2,_¿ô¤Ê¤é¤Ó) :- length(_ËâÊý¿Ø,_n), length(Ln1,_n), length(Ln2,_n), _n³Ý¤±¤ën is _n * _n, findall(M,between(1,_n³Ý¤±¤ën,M),_¿ô¤Ê¤é¤Ó). ËâÊý¿Ø¤ò¹½À®¤·¤Æ¤ß¤ë([],Ln2,_,_¹Ô¤Î¹ç·×,[]). ËâÊý¿Ø¤ò¹½À®¤·¤Æ¤ß¤ë([_|Ln1],Ln2,_¿ô¤Ê¤é¤Ó_1,_¹Ô¤Î¹ç·×,[L|R]) :- ËâÊý¿Ø¤Î°ì¹Ô¤òÆÀ¤ë(Ln2,_¿ô¤Ê¤é¤Ó_1,L,_¿ô¤Ê¤é¤Ó_2), sum_list(L,_¹Ô¤Î¹ç·×), ËâÊý¿Ø¤ò¹½À®¤·¤Æ¤ß¤ë(Ln1,Ln2,_¿ô¤Ê¤é¤Ó_2,_¹Ô¤Î¹ç·×,R). ËâÊý¿Ø¤Î°ì¹Ô¤òÆÀ¤ë([],_»Ä¤ê¿ô¤Ê¤é¤Ó,[],_»Ä¤ê¿ô¤Ê¤é¤Ó). ËâÊý¿Ø¤Î°ì¹Ô¤òÆÀ¤ë([_|Ln],_¿ô¤Ê¤é¤Ó_1,[_n|R4],_»Ä¤ê¿ô¤Ê¤é¤Ó) :- select(_n,_¿ô¤Ê¤é¤Ó_1,_¿ô¤Ê¤é¤Ó_2), ËâÊý¿Ø¤Î°ì¹Ô¤òÆÀ¤ë(Ln,_¿ô¤Ê¤é¤Ó_2,R4,_»Ä¤ê¿ô¤Ê¤é¤Ó). ËâÊý¿ØÎ󸡺º(_¹ÔÎó,_¹Ô_Îó¤Î¹ç·×) :- žÃÖ(_¹ÔÎó,_žÃÖ¹ÔÎó), ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(_žÃÖ¹ÔÎó,_¹Ô_Îó¤Î¹ç·×). ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë([],_). ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë([L|R],S) :- sum_list(L,S), ¹Ô¤Î¹ç·×¤¬Á´¤Æ°ìÃפ¹¤ë(R,S). žÃÖ([[]|_],[]) :- !. žÃÖ(L,[L1|R2]) :- žÃÖ(L,L2,L1), žÃÖ(L2,R2). žÃÖ([],[],[]) :- !. žÃÖ([[A|R1]|R2],[R1|R3],[A|R4]) :- žÃÖ(R2,R3,R4). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¼÷Ì¿¤¬½Ì¤à¤È¤Ï¡¢¤¢¤ë¸¶°ø¤È¤Ê¤ë»öͳ¤¬¤¢¤Ã¤Æ¡¢ËÜÍè¤Î;̿¤Î¸º¾¯¤ò¾å²ó¤Ã¤ÆÍ¾Ì¿¤¬¸º¾¯¤¹¤ë¤³¤È¤À¡£ # ¤¢¤Î¥¸¥¸¥¤¤Î(ÈøºêδÂç,65,15). ¤¢¤ë¸¶°ø¤È¤Ê¤ë»öͳ(_). ¤¢¤Î¥¸¥¸¥¤¤Î¼÷Ì¿¤¬½Ì¤à(_¤¢¤Î¥¸¥¸¥¤,_¸½ºß¤ÎǯÎð,_¸½ºß¤Î;̿,_nǯ¸å,_ǯÎð,_;̿) :- ¤¢¤Î¥¸¥¸¥¤¤Î(_¤¢¤Î¥¸¥¸¥¤,_¸½ºß¤ÎǯÎð,_¸½ºß¤Î;̿), ¼÷Ì¿¤¬½Ì¤à(_¤¢¤Î¥¸¥¸¥¤,_¸½ºß¤ÎǯÎð,_¸½ºß¤Î;̿,_nǯ¸å,_ǯÎð,_;̿). ¼÷Ì¿¤¬½Ì¤à(_¤¢¤Î¥¸¥¸¥¤,_ǯÎð_1,_¸½ºß¤Î;̿,_nǯ¸å,_ǯÎð,_;̿) :- '¼÷Ì¿¤¬½Ì¤à¤È¤Ï¡¢¤¢¤ë¸¶°ø¤È¤Ê¤ë»öͳ¤¬¤¢¤Ã¤Æ¡¢ËÜÍè¤Î;̿¤Î¸º¾¯¤ò¾å²ó¤Ã¤ÆÍ¾Ì¿¤¬¸º¾¯¤¹¤ë¤³¤È¤Ç¤¢¤ë'(_ǯÎð_1,_¸½ºß¤Î;̿,_nǯ¸å,_ǯÎð,_;̿,_ËÜÍè¤Î;̿¤Î¸º¾¯,_;̿¤Î¸º¾¯). '¼÷Ì¿¤¬½Ì¤à¤È¤Ï¡¢¤¢¤ë¸¶°ø¤È¤Ê¤ë»öͳ¤¬¤¢¤Ã¤Æ¡¢ËÜÍè¤Î;̿¤Î¸º¾¯¤ò¾å²ó¤Ã¤ÆÍ¾Ì¿¤¬¸º¾¯¤¹¤ë¤³¤È¤Ç¤¢¤ë'(_¸½ºß¤ÎǯÎð,_¸½ºß¤Î;̿,_nǯ¸å,_ǯÎð,_;̿,_ËÜÍè¤Î;̿¤Î¸º¾¯,_;̿¤Î¸º¾¯) :- ¤¢¤ë¸¶°ø¤È¤Ê¤ë»öͳ(_¤¢¤ë¸¶°ø¤È¤Ê¤ë»öͳ), ËÜÍè¤Î;̿¤Î¸º¾¯¤ò¾å²ó¤Ã¤ÆÍ¾Ì¿¤¬¸º¾¯¤¹¤ë¤³¤È¤Ç¤¢¤ë(_¸½ºß¤ÎǯÎð,_nǯ¸å,_ǯÎð,_;̿,_ËÜÍè¤Î;̿¤Î¸º¾¯,_;̿¤Î¸º¾¯). ËÜÍè¤Î;̿¤Î¸º¾¯¤ò¾å²ó¤Ã¤ÆÍ¾Ì¿¤¬¸º¾¯¤¹¤ë¤³¤È¤Ç¤¢¤ë(_¸½ºß¤ÎǯÎð,_nǯ¸å,_ǯÎð,_;̿,_ËÜÍè¤Î;̿¤Î¸º¾¯,_;̿¤Î¸º¾¯) :- ËÜÍè¤Î;̿¤Î¸º¾¯(_nǯ¸å,_ËÜÍè¤Î;̿¤Î¸º¾¯), ;̿¤Î¸º¾¯(_¸½ºß¤Î;̿,_;̿,_;̿¤Î¸º¾¯), _;̿¤Î¸º¾¯ > _ËÜÍè¤Î;̿¤Î¸º¾¯, _ǯÎð is _¸½ºß¤ÎǯÎð + _nǯ¸å. ËÜÍè¤Î;̿¤Î¸º¾¯(_ËÜÍè¤Î;̿¤Î¸º¾¯,_ËÜÍè¤Î;̿¤Î¸º¾¯). ;̿¤Î¸º¾¯(_¸½ºß¤Î;̿,_;̿,_;̿¤Î¸º¾¯) :- between(1,_¸½ºß¤Î;̿,_;̿), _;̿¤Î¸º¾¯ is _¸½ºß¤Î;̿ - _;̿. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ÌäÂê # ¾ÜºÙ¤ÊÌäÂêʸ # »ä¤Î¥Ä¥¤¡¼¥È(1) # »ä¤Î¥Ä¥¤¡¼¥È(2) # »ä¤Î¥Ä¥¤¡¼¥È(3) # D¤ÏÁ°¤ËÆó¿Í¤¤¤ë¤È¸À¤Ã¤Æ¤¤¤ë¤«¤é3¿Í°Ê¾å¤ÎÉô²°¤Ë¤¤¤ë¡£ # Éô²°¤Ï4¿Í1Éô²°¤«¡¢3¿Í¤È1¿Í¤ÎÆó¤Ä¤Î²ÄǽÀ­¤·¤«¤Ê¤¤¡£ # ¼«Ê¬¤¬Á°¤«¤é2¿ÍÌܤò¼çÄ¥¤¹¤ëC¤ÏɬÁ³Åª¤Ë4¿Í¤Þ¤¿¤Ï3¿Í¤ÎÉô²°¤Ë¤¤¤ë # ¤³¤ÎÉô²°¤ÎC¤Î¼çÄ¥¤«¤éÀèÆ¬¤¬Çò¤Ç¡¢D¤Î¼çÄ¥¤«¤é1¿ÍÌÜ2¿ÍÌܤÏÇò¤«¹õ¤Î¤É¤Á¤é¤À¤«¤é2¿ÍÌܤÎC¤Ï¹õ¤È¤ï¤«¤ë # 'D¤ÏÁ°¤ËÆó¿Í¤¤¤ë¤È¸À¤Ã¤Æ¤¤¤ë¤«¤é3¿Í°Ê¾å¤ÎÉô²°¤Ë¤¤¤ë¡£Éô²°¤Ï4¿Í1Éô²°¤«¡¢3¿Í¤È1¿Í¤Î¤Õ¤¿Éô²°¤Î¡¢Æó¤Ä¤Î²ÄǽÀ­¤·¤«¤Ê¤¤'(LL) :- length([_,_,D|_],N), findall(L,'3¿Í°Ê¾å¤ÎÉô²°¤¬¤¢¤ë'(L),LL). '3¿Í°Ê¾å¤ÎÉô²°¤Ë¤¤¤ë'(L) :- ÁíÁȹ礻([1,2,3,4],L), sum_list(L,4), member(M,L), M >= 3. ÁíÁȹ礻([],_). ÁíÁȹ礻(L1,L2) :- length(L1,N), between(1,N,D), ½ÅÊ£Áȹ礻(L1,D,L2). ½ÅÊ£Áȹ礻(X,1,[A]) :- member(A,X). ½ÅÊ£Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, ½ÅÊ£Áȹ礻([A|Y],M,X). ½ÅÊ£Áȹ礻([_|Y],N,A) :- N > 1, ½ÅÊ£Áȹ礻(Y,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part4 #353 # # ÁÇ¿ôp¤ÈÁÇ¿ôq¤«¤é(p-1)¤È(q-1)¤ÎºÇ¾®¸øÇÜ¿ô¤òµá¤á¤ë¡£ # ºÇÂçp*q¤Þ¤Ç¤Î¿ô¤Ç¡¢n*ºÇ¾®¸øÇÜ¿ô+1¤Î½¸¹ç¤òµá¤á¤ë¡£ # ¤³¤Î½¸¹ç¤ÎÃæ¤«¤é¡¢e¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤òõ¤¹¡£ # Îã:p=5,q=7:(5-1)¤È(7-1)¤Ä¤Þ¤ê4¤È6¤ÎºÇ¾®¸øÇÜ¿ô¤Ï12¡£ # Îã:p*q=35¤Ê¤Î¤Ç12+1,24+1,36+1(>35)¤Ä¤Þ¤ê13¤È25¡£ # Îã:25/5=5=d¤È¤Ê¤ë¡£e¤Ï³ä¤êÀÚ¤ì¤ë¿ô¤¬¤¢¤é¤«¤¸¤áÆþÎϤµ¤ì¤ë¡£ 'ÁÇ¿ôp¤ÈÁÇ¿ôq¤«¤é(p-1)¤È(q-1)¤ÎºÇ¾®¸øÇÜ¿ô¤òµá¤á¤ë¡£ ºÇÂçp*q¤Þ¤Ç¤Î¿ô¤Ç¡¢n*ºÇ¾®¸øÇÜ¿ô+1¤Î½¸¹ç¤òµá¤á¤ë¡£ ¤³¤Î½¸¹ç¤ÎÃæ¤«¤é¡¢e¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤òõ¤¹¡£'(_p,_q,_e,X) :- _n is _p * _q, 'ÁÇ¿ôp¤ÈÁÇ¿ôq¤«¤é(p-1)¤È(q-1)¤ÎºÇ¾®¸øÇÜ¿ô¤òµá¤á¤ë¡£'(_p,_q,_ºÇ¾®¸øÇÜ¿ô), 'ºÇÂçp*q¤Þ¤Ç¤Î¿ô¤Ç¡¢n*ºÇ¾®¸øÇÜ¿ô+1¤Î½¸¹ç¤òµá¤á¤ë¡£'(_n,_ºÇ¾®¸øÇÜ¿ô,_½¸¹ç), '¤³¤Î½¸¹ç¤ÎÃæ¤«¤é¡¢e¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤òõ¤¹¡£'(_½¸¹ç,_e,X). 'ÁÇ¿ôp¤ÈÁÇ¿ôq¤«¤é(p-1)¤È(q-1)¤ÎºÇ¾®¸øÇÜ¿ô¤òµá¤á¤ë¡£'(_p,_q,_ºÇ¾®¸øÇÜ¿ô) :- _p_1 is _p - 1, _q_1 is _q - 1, ºÇ¾®¸øÇÜ¿ô(_p_1,_q_1,_ºÇ¾®¸øÇÜ¿ô). 'ºÇÂçp*q¤Þ¤Ç¤Î¿ô¤Ç¡¢n*ºÇ¾®¸øÇÜ¿ô+1¤Î½¸¹ç¤òµá¤á¤ë¡£'(_n,_ºÇ¾®¸øÇÜ¿ô,_½¸¹ç) :- findall(_s,( between(1,_n,_), _s is _n * _ºÇ¾®¸øÇÜ¿ô + 1), _½¸¹ç). '¤³¤Î½¸¹ç¤ÎÃæ¤«¤é¡¢e¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤òõ¤¹¡£'(_½¸¹ç,_e,X) :- member(X,_½¸¹ç), 0 is X mod _e. ºÇ¾®¸øÇÜ¿ô(A,B,X) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(A,B,C), X is A * B // C. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # S(1¡åS¡å10) # L(100¡åL¡å100) # ɸ½àÆþÎϤ«¤é°Ê²¼¤Î·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë # S L # # Îã¤ò»²¹Í¤Ëo¤Èx¤òÇÛÃÖ¤»¤è # # Îã # 3 2 # oooxxx # oooxxx # oooxxx # xxxooo # xxxooo # xxxooo # # 2 3 # ooxxoo # ooxxoo # xxooxx # xxooxx # ooxxoo # ooxxoo # # 1 1 # o # # 2 1 # oo # :- dynamic(¹Ô¥Ñ¥¿¡¼¥ó,1). Çò(Çò). ¹õ(¹õ). '_¹Ô¿ô is S * L, S(1¡åS¡å10) L(100¡åL¡å100) ɸ½àÆþÎϤ«¤é°Ê²¼¤Î·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë S L' :- 'S L¤òÆÀ¤ë'(_s,_l), ɽ¼¨¥Ñ¥¿¡¼¥ó¤Î·ÁÀ®(_s,_l,LL1), ½ÐÎϤ¹¤ë(LL1). ɽ¼¨¥Ñ¥¿¡¼¥ó¤Î·ÁÀ®(_s,_l,_ɽ¼¨¥Ñ¥¿¡¼¥ó) :- ¹Ô¥Ñ¥¿¡¼¥ó¤ÎÄêµÁ(_s,_l), ɽ¤Î·ÁÀ®(_s,_l,_ɽ¼¨¥Ñ¥¿¡¼¥ó), žÃÖ¤·¤Æ¶ñÂÎÃͤòËä¤á¤ë(_ɽ¼¨¥Ñ¥¿¡¼¥ó). ¹Ô¥Ñ¥¿¡¼¥ó¤ÎÄêµÁ(_s,_l) :- Çò(_Çò), ¹õ(_¹õ), ¹Ô¥Ñ¥¿¡¼¥ó¤ÎÀ¸À®(_Çò,_¹õ,_s,_l), ¹Ô¥Ñ¥¿¡¼¥ó¤ÎÀ¸À®(_¹õ,_Çò,_s,_l). ¹Ô¥Ñ¥¿¡¼¥ó¤ÎÀ¸À®(_ʸ»ú_1,_ʸ»ú_2,_s,_l) :- length(Ln,_l), findall(ʸ»ú,( Ʊ°ìʸ»úÎó¥È¥°¥ë(Ln,_s,_ʸ»ú_1,_ʸ»ú_2,_ʸ»ú)), _¹Ô¥Ñ¥¿¡¼¥ó), assertz(¹Ô¥Ñ¥¿¡¼¥ó(_¹Ô¥Ñ¥¿¡¼¥ó)). Ʊ°ìʸ»úÎó¥È¥°¥ë([_|_],_s,_ʸ»ú,_,_ʸ»ú) :- between(1,_s,_). Ʊ°ìʸ»úÎó¥È¥°¥ë([_|Ln],_s,_ʸ»ú_1,_ʸ»ú_2,_ʸ»ú) :- Ʊ°ìʸ»úÎó¥È¥°¥ë(Ln,_s,_ʸ»ú_2,_ʸ»ú_1,_ʸ»ú). žÃÖ¤·¤Æ¶ñÂÎÃͤòËä¤á¤ë([L1|R]) :- žÃÖ([L1|R],LL2), findall(L,( member(L,LL2), ¹Ô¥Ñ¥¿¡¼¥ó(L)), LL2). ɽ¤Î·ÁÀ®(_s,_l,[_¹Ô¥Ñ¥¿¡¼¥ó|LL]) :- ¹Ô¥Ñ¥¿¡¼¥ó(_¹Ô¥Ñ¥¿¡¼¥ó),!, findall(L,( between(2,_l,_), length(L,_s)), LL). žÃÖ([[]|_],[]) :- !. žÃÖ(L,[L1|R2]) :- žÃÖ(L,L2,L1), žÃÖ(L2,R2). žÃÖ([],[],[]) :- !. žÃÖ([[A|R1]|R2],[R1|R3],[A|R4]) :- žÃÖ(R2,R3,R4). 'S L¤òÆÀ¤ë'(S,L) :- get_line(Line), split(Line,[' '],[S,L]). ½ÐÎϤ¹¤ë(LL) :- flatten(LL,L), forall(member(A,L),format('~w\n',[A])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # S(1¡åS¡å10) # L(100¡åL¡å100) # ɸ½àÆþÎϤ«¤é°Ê²¼¤Î·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë # S L # # Îã¤ò»²¹Í¤Ëo¤Èx¤òÇÛÃÖ¤»¤è # # Îã # 3 2 # oooxxx # oooxxx # oooxxx # xxxooo # xxxooo # xxxooo # # 2 3 # ooxxoo # ooxxoo # xxooxx # xxooxx # ooxxoo # ooxxoo # # 1 1 # o # # 2 1 # oo # '_¹Ô¿ô is S * L, S(1¡åS¡å10) L(100¡åL¡å100) ɸ½àÆþÎϤ«¤é°Ê²¼¤Î·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë S L' :- 'S L¤òÆÀ¤ë'(S,L), ¹Ô¥Ñ¥¿¡¼¥óAB¤òÆÀ¤ë(S,L,A,B), findall(AorB,( between(1,L,N), 'AorB'(N,A,B,AorB)), X), ½ÐÎϤ¹¤ë(X). 'S L¤òÆÀ¤ë'(S,L) :- get_line(Line), split(Line,[' '],[S,L]). ½ÐÎϤ¹¤ë(LL) :- flatten(LL,L), forall(member(A,L),format('~w\n',[A])). 'AorB'(N,A,_,A) :- 1 is N mod 2. 'AorB'(N,_,B,B) :- 0 is N mod 2. ¹Ô¥Ñ¥¿¡¼¥óAB¤òÆÀ¤ë(S,L,A,B) :- ¹ç·×L¹Ô(L,Çò,¹õ,S,L,A), ¹ç·×L¹Ô(L,¹õ,Çò,S,L,B). ¹ç·×L¹Ô(0,_,_,_,_,[]) :- !. ¹ç·×L¹Ô(L_2,_ʸ»ú_1,_ʸ»ú_2,S,L,[_¹Ôʸ»úÎó|R]) :- ¹Ôʸ»úÎó(_ʸ»ú_1,_ʸ»ú_2,S,L,_¹Ôʸ»úÎó), succ(L_1,L_2), ¹ç·×L¹Ô(L_1,_ʸ»ú_1,_ʸ»ú_2,S,L,R). ¹Ôʸ»úÎó(_,_,_,0,'') :- !. ¹Ôʸ»úÎó(_ʸ»ú_1,_ʸ»ú_2,S,L,_ʸ»úÎó) :- Ϣ³ʸ»úÎó(_ʸ»ú_1,S,_Ϣ³ʸ»úÎó), succ(L_1,L), ¹Ôʸ»úÎó(_ʸ»ú_2,_ʸ»ú_1,S,L_1,_Ϣ³ʸ»úÎó_1), atom_concat(_Ϣ³ʸ»úÎó,_Ϣ³ʸ»úÎó_1,_ʸ»úÎó). Ϣ³ʸ»úÎó(_ʸ»ú,S,_Ϣ³ʸ»úÎó) :- findall(_ʸ»ú,between(1,S,_),L), atom_chars(_Ϣ³ʸ»úÎó,L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # append/4¤«¤éappend/n¤Þ¤Ç¤ò°ìµ¤¤ËÄêµÁ¤·¤Æ¤·¤Þ¤¦¡¢ 'append/4¤«¤é/n¤ÎÄêµÁ'/1 ¡£ # append/n¤ÎÄêµÁ¡¢ 'append/n¤ÎÄêµÁ'/1 ¡£ # 'append/4¤«¤éappend/n¤ÎÄêµÁ'(_n) :- between(4,_n,M), 'abolish_append/n'(M), 'append/n¤ÎÄêµÁ'(M), _n = M. 'append/n¤ÎÄêµÁ'(_n) :- 'L2¤«¤éLn¤Þ¤Ç'(_n,_L2_Ln), 'L2¤«¤éLn_1¤Þ¤Ç'(_n,_L2_Ln_1), 'L1¤«¤éLn¤Þ¤Ç'(_n,_L1_Ln), 'append/n¤ÎÄêµÁ'(_n,_L2_Ln,_L2_Ln_1,_L1_Ln). 'append/n¤ÎÄêµÁ'(_n,_L2_Ln,_L2_Ln_1,_L1_Ln) :- 'append/n¤ÎÂè°ìÀá¤ÎÄêµÁ'(_n,_L2_Ln), 'append/n¤ÎÂèÆóÀá¤ÎÄêµÁ'(_n,_L2_Ln_1,_L1_Ln). 'append/n¤ÎÂè°ìÀá¤ÎÄêµÁ'(_n,_L2_Ln) :- format(atom(S1),'append([],~w) :-~n append(~p).~n',[_L2_Ln,_L2_Ln]), read_term_from_atom(S1,Clause_1,[variables(_ÊÑ¿ô¤Ê¤é¤Ó),variable_names(_ÊÑ¿ô̾¤Ê¤é¤Ó)]), assertz(Clause_1). 'append/n¤ÎÂèÆóÀá¤ÎÄêµÁ'(_n,_L2_Ln_1,_L1_Ln) :- format(atom(S2),'append([U|L1],~w,[U|L~p]) :-~n append(~w).\n',[_L2_Ln_1,_n,_L1_Ln]), read_term_from_atom(S2,Clause_2,[variables(_ÊÑ¿ô¤Ê¤é¤Ó),variable_names(_ÊÑ¿ô̾¤Ê¤é¤Ó)]), assertz(Clause_2). 'L2¤«¤éLn¤Þ¤Ç'(_n,_L2_Ln) :- findall(A,( between(2,_n,M), atom_concat('L',M,A)), L), atomic_list_concat(L,',',_L2_Ln). 'L2¤«¤éLn_1¤Þ¤Ç'(_n,_L2_Ln_1) :- _m is _n - 1, findall(A,( between(2,_m,M), atom_concat('L',M,A)), L), atomic_list_concat(L,',',_L2_Ln_1). 'L1¤«¤éLn¤Þ¤Ç'(_n,_L1_Ln) :- findall(A,( between(1,_n,M), atom_concat('L',M,A)), L), atomic_list_concat(L,',',_L1_Ln). 'abolish_append/n'(_n) :- abolish(append,_n). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part4 #224 # # ¤ªÂê¡§¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£10000°Ê²¼¤Ç¤³¤ÎÁàºî¤Î·«¤êÊÖ¤·²ó¿ô¤¬ºÇÂç¤È¤Ê¤ë¼«Á³¿ôn¤òµá¤á¤ë¡£ # '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£10000°Ê²¼¤Ç¤³¤ÎÁàºî¤Î·«¤êÊÖ¤·²ó¿ô¤¬ºÇÂç¤È¤Ê¤ë¼«Á³¿ôn¤òµá¤á¤ë¡£'(_¼«Á³¿ôn) :- findall([_·«¤êÊÖ¤·²ó¿ô,_¼«Á³¿ôn],( between(1,10000,_¼«Á³¿ôn), '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£'(_¼«Á³¿ôn,_·«¤êÊÖ¤·²ó¿ô)), _·«¤êÊÖ¤·¿ô_¼«Á³¿ôn¤Ê¤é¤Ó), ·«¤êÊÖ¤·¿ô¤¬ºÇÂç¤Î¼«Á³¿ôn¤òÆÀ¤ë(_·«¤êÊÖ¤·¿ô_¼«Á³¿ôn¤Ê¤é¤Ó,_¼«Á³¿ôn). '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£'(_n,_·«¤êÊÖ¤·²ó¿ô) :- '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£'(_n,0,_·«¤êÊÖ¤·²ó¿ô). '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£'(3,_·«¤êÊÖ¤·²ó¿ô,_·«¤êÊÖ¤·²ó¿ô) :- !. '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£'(_n,_·«¤êÊÖ¤·²ó¿ô_1,_·«¤êÊÖ¤·²ó¿ô) :- '¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤ò'(_n,_n_2), succ(_·«¤êÊÖ¤·²ó¿ô_1,_·«¤êÊÖ¤·²ó¿ô_2), '¼«Á³¿ôn¤¬¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤òÃͤ¬3¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£'(_n_2,_·«¤êÊÖ¤·²ó¿ô_2,_·«¤êÊÖ¤·²ó¿ô). '¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤ò'(_n,_n_2) :- ¶ö¿ô(_n), _n_2 is _n // 2,!. '¶ö¿ô¤Ê¤é2¤Ç³ä¤ê¡¢´ñ¿ô¤Ê¤é1¤ò­¤·¤Æ3¤ò³Ý¤±¤ëÁàºî¤ò'(_n,_n_2) :- ´ñ¿ô(_n), _n_2 is (_n + 1) * 3. ·«¤êÊÖ¤·¿ô¤¬ºÇÂç¤Î¼«Á³¿ôn¤òÆÀ¤ë(_·«¤êÊÖ¤·¿ô_¼«Á³¿ôn¤Ê¤é¤Ó,_¼«Á³¿ôn) :- findmax(_·«¤êÊÖ¤·²ó¿ô,( member([_·«¤êÊÖ¤·²ó¿ô,_],_·«¤êÊÖ¤·¿ô_¼«Á³¿ôn¤Ê¤é¤Ó)), _ºÇÂç·«¤êÊÖ¤·²ó¿ô), member([_ºÇÂç·«¤êÊÖ¤·²ó¿ô,_¼«Á³¿ôn],_·«¤êÊÖ¤·¿ô_¼«Á³¿ôn¤Ê¤é¤Ó). ¶ö¿ô(_n) :- 0 is _n mod 2. ´ñ¿ô(_n) :- 1 is _n mod 2. findmax(A,P,Max) :- findall(A,P,L), ºÇÂçÃÍ(L,Max). ºÇÂçÃÍ(L,_ºÇÂçÃÍ) :- L = [A|R], ºÇÂçÃÍ(R,A,_ºÇÂçÃÍ). ºÇÂçÃÍ([],_ºÇÂçÃÍ,_ºÇÂçÃÍ). ºÇÂçÃÍ([A|R],_¤³¤ì¤Þ¤Ç¤ÎºÇÂçÃÍ,_ºÇÂçÃÍ) :- _¤³¤ì¤Þ¤Ç¤ÎºÇÂçÃÍ @>= A, ºÇÂçÃÍ(R,_¤³¤ì¤Þ¤Ç¤ÎºÇÂçÃÍ,_ºÇÂçÃÍ),!. ºÇÂçÃÍ([A|R],_,_ºÇÂçÃÍ) :- ºÇÂçÃÍ(R,A,_ºÇÂçÃÍ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part3 #935 # # W=²£¤ÎŤµ¡¢H=½Ä¤ÎŤµ # 2<=W<=1000¡¢2<=H<=1000 # È¢¤ÎÏȤϡÖ+¡×¡¢È¢¤ÎÃæ¤Ï¡Ö@¡×¤Ç½ÐÎϤ·¤Ê¤µ¤¤ # # ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤Þ¤¹ # W H # # Îã # --------------------- # 2 2 # ++ # ++ # --------------------- # 10 4 # ++++++++++ # +@@@@@@@@+ # +@@@@@@@@+ # ++++++++++ '# W=²£¤ÎŤµ¡¢H=½Ä¤ÎŤµ 2<=W<=1000¡¢2<=H<=1000 È¢¤ÎÏȤϡÖ+¡×¡¢È¢¤ÎÃæ¤Ï¡Ö@¡×¤Ç½ÐÎϤ·¤Ê¤µ¤¤ ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤Þ¤¹ W H' :- ɸ½àÆþÎϤ«¤éW¤ÈH¤òÆÀ¤ë(W,H), ÉÁ²è¤¹¤ë(W,H). ɸ½àÆþÎϤ«¤éW¤ÈH¤òÆÀ¤ë(W,H) :- get_split_line([' '],[W,Y]). ÉÁ²è¤¹¤ë(W,H) :- between(1,H,N), °ì¹Ô¤ÎÁü(N,W,H,_°ì¹Ô¤ÎÁü), ÉÁ²è¤¹¤ë(_°ì¹Ô¤ÎÁü), N = H. °ì¹Ô¤ÎÁü(N,W,H,_°ì¹Ô¤ÎÁü) :- length(L,W), °ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó(N,H,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó), atomic_list_concat(_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó,_°ì¹Ô¤ÎÁü). °ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó(1,H,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó) :- 'ºÇ½é¤ÈºÇ¸å¤Î¹Ô¤Ï¹ÔÁ´ÂΤ¬+'(N,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó),!. °ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó(N,H,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó) :- 'ºÇ½é¤ÈºÇ¸å¤Î¹Ô°Ê³°¤Ï¡¢¹Ô¤ÎÀèÆ¬¤ÈºÇ¸å¤¬+,¤½¤ì°Ê³°¤Ï@'(N,H,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó). 'ºÇ½é¤ÈºÇ¸å¤Î¹Ô¤Ï¹ÔÁ´ÂΤ¬+'(1,_,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó) :- all(_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó,'+'). 'ºÇ½é¤ÈºÇ¸å¤Î¹Ô¤Ï¹ÔÁ´ÂΤ¬+'(H,H,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó) :- all(_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó,'+'). 'ºÇ½é¤ÈºÇ¸å¤Î¹Ô°Ê³°¤Ï¡¢¹Ô¤ÎÀèÆ¬¤ÈºÇ¸å¤¬+,¤½¤ì°Ê³°¤Ï@'(N,H,_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó) :- \+(N = H), append(['*'],L2,['*'],_°ì¹Ôʬ¤Îʸ»ú¤Ê¤é¤Ó), all(L2,'@'). ÉÁ²è¤¹¤ë(_°ì¹Ô¤ÎÁü) :- writef('%t\n',[_°ì¹Ô¤ÎÁü]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% all([]). all([A|R],A) :- all(R,A). append([],L2,L3,L4) :- append(L2,L3,L4). append([A|L1],L2,L3,[A|L4]) :- append(L1,L2,L3,L4). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part3 #935 # # W=²£¤ÎŤµ¡¢H=½Ä¤ÎŤµ # 2<=W<=1000¡¢2<=H<=1000 # È¢¤ÎÏȤϡÖ+¡×¡¢È¢¤ÎÃæ¤Ï¡Ö@¡×¤Ç½ÐÎϤ·¤Ê¤µ¤¤ # # ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤Þ¤¹ # W H # # Îã # --------------------- # 2 2 # ++ # ++ # --------------------- # 10 4 # ++++++++++ # +@@@@@@@@+ # +@@@@@@@@+ # ++++++++++ '# W=²£¤ÎŤµ¡¢H=½Ä¤ÎŤµ 2<=W<=1000¡¢2<=H<=1000 È¢¤ÎÏȤϡÖ+¡×¡¢È¢¤ÎÃæ¤Ï¡Ö@¡×¤Ç½ÐÎϤ·¤Ê¤µ¤¤ ÆþÎϤϰʲ¼¤Î·Á¼°¤Çɸ½àÆþÎϤ«¤éÍ¿¤¨¤é¤ì¤Þ¤¹ W H' :- ɸ½àÆþÎϤ«¤éW¤ÈH¤òÆÀ¤ë(W,H), split(Line,[' '],[W,H]), Á´ÂÎÁü(W,H,_Á´ÂÎÁü), Á´ÂÎÁü¤òÉÁ²è¤¹¤ë(_Á´ÂÎÁü). ɸ½àÆþÎϤ«¤éW¤ÈH¤òÆÀ¤ë(W,H) :- read_line_to_codes(Codes,[]), Ãæ´Ö¤Î32¤ò°ì¸Ä¤Î¤Î44¤ËÃÖ¤­´¹¤¨¤ë(Codes,Codes2), string_to_atom(Codes2,Atom), read_term_from_atom(Atom,(W,H,[]). Ãæ´Ö¤Î32¤ò°ì¸Ä¤Î¥«¥ó¥Þ¤ËÃÖ¤­´¹¤¨¤ë(Codes,Codes2) :- append(L1,L2,L3,Codes), all(L2,32), \+(member(32,L1)), \+(member(32,L2)), append(L1,[44|L3],Codes2). Á´ÂÎÁü(W,H,_Á´ÂÎÁü) :- findall(L,( between(1,H,_), findall(_,( between(1,W,_)), L)), _Á´ÂÎÁü), Á´ÂÎÁü(_Á´ÂÎÁü). Á´ÂÎÁü(_Á´ÂÎÁü) :- append([_Âè°ì¹Ô],_Ãæ´Ö¹Ô¤Ê¤é¤Ó,[_ºÇ½ª¹Ô],_Á´ÂÎÁü), all(_Âè°ì¹Ô,'+'), all(_ºÇ½ª¹Ô,'+'), 'Æâ¦¤ÏÀèÆ¬Í×ÁǤȺǸå¤ÎÍ×ÁǤ¬+¡¢Ãæ´ÖÍ×ÁǤÏ@¤È¤Ê¤ë'(_Ãæ´Ö¹Ô¤Ê¤é¤Ó). 'Æâ¦¤ÏÀèÆ¬Í×ÁǤȺǸå¤ÎÍ×ÁǤ¬+¡¢Ãæ´ÖÍ×ÁǤÏ@¤È¤Ê¤ë'([]). 'Æâ¦¤ÏÀèÆ¬Í×ÁǤȺǸå¤ÎÍ×ÁǤ¬+¡¢Ãæ´ÖÍ×ÁǤÏ@¤È¤Ê¤ë'([L|R]) :- 'ÀèÆ¬Í×ÁǤȺǸå¤ÎÍ×ÁǤ¬+¡¢Ãæ´ÖÍ×ÁǤÏ@¤È¤Ê¤ë'(L), 'Æâ¦¤ÏÀèÆ¬Í×ÁǤȺǸå¤ÎÍ×ÁǤ¬+¡¢Ãæ´ÖÍ×ÁǤÏ@¤È¤Ê¤ë'(R). 'ÀèÆ¬Í×ÁǤȺǸå¤ÎÍ×ÁǤ¬+¡¢Ãæ´ÖÍ×ÁǤÏ@¤È¤Ê¤ë'(L) :- append(['+'],L2,['+'],L), all(L2,'@'),!. Á´ÂÎÁü¤òÉÁ²è¤¹¤ë([]). Á´ÂÎÁü¤òÉÁ²è¤¹¤ë([L|R]) :- atom_chars(_¹Ôɽ¼¨,L), writef('%t\n',[_¹Ôɽ¼¨]), Á´ÂÎÁü¤òÉÁ²è¤¹¤ë(R). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% all([]). all([A|R],A) :- all(R,A). append([],L2,L3,L4) :- append(L2,L3,L4). append([A|L1],L2,L3,[A|L4]) :- append(L1,L2,L3,L4). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % ½Ðŵ: twitter_by_@wakamesoba98_20140605 ´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ¤Ï²¿ÅÙ¸«¤Æ¤âÌÌÇò¤¤(_´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ) :- findall([N,L],( ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(N,L)), _´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(5,[00,15,28,35,41,48,54]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(6,[00,05,09,14,24,27,30,35,38,41,44,48,51,55,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(7,[01,04,07,10,13,16,19,21,23,26,29,31,33,36,38,41,43,45,48,50,52,55,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(8,[01,03,05,08,09,11,13,15,18,19,21,24,26,28,30,32,35,37,39,41,44,46,48,50,53, 54,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(9,[01,04,06,08,10,12,15,17,19,22,26,29,32,34,36,39,42,45,47,49,52,54,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(10,[01,04,08,12,16,20,24,28,32,36,40,44,48,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(11,[01,04,06,13,16,20,25,28,32,37,40,44,49,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(12,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(13,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(14,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). '11»þ¤«¤é14»þ¤Î´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ¤ÎÀ¸À®µ¬Â§'(_²¿»þ,_»þ¹ï¤Ê¤é¤Ó) :- between(11,14,_²¿»þ), '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(1,[3,4,5],_»þ¹ï¤Ê¤é¤Ó). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[],L) :- '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[3,4,5],L). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[M|R2],[]) :- N > 59,!. '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[M|R2],[N|R3]) :- N2 is N + M, '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N2,R2,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % ½Ðŵ: twitter_by_@wakamesoba98_20140605 ´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ¤Ï²¿ÅÙ¸«¤Æ¤âÌÌÇò¤¤(_´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ) :- findall([N,L],( ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(N,L)), _´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(5,[00,15,28,35,41,48,54]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(6,[00,05,09,14,24,27,30,35,38,41,44,48,51,55,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(7,[01,04,07,10,13,16,19,21,23,26,29,31,33,36,38,41,43,45,48,50,52,55,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(8,[01,03,05,08,09,11,13,15,18,19,21,24,26,28,30,32,35,37,39,41,44,46,48,50,53, 54,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(9,[01,04,06,08,10,12,15,17,19,22,26,29,32,34,36,39,42,45,47,49,52,54,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(10,[01,04,08,12,16,20,24,28,32,36,40,44,48,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(_²¿»þ,_»þ¹ï¤Ê¤é¤Ó) :- between(11,14,_²¿»þ), '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(1,[3,4,5],_»þ¹ï¤Ê¤é¤Ó). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[],L) :- '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[3,4,5],L). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[M|R2],[]) :- N > 59,!. '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[M|R2],[N|R3]) :- N2 is N + M, '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N2,R2,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % ½Ðŵ: twitter_by_@wakamesoba98_20140605 ´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ¤Ï²¿ÅÙ¸«¤Æ¤âÌÌÇò¤¤(_´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ) :- findall([N,L],( ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(N,L)), _´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(5,[00,15,28,35,41,48,54]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(6,[00,05,09,14,24,27,30,35,38,41,44,48,51,55,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(7,[01,04,07,10,13,16,19,21,23,26,29,31,33,36,38,41,43,45,48,50,52,55,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(8,[01,03,05,08,09,11,13,15,18,19,21,24,26,28,30,32,35,37,39,41,44,46,48,50,53, 54,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(9,[01,04,06,08,10,12,15,17,19,22,26,29,32,34,36,39,42,45,47,49,52,54,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(10,[01,04,08,12,16,20,24,28,32,36,40,44,48,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(11,[01,04,06,13,16,20,25,28,32,37,40,44,49,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(12,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(13,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(14,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(_²¿»þ,_»þ¹ï¤Ê¤é¤Ó) :- between(11,14,_²¿»þ), '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(1,[3,4,5],_»þ¹ï¤Ê¤é¤Ó). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[],L) :- '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[3,4,5],L). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[M|R2],[]) :- N > 59,!. '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N,[M|R2],[N|R3]) :- N2 is N + M, '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó¤Ï3ʬ,4ʬ,5ʬ¤Î½ç¹ï¤ß¤ò·«¤êÊÖ¤¹'(N2,R2,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % ½Ðŵ: twitter_by_@wakamesoba98_20140605 ´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ¤Ï²¿ÅÙ¸«¤Æ¤âÌÌÇò¤¤(_´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ) :- findall([N,L],( ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(N,L)), _´Ý¥ÎÆâÀþ¤Î»þ¹ïɽ). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(5,[00,15,28,35,41,48,54]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(6,[00,05,09,14,24,27,30,35,38,41,44,48,51,55,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(7,[01,04,07,10,13,16,19,21,23,26,29,31,33,36,38,41,43,45,48,50,52,55,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(8,[01,03,05,08,09,11,13,15,18,19,21,24,26,28,30,32,35,37,39,41,44,46,48,50,53, 54,57,59]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(9,[01,04,06,08,10,12,15,17,19,22,26,29,32,34,36,39,42,45,47,49,52,54,58]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(10,[01,04,08,12,16,20,24,28,32,36,40,44,48,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(11,[01,04,06,13,16,20,25,28,32,37,40,44,49,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(12,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(13,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). % ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(14,[01,04,08,13,16,20,25,28,32,37,40,44,49,52,56]). ´Ý¥ÎÆâÀþ¿·½É±ØÃÓÂÞÊýÌÌɸ½à»þ¹ïɽ(_²¿»þ,_»þ¹ï¤Ê¤é¤Ó) :- between(11,14,_²¿»þ), '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó'(1,[3,4,5],_»þ¹ï¤Ê¤é¤Ó). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó'(N,[],L) :- '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó'(N,[3,4,5],L). '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó'(N,[M|R2],[]) :- N > 59,!. '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó'(N,[M|R2],[N|R3]) :- N2 is N + M, '11»þ¤«¤é14»þ¤Þ¤Ç¤Î»þ¹ï¤Ê¤é¤Ó'(N2,R2,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,1) :- (between(0x00,0x1f,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É);_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É=0x7f),!. 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,1) :- between(0x20,0xbf,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É),\+(_Âè°ìʸ»ú¤Î¥³¡¼¥É=0x7f),!. 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,2) :- between(0xc0,0xdf,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É). 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,3) :- between(0xe0,0xef,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É). 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,4) :- between(0xf0,0xf7,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É). 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,5) :- between(0xf8,0xfb,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É). 'UTF8ʸ»ú¤Î¥Ð¥¤¥È¿ô'(_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É,6) :- between(0xfc,0xff,_Âè°ìʸ»ú¤Îʸ»ú¥³¡¼¥É). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ½Ðŵ: sandy* ?@vecchio_ciao 5·î15Æü ¾®3¼¡Ãˤγä¤ê»»¥Æ¥¹¥È¡£³Ø¹»¤À¤±¤ËǤ¤»¤Æ¤ª¤¯¤ÈÂçÊѤʤ³¤È¤Ë¤Ê¤ë¤è # :- op(400,yfx,¡ß). ¶å¶å¤Î¤À¤ó(1,[1 ¡ß 1 = 1,1 ¡ß 2 = 2,1 ¡ß 3 = 3,1 ¡ß 4 = 4,1 ¡ß 5 = 5,1 ¡ß 6 = 6,1 ¡ß 7 = 7,1 ¡ß 8 = 8,1 ¡ß 9 = 9]). ¶å¶å¤Î¤À¤ó(2,[2 ¡ß 1 = 2,2 ¡ß 2 = 4,2 ¡ß 3 = 6,2 ¡ß 4 = 8,2 ¡ß 5 = 10,2 ¡ß 6 = 12,2 ¡ß 7 = 14,2 ¡ß 8 = 16,2 ¡ß 9 = 18]). ¶å¶å¤Î¤À¤ó(3,[3 ¡ß 1 = 3,3 ¡ß 2 = 6,3 ¡ß 3 = 9,3 ¡ß 4 = 12,3 ¡ß 5 = 15,3 ¡ß 6 = 18,3 ¡ß 7 = 21,3 ¡ß 8 = 24,3 ¡ß 9 = 27]). ¶å¶å¤Î¤À¤ó(4,[4 ¡ß 1 = 4,4 ¡ß 2 = 8,4 ¡ß 3 = 12,4 ¡ß 4 = 16,4 ¡ß 5 = 20,4 ¡ß 6 = 24,4 ¡ß 7 = 28,4 ¡ß 8 = 32,4 ¡ß 9 = 36]). ¶å¶å¤Î¤À¤ó(5,[5 ¡ß 1 = 5,5 ¡ß 2 = 10,5 ¡ß 3 = 15,5 ¡ß 4 = 20,5 ¡ß 5 = 25,5 ¡ß 6 = 30,5 ¡ß 7 = 35,5 ¡ß 8 = 40,5 ¡ß 9 = 45]). ¶å¶å¤Î¤À¤ó(6,[6 ¡ß 1 = 6,6 ¡ß 2 = 12,6 ¡ß 3 = 18,6 ¡ß 4 = 24,6 ¡ß 5 = 30,6 ¡ß 6 = 36,6 ¡ß 7 = 42,6 ¡ß 8 = 48,6 ¡ß 9 = 54]). ¶å¶å¤Î¤À¤ó(7,[7 ¡ß 1 = 7,7 ¡ß 2 = 14,7 ¡ß 3 = 21,7 ¡ß 4 = 28,7 ¡ß 5 = 35,7 ¡ß 6 = 42,7 ¡ß 7 = 49,7 ¡ß 8 = 56,7 ¡ß 9 = 63]). ¶å¶å¤Î¤À¤ó(8,[8 ¡ß 1 = 8,8 ¡ß 2 = 16,8 ¡ß 3 = 24,8 ¡ß 4 = 32,8 ¡ß 5 = 40,8 ¡ß 6 = 48,8 ¡ß 7 = 56,8 ¡ß 8 = 64,8 ¡ß 9 = 72]). ¶å¶å¤Î¤À¤ó(9,[9 ¡ß 1 = 9,9 ¡ß 2 = 18,9 ¡ß 3 = 27,9 ¡ß 4 = 36,9 ¡ß 5 = 45,9 ¡ß 6 = 54,9 ¡ß 7 = 63,9 ¡ß 8 = 72,9 ¡ß 9 = 81]). '¼¡¤Î¤ï¤ê»»¤ÎÅú¤¨¤Ï¡¤²¿¤Î¤À¤ó¤Î¶å¶å¤ò»È¤Ã¤Æ¤â¤È¤á¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡£ (1) 21 ¡à 7'(_²¿¤Î¤À¤ó,_¤ï¤ê»»¤ÎÅú¤¨) :- between(1,9,_²¿¤Î¤À¤ó), ¶å¶å¤Î¤À¤ó(_²¿¤Î¤À¤ó,_¤À¤ó¤Î¼°¤Ê¤é¤Ó), member(_²¿¤Î¤À¤ó ¡ß _¤ï¤ê»»¤ÎÅú¤¨ = 21,_¤À¤ó¤Î¼°¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¤ªÂê¡§[B²¼¤Îü¤Ë°ìËܤÀ¤±Åö¤¿¤ê¤¬ÉÕ¤¤¤Æ¤¤¤ë¤¢¤ß¤À¤¯¤¸¤Ë¤Ä¤¤¤Æ¡¢ # Åö¤¿¤ê¤¯¤¸¤ò°ú¤¯¼ê¤òµá¤á¤è¡£¶¶¤È¶¶¤Î¸òº¹¤Ï¤Ê¤¤¤È²¾Äꤹ¤ë¡£ # ÆþÎϥǡ¼¥¿¡§¤¯¤¸¤ÎËÜ¿ônum¡£º¸¤«¤é¿ô¤¨¤¿Åö¤¿¤ê¤¯¤¸¤Î°ÌÃÖmark¡£³Æ¶¶¤Îξü¤Î¤¯¤¸¤Î°ÌÃÖ(left,right)¤ò¾å¤«¤éʤ٤¿¥ê¥¹¥È¡£ # '¤ªÂê¡§²¼¤Îü¤Ë°ìËܤÀ¤±Åö¤¿¤ê¤¬ÉÕ¤¤¤Æ¤¤¤ë¤¢¤ß¤À¤¯¤¸¤Ë¤Ä¤¤¤Æ¡¢ Åö¤¿¤ê¤¯¤¸¤ò°ú¤¯¼ê¤òµá¤á¤è¡£¶¶¤È¶¶¤Î¸òº¹¤Ï¤Ê¤¤¤È²¾Äꤹ¤ë¡£ ÆþÎϥǡ¼¥¿¡§¤¯¤¸¤ÎËÜ¿ônum¡£º¸¤«¤é¿ô¤¨¤¿Åö¤¿¤ê¤¯¤¸¤Î°ÌÃÖmark¡£³Æ¶¶¤Îξü¤Î¤¯¤¸¤Î°ÌÃÖ(left,right)¤ò¾å¤«¤éʤ٤¿¥ê¥¹¥È¡£'(_¤¯¤¸¤ÎËÜ¿ô,_Åö¤¿¤ê) :- ¤¢¤ß¤À¤¯¤¸(_¤¯¤¸¤ÎËÜ¿ô,_Åö¤¿¤ê). ·ÐÏ©((1,1),(1,2)). ·ÐÏ©((1,2),(1,3)). ·ÐÏ©((1,2),(2,3)). ·ÐÏ©((2,1),(2,2)). ·ÐÏ©((2,2),(2,3)). ·ÐÏ©((2,3),(2,4)). ·ÐÏ©((2,2),(3,2)). ·ÐÏ©((3,1),(3,2)). ·ÐÏ©((3,2),(3,3)). ¥´¡¼¥ë((1,3)). ¥´¡¼¥ë((2,4)). ¥´¡¼¥ë((3,3)). Åö¤¿¤ê¤¯¤¸((2,4)). ¤¢¤ß¤À¤¯¤¸(_¤¯¤¸¤ÎËÜ¿ô,_Åö¤¿¤ê) :- between(1,_¤¯¤¸¤ÎËÜ¿ô,_Åö¤¿¤ê), ·ÐÏ©((_Åö¤¿¤ê,1),_¼¡¤ÎÅÀ), ¤¢¤ß¤À¤¯¤¸(_¼¡¤ÎÅÀ). ¤¢¤ß¤À¤¯¤¸(_¸½ºßÅÀ) :- ¥´¡¼¥ë(_¸½ºßÅÀ),!. ¤¢¤ß¤À¤¯¤¸(_¸½ºßÅÀ) :- ¼¡¤ÎÅÀ(_¸½ºßÅÀ,_¼¡¤ÎÅÀ), ¤¢¤ß¤À¤¯¤¸(_¸½ºßÅÀ). ¼¡¤ÎÅÀ(_¸½ºßÅÀ,_¼¡¤ÎÅÀ) :- º¸¤«¤é±¦¤Ø¶¶¤òÅϤë(_¸½ºßÅÀ,_¼¡¤ÎÅÀ),!. ¼¡¤ÎÅÀ(_¸½ºßÅÀ,_¼¡¤ÎÅÀ) :- ±¦¤«¤éº¸¤Ø¶¶¤òÅϤë(_¸½ºßÅÀ,_¼¡¤ÎÅÀ),!. ¼¡¤ÎÅÀ(_¸½ºßÅÀ,_¼¡¤ÎÅÀ) :- ²¼Êý¤Ø°Üư¤¹¤ë(_¸½ºßÅÀ,_¼¡¤ÎÅÀ). º¸¤«¤é±¦¤Ø¶¶¤òÅϤë((X,Y),(X_2,Y_2)) :- ·ÐÏ©((X,Y),(X_2,Y_2)), \+(X = X_2),!. ±¦¤«¤éº¸¤Ø¶¶¤òÅϤë((X,Y),(X_2,Y_2)) :- ·ÐÏ©((X_2,Y_2),(X,Y)), \+(X = X_2),!. ²¼Êý¤Ø°Üư¤¹¤ë((X,Y),(X,Y_2)) :- ·ÐÏ©((X,Y),(X,Y_2)), Y_2 > Y. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ʤÌÌ»»(kadokawa+dwango+kada=kandouii,N1+N2+N3=N4,_ʸ»ú¤È¿ô»ú¤ÎÂбþ) :- ʤÌÌ(kadokawa+dwango+kada=kandouii,L0_1,L0_2,L0_3,L1,L2,L3,L4), ʤÌÌ»»(L0_3,L0_2), ʤÌÌ»»·×»»(L1,L2,L3,L4,N1,N2,N3,N4), ʸ»ú¤È¿ô»ú¤ÎÂбþ(L0_1,L0_2,_ʸ»ú¤È¿ô»ú¤ÎÂбþ). ʤÌÌ(A_1+A_2+A_3=A_4,L0_1,L0_2,L0_3,L1,L2,L3,L4) :- ʸ»ú½Ð¸½½ç¤Î·èÄê([A_1,A_2,A_3,A_4],L0_1), findall(N,between(1,9,_),L0_2), L0_3 = ['1','2','3','4','5','6','7','8','9','0'], ʤÌÌʸ»ú¤ÈÊÑ¿ô¤ÎÂбþÉÕ¤±(L0_1,L0_2,A_1,A_2,A_3,A_4,L1,L2,L3,L4). ʸ»ú½Ð¸½½ç¤Î·èÄê(L,L0_1) :- atomic_list_concat(L,A), atom_chars(A,Chars), Í£°ì¤Îʸ»ú¤Ê¤é¤Ó¤òÆÀ¤ë(Chars,L0_1). Í×ÁǤ˽ÅÊ£¤Î¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó(_ʸ»ú¤Ê¤é¤Ó,_Í×ÁǤ˽ÅÊ£¤Î¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó) :- findall(_ʸ»ú,( append(L1,[_ʸ»ú|_],_ʸ»ú¤Ê¤é¤Ó), \+(member(_ʸ»ú,L1))), _Í×ÁǤ˽ÅÊ£¤Î¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó). ¿ô¼°¤ÎÂбþÉÕ¤±(L0_1,L0_2,A_1,A_2,A_3,A_4,L1,L2,L3,L4) :- ¿ô¼°¤ÎÂбþÉÕ¤±(L0_1,L0_2,A_1,L1), ¿ô¼°¤ÎÂбþÉÕ¤±(L0_1,L0_2,A_2,L2), ¿ô¼°¤ÎÂбþÉÕ¤±(L0_1,L0_2,A_3,L3), ¿ô¼°¤ÎÂбþÉÕ¤±(L0_1,L0_2,A_4,L4). ʤÌÌʸ»ú¤ÈÊÑ¿ô¤ÎÂбþÉÕ¤±(L0_1,L0_2,_ʤÌÌʸ»úÎó,_ÊÑ¿ô¤Ê¤é¤Ó) :- atom_chars(_ʤÌÌʸ»úÎó,_ʤÌÌʸ»ú¤Ê¤é¤Ó), findall(V,( nth1(_nth1,_ʤÌÌʸ»ú¤Ê¤é¤Ó,_ʸ»ú), nth1(_nth1,L0_1,_ʸ»ú), nth1(_nth1,L0_2,V)), _ÊÑ¿ô¤Ê¤é¤Ó). ʤÌÌ»»·×»»(L1,L2,L3,L4,N1,N2,N3,N4) :- number_chars(N1,L1), number_chars(N2,L2), number_chars(N3,L3), number_chars(N4,L4), N1 + N2 + N3 =:= N4. ʤÌÌ»»(_,[]). ʤÌÌ»»(L,[A|R2]) :- select(A,L,R), ʤÌÌ»»(R,R2). ʸ»ú¤È¿ô»ú¤ÎÂбþ(L0_1,L0_2,_ʸ»ú¤È¿ô»ú¤ÎÂбþ) :- findall(A=B,( nth1(_nth1,L0_1,A), nth1(_nth1,L0_2,B)), _ʸ»ú¤È¿ô»ú¤ÎÂбþ). Í£°ì¤Îʸ»ú¤Ê¤é¤Ó¤òÆÀ¤ë([],[]). Í£°ì¤Îʸ»ú¤Ê¤é¤Ó¤òÆÀ¤ë([A|R1],[A|R2]) :- \+(member(A,R1)), Í£°ì¤Îʸ»ú¤Ê¤é¤Ó¤òÆÀ¤ë(R1,R2). Í£°ì¤Îʸ»ú¤Ê¤é¤Ó¤òÆÀ¤ë([A|R1],R2) :- member(A,R1), Í£°ì¤Îʸ»ú¤Ê¤é¤Ó¤òÆÀ¤ë(R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥¹¥ìΩ¤Æ¤ë¤Þ¤Ç¤â¤Ê¤¤¼ÁÌä¤Ï¤³¤³¤Ç 135ɤÌÜ #894 # # Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô¤Ë¤·¤Æ100¤¤¤Þ¤·¤¿ # ­¤Î¿ô¤¬Á´Éô¤Ç285¤¢¤ê¤Þ¤·¤¿ # Äá¤Èµµ¤Ï¤½¤ì¤¾¤ì¤¤¤¯¤é¤º¤Ä¤¤¤Þ¤·¤¿¤« # p.s.Á´À¹´ü¤Î²¦Äç¼£¤¬ÂǤĹ½¤¨¤À¤Ã¤¿¤é¤·¤¤¤Ç¤¹ # °ìËܵӤÎÄá¤Î¤Þ¤¸¤Ã¤¿Äáµµ»»(_Á´Éô¤Î­¤Î¿ô,_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_Äá¤Î¿ô,_µµ¤Î¿ô) :- Á´Éô¤òµµ¤À¤È¹Í¤¨¤è¤¦(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô), ¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹¤¬(_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô,_Á´Éô¤Î­¤Î¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹), 'Ä᤬¤Þ¤¸¤Ã¤Æ¤¤¤ë¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿º¹¤À¤«¤é¡¢ °ìɤ°ì±©¤Îµµ¤ÈÄá¤Î­¿ô¤Îº¹¤Ç³ä¤ì¤ÐÎɤ¤¤Î¤À¤¬¡¢ ¤³¤³¤Ç¤Ï°ìËÜ­¤ÎÄá¤â¤¤¤ëÁÛÄê¤À¤«¤é¡¢ ­¤Îº¹¤ò2¤È3¤ÎÁȤ߹礻¤Ç¹Í¤¨¤ë'(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹,_Äá¤Î¿ô,_µµ¤Î¿ô). Á´Éô¤òµµ¤À¤È¹Í¤¨¤è¤¦(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô) :- _Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô is 4 * _Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô. ¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹¤¬(_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô,_Á´Éô¤Î­¤Î¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹) :- _¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹ is abs(_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô - _Á´Éô¤Î­¤Î¿ô). 'Ä᤬¤Þ¤¸¤Ã¤Æ¤¤¤ë¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿º¹¤À¤«¤é¡¢ °ìɤ°ì±©¤Îµµ¤ÈÄá¤Î­¿ô¤Îº¹¤Ç³ä¤ì¤ÐÎɤ¤¤Î¤À¤¬¡¢ ¤³¤³¤Ç¤Ï°ìËÜ­¤ÎÄá¤â¤¤¤ëÁÛÄê¤À¤«¤é¡¢ ­¤Îº¹¤ò2¤È3¤ÎÁȤ߹礻¤Ç¹Í¤¨¤ë'(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹,_Äá¤Î¿ô,_µµ¤Î¿ô) :- ÆóËÜ­¤È°ìËÜ­¤ÎÄá¤Î¿ô¸õÊä¤òÆÀ¤ë(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_ÆóËÜ­¤ÎÄá¤Î¿ô,_°ìËÜ­¤ÎÄá¤Î¿ô), '¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹¤È°ìÃפ·¤¿¤é¡¢ Äá¤Î¿ô¡¢µµ¤Î¿ô¤¬·è¤Þ¤ë'(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹,_ÆóËÜ­¤ÎÄá¤Î¿ô,_°ìËÜ­¤ÎÄá¤Î¿ô,_Äá¤Î¿ô,_µµ¤Î¿ô). ÆóËÜ­¤È°ìËÜ­¤ÎÄá¤Î¿ô¸õÊä¤òÆÀ¤ë(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_ÆóËÜ­¤ÎÄá¤Î¿ô,_°ìËÜ­¤ÎÄá¤Î¿ô) :- between(0,_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_ÆóËÜ­¤ÎÄá¤Î¿ô), between(0,_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_°ìËÜ­¤ÎÄá¤Î¿ô). '¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹¤È°ìÃפ·¤¿¤é¡¢ Äá¤Î¿ô¡¢µµ¤Î¿ô¤¬·è¤Þ¤ë'(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹,_ÆóËÜ­¤ÎÄá¤Î¿ô,_°ìËÜ­¤ÎÄá¤Î¿ô,_Äá¤Î¿ô,_µµ¤Î¿ô) :- _¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹ is (4 - 2) * _ÆóËÜ­¤ÎÄá¤Î¿ô + (4 - 1) * _°ìËÜ­¤ÎÄá¤Î¿ô, _Äá¤Î¿ô is _ÆóËÜ­¤ÎÄá¤Î¿ô + _°ìËÜ­¤ÎÄá¤Î¿ô, _µµ¤Î¿ô is _Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô - _Äá¤Î¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥¹¥ìΩ¤Æ¤ë¤Þ¤Ç¤â¤Ê¤¤¼ÁÌä¤Ï¤³¤³¤Ç 135ɤÌÜ #894 # # Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô¤Ë¤·¤Æ100¤¤¤Þ¤·¤¿ # ­¤Î¿ô¤¬Á´Éô¤Ç285¤¢¤ê¤Þ¤·¤¿ # Äá¤Èµµ¤Ï¤½¤ì¤¾¤ì¤¤¤¯¤é¤º¤Ä¤¤¤Þ¤·¤¿¤« # p.s.Á´À¹´ü¤Î²¦Äç¼£¤¬ÂǤĹ½¤¨¤À¤Ã¤¿¤é¤·¤¤¤Ç¤¹ # °ìËܵӤÎÄá¤Î¤Þ¤¸¤Ã¤¿Äáµµ»»(_Á´Éô¤Î­¤Î¿ô,_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_Äá¤Î¿ô,_µµ¤Î¿ô) :- Á´Éô¤òµµ¤À¤È¹Í¤¨¤è¤¦(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô), ¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹¤¬(_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô,_Á´Éô¤Î­¤Î¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹), 'Ä᤬¤Þ¤¸¤Ã¤Æ¤¤¤ë¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿º¹¤À¤«¤é¡¢ °ìɤ°ì±©¤Îµµ¤ÈÄá¤Î­¿ô¤Îº¹¤Ç³ä¤ì¤ÐÎɤ¤¤Î¤À¤¬¡¢ ¤³¤³¤Ç¤Ï°ìËÜ­¤ÎÄá¤â¤¤¤ëÁÛÄê¤À¤«¤é¡¢ ­¤Îº¹¤ò2¤È3¤ÎÁȤ߹礻¤Ç¹Í¤¨¤ë'(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹,_Äá¤Î¿ô,_µµ¤Î¿ô). Á´Éô¤òµµ¤À¤È¹Í¤¨¤è¤¦(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô) :- _Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô is 4 * _Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô. ¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹¤¬(_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô,_Á´Éô¤Î­¤Î¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹) :- _¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹ is abs(_Á´Éôµµ¤À¤È¤·¤Æ¤Î­¤Î¿ô - _Á´Éô¤Î­¤Î¿ô). 'Ä᤬¤Þ¤¸¤Ã¤Æ¤¤¤ë¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿º¹¤À¤«¤é¡¢ °ìɤ°ì±©¤Îµµ¤ÈÄá¤Î­¿ô¤Îº¹¤Ç³ä¤ì¤ÐÎɤ¤¤Î¤À¤¬¡¢ ¤³¤³¤Ç¤Ï°ìËÜ­¤ÎÄá¤â¤¤¤ëÁÛÄê¤À¤«¤é¡¢ ­¤Îº¹¤ò2¤È3¤ÎÁȤ߹礻¤Ç¹Í¤¨¤ë'(_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹,_Äá¤Î¿ô,_µµ¤Î¿ô) :- between(0,_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_ÆóËÜ­¤ÎÄá¤Î¿ô), between(0,_Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô,_°ìËÜ­¤ÎÄá¤Î¿ô), _¼ÂºÝ¤Î­¤Î¿ô¤È¤Îº¹ is (4 - 2) * _ÆóËÜ­¤ÎÄá¤Î¿ô + (4 - 1) * _°ìËÜ­¤ÎÄá¤Î¿ô, _Äá¤Î¿ô is _ÆóËÜ­¤ÎÄá¤Î¿ô + _°ìËÜ­¤ÎÄá¤Î¿ô, _µµ¤Î¿ô is _Äá¤Èµµ¹ç¤ï¤»¤ÆÆ¬¿ô - _Äá¤Î¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï 'FizzBuzz¤Ï¤ä¤µ¤·¤¤²ÝÂê¤Ç¤¹¡£¤ä¤µ¤·¤¤¤«¤é¤³¤½¤É¤Î¥×¥í¥°¥é¥à¸À¸ì¤Ç¤â ½ñ¤±¤Þ¤¹¤·¡¢¤½¤ì¤¾¤ì¤Î¸À¸ì¤ÎÆÃŤ¬Èù̯¤Ëɽ¤ì¤Þ¤¹¡£¤½¤ì¤ÇºÇ¶á¹¥¤Þ¤ì¤ë²ÝÂê¤Ç¤¹¡£ ²ÝÂê¤È¤·¤Æ¤ÎFizzBuzz¤Ï¡¢À°¿ô¤ò1¤«¤é¤¢¤ë¿ô¤Þ¤Ç¿ô¤¨¾å¤²¤Æ¡¢¤½¤Î¿ô¤¬¡¢ 3¤Ç³ä¤êÀڤ줿¤éFizz¤ò5¤Ç³ä¤êÀڤ줿¤éBuzz¤ò¤É¤Á¤é¤Ç¤â³ä¤êÀÚ¤ì¤Ê¤¤»þ¤Ï¤½¤Î¿ô¤ò ɽ¼¨¤·¤Þ¤¹¡£3¤È5¤Îξ¿ô¤Ç³ä¤êÀÚ¤ì¤ë¾ì¹ç¤ÏFizzBuzz¤È³¤±¤ÆÉ½¼¨¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Ò¤È¤Ä¤Î¿ô¤òɽ¼¨¤·¤¿¤é²þ¹Ô¤·¡¢¤¢¤ë¿ô¤Þ¤Çɽ¼¨¤·½ª¤ï¤Ã¤¿¤é½ªÎ»¤·¤Þ¤¹¡£'(_¤¢¤ë¿ô) :- 'À°¿ô¤ò1¤«¤é¤¢¤ë¿ô¤Þ¤Ç¿ô¤¨¾å¤²¤Æ'(_¤¢¤ë¿ô,_¿ô), '¿ô¤¬¡¢3¤Ç³ä¤êÀڤ줿¤éFizz¤ò 5¤Ç³ä¤êÀڤ줿¤éBuzz¤ò ¤É¤Á¤é¤Ç¤â³ä¤êÀÚ¤ì¤Ê¤¤»þ¤Ï¤½¤Î¿ô¤ò'(_¿ô,_Fizz¤Îɽ¼¨ÏÈ,_Buzz¤Îɽ¼¨ÏÈ,_¿ô¤Îɽ¼¨ÏÈ), 'ɽ¼¨¤·¤Þ¤¹¡£¤Ò¤È¤Ä¤Î¿ô¤òɽ¼¨¤·¤¿¤é²þ¹Ô¤·¡¢'(_Fizz¤Îɽ¼¨ÏÈ,_Buzz¤Îɽ¼¨ÏÈ,_¿ô¤Îɽ¼¨ÏÈ), '¤¢¤ë¿ô¤Þ¤Çɽ¼¨¤·½ª¤ï¤Ã¤¿¤é½ªÎ»¤·¤Þ¤¹¡£'(_¤¢¤ë¿ô,_¿ô). 'À°¿ô¤ò1¤«¤é¤¢¤ë¿ô¤Þ¤Ç¿ô¤¨¾å¤²¤Æ'(_¤¢¤ë¿ô,_¿ô) :- between(1,_¤¢¤ë¿ô,_¿ô). '¿ô¤¬¡¢3¤Ç³ä¤êÀڤ줿¤éFizz¤ò 5¤Ç³ä¤êÀڤ줿¤éBuzz¤ò ¤É¤Á¤é¤Ç¤â³ä¤êÀÚ¤ì¤Ê¤¤»þ¤Ï¤½¤Î¿ô¤ò'(_¿ô,_Fizz¤Îɽ¼¨ÏÈ,_Buzz¤Îɽ¼¨ÏÈ,_¿ô¤Îɽ¼¨ÏÈ) :- '¿ô¤¬¡¢3¤Ç³ä¤êÀڤ줿¤éFizz¤ò'(_¿ô,_Fizz¤Îɽ¼¨ÏÈ), '¿ô¤¬¡¢5¤Ç³ä¤êÀڤ줿¤éBuzz¤ò'(_¿ô,_Buzz¤Îɽ¼¨ÏÈ), '¤É¤Á¤é¤Ç¤â³ä¤êÀÚ¤ì¤Ê¤¤»þ¤Ï¤½¤Î¿ô¤ò'(_¿ô,_¿ô¤Îɽ¼¨ÏÈ). '¿ô¤¬¡¢3¤Ç³ä¤êÀڤ줿¤éFizz¤ò'(_¿ô,'Fizz') :- 0 is _¿ô mod 3,!. '¿ô¤¬¡¢3¤Ç³ä¤êÀڤ줿¤éFizz¤ò'(_,''). '¿ô¤¬¡¢5¤Ç³ä¤êÀڤ줿¤éBuzz¤ò'(_¿ô,'Buzz') :- 0 is _¿ô mod 5,!. '¿ô¤¬¡¢5¤Ç³ä¤êÀڤ줿¤éBuzz¤ò'(_,''). '¤É¤Á¤é¤Ç¤â³ä¤êÀÚ¤ì¤Ê¤¤»þ¤Ï¤½¤Î¿ô¤ò'(_¿ô,_¿ô¤Îɽ¼¨ÏÈ) :- \+(0 is _¿ô mod 3), \+(0 is _¿ô mod 5), swritef(_¿ô¤Îɽ¼¨ÏÈ,'%t',[_¿ô]),!. '¤É¤Á¤é¤Ç¤â³ä¤êÀÚ¤ì¤Ê¤¤»þ¤Ï¤½¤Î¿ô¤ò'(_,''). 'ɽ¼¨¤·¤Þ¤¹¡£¤Ò¤È¤Ä¤Î¿ô¤òɽ¼¨¤·¤¿¤é²þ¹Ô¤·¡¢'(_Fizz¤Îɽ¼¨ÏÈ,_Buzz¤Îɽ¼¨ÏÈ,_¿ô¤Îɽ¼¨ÏÈ) :- writef('%w%w%w',[_Fizz¤Îɽ¼¨ÏÈ,_Buzz¤Îɽ¼¨ÏÈ,_¿ô¤Îɽ¼¨ÏÈ]), nl. '¤¢¤ë¿ô¤Þ¤Çɽ¼¨¤·½ª¤ï¤Ã¤¿¤é½ªÎ»¤·¤Þ¤¹¡£'(_¿ô,_¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥¹¥ìΩ¤Æ¤ë¤Þ¤Ç¤â¤Ê¤¤¼ÁÌä¤Ï¤³¤³¤Ç135ɤÌÜ #794" # 100¤È¤¤¤¦À°¿ô¤¬¤¢¤ê¤Þ¤¹ # ¤³¤ì¤ò25¤«¤é40¤ÎÈϰϤÎÀ°¿ô¤È¤·¤Æ3Åùʬ¤·¤Þ¤¹ # Îã # 30, 30, 40 # 35, 35, 30 # 25, 40, 35 '100¤È¤¤¤¦À°¿ô¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ò25¤«¤é40¤ÎÈϰϤÎÀ°¿ô¤È¤·¤Æ3ʬ³ä¤·¤Þ¤¹¡£'(N1,N2,N3) :- findall(N,between(25,40,N),L), ½ÅÊ£½çÎó(L,3,[N1,N2,N3]), 100 is N1 + N2 + N3. ½ÅÊ£½çÎó(L,0,[]). ½ÅÊ£½çÎó(L,N,[A|R3]) :- N > 0, member(A,L), N_1 is N - 1, ½ÅÊ£½çÎó(L,N_1,R3) . % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥¹¥ìΩ¤Æ¤ë¤Þ¤Ç¤â¤Ê¤¤¼ÁÌä¤Ï¤³¤³¤Ç135ɤÌÜ #794" # 100¤È¤¤¤¦À°¿ô¤¬¤¢¤ê¤Þ¤¹ # ¤³¤ì¤ò25¤«¤é40¤ÎÈϰϤÎÀ°¿ô¤È¤·¤Æ3Åùʬ¤·¤Þ¤¹ # Îã # 30, 30, 40 # 35, 35, 30 # 25, 40, 35 '100¤È¤¤¤¦À°¿ô¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ò25¤«¤é40¤ÎÈϰϤÎÀ°¿ô¤È¤·¤Æ3Åùʬ¤·¤Þ¤¹¡£'(N1,N2,N3) :- findall(N,between(25,40,N),L), ½ÅÊ£Áȹ礻(L,3,[N1,N2,N3]), 100 is N1 + N2 + N3. ½ÅÊ£Áȹ礻(_¸õÊä¤Ê¤é¤Ó,1,[A]) :- Í×ÁÇ¿ô¤¬1¤Î¾ì¹ç¤Ï¸õÊä¤Ê¤é¤Ó¤«¤é½ç¤ËA¤òÀ¸À®¤·¤Æ¹Ô¤­¤Þ¤¹(_¸õÊä¤Ê¤é¤Ó,A). ½ÅÊ£Áȹ礻([A|_¸õÊä¤Ê¤é¤Ó],_Í×ÁÇ¿ô,[A|_½ÅÊ£Áȹ礻]) :- '¸õÊä¤Ê¤é¤Ó¤ÏÊѹ¹¤»¤º¤Ë(½ÅÊ£¤Î½ê°Ê)À¸À®Í×ÁÇ¿ô¤ò¸º¤é¤·¤Ê¤¬¤é½ÅÊ£Áȹ礻¤òÁȤßΩ¤Æ¤Þ¤¹'([A|_¸õÊä¤Ê¤é¤Ó],_Í×ÁÇ¿ô,_½ÅÊ£Áȹ礻). ½ÅÊ£Áȹ礻([_|_¸õÊä¤Ê¤é¤Ó],_Í×ÁÇ¿ô,_½ÅÊ£Áȹ礻) :- '¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤·¤ÆÍ褿¤é¡¢¸õÊä¤Ê¤é¤Ó¤ò¤Ò¤È¤Ä¤º¤Ä¸º¤é¤·¤Ê¤¬¤é½ÅÊ£Áȹ礻¤òÀ¸À®¤·¤Þ¤¹'(_¸õÊä¤Ê¤é¤Ó,_Í×ÁÇ¿ô,_½ÅÊ£Áȹ礻). Í×ÁÇ¿ô¤¬1¤Î¾ì¹ç¤Ï¸õÊä¤Ê¤é¤Ó¤«¤é½ç¤ËA¤òÀ¸À®¤·¤Æ¹Ô¤­¤Þ¤¹(_¸õÊä¤Ê¤é¤Ó,A) :- member(A,_¸õÊä¤Ê¤é¤Ó). '¸õÊä¤Ê¤é¤Ó¤ÏÊѹ¹¤»¤º¤Ë(½ÅÊ£¤Î½ê°Ê)À¸À®Í×ÁÇ¿ô¤ò¸º¤é¤·¤Ê¤¬¤é½ÅÊ£Áȹ礻¤òÁȤßΩ¤Æ¤Þ¤¹'([A|_¸õÊä¤Ê¤é¤Ó],_Í×ÁÇ¿ô,_½ÅÊ£Áȹ礻) :- _Í×ÁÇ¿ô > 1, _Í×ÁÇ¿ô_1 is _Í×ÁÇ¿ô - 1, ½ÅÊ£Áȹ礻([A|_¸õÊä¤Ê¤é¤Ó],_Í×ÁÇ¿ô_1,_½ÅÊ£Áȹ礻). '¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤·¤ÆÍ褿¤é¡¢¸õÊä¤Ê¤é¤Ó¤ò¤Ò¤È¤Ä¤º¤Ä¸º¤é¤·¤Ê¤¬¤é½ÅÊ£Áȹ礻¤òÀ¸À®¤·¤Þ¤¹'(_¸õÊä¤Ê¤é¤Ó,_Í×ÁÇ¿ô,_½ÅÊ£Áȹ礻) :- _Í×ÁÇ¿ô > 1, ½ÅÊ£Áȹ礻(_¸õÊä¤Ê¤é¤Ó,_Í×ÁÇ¿ô,_½ÅÊ£Áȹ礻). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥¹¥ìΩ¤Æ¤ë¤Þ¤Ç¤â¤Ê¤¤¼ÁÌä¤Ï¤³¤³¤Ç135ɤÌÜ #794" # 100¤È¤¤¤¦À°¿ô¤¬¤¢¤ê¤Þ¤¹ # ¤³¤ì¤ò25¤«¤é40¤ÎÈϰϤÎÀ°¿ô¤È¤·¤Æ3Åùʬ¤·¤Þ¤¹ # Îã # 30, 30, 40 # 35, 35, 30 # 25, 40, 35 '100¤È¤¤¤¦À°¿ô¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ò25¤«¤é40¤ÎÈϰϤÎÀ°¿ô¤È¤·¤Æ3Åùʬ¤·¤Þ¤¹¡£'(N1,N2,N3) :- findall(N,between(25,40,N),L), ½ÅÊ£Áȹ礻(L,3,[N1,N2,N3]), 100 is N1 + N2 + N3. ½ÅÊ£Áȹ礻(X,1,[A]) :- member(A,X). ½ÅÊ£Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, ½ÅÊ£Áȹ礻([A|Y],M,X). ½ÅÊ£Áȹ礻([_|Y],N,A) :- N > 1, ½ÅÊ£Áȹ礻(Y,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°II # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ²ÝÂê¡§ # ¡¡ #include < stdio.h > # int main (void){ # int i; # float taiju[10]={58.6,65.2,74.4,46.0,52.8,62.4,55.0,51.2,54.8,48.4}; # float total,average; # total=0; # # for(i=0;i<10;i++){ # total+=taiju[i]; # } # average=total/10; # printf("Total=%.1f\n",total); # printf("Average=%.1f\n",average); # return 0; # ¤³¤Î¥×¥í¥°¥é¥à¤ò´Ø¿ô¤Ë¤¹¤ë¤Ë¤Ï¤É¤³¤ò¤É¤¦¤·¤¿¤é¤¤¤¤¤Ç¤¹¤«¡© # } # ¤³¤ì¤òProlog¤ÎÁ´¤¯°Û¤Ê¤Ã¤¿¥×¥í¥°¥é¥à¤Ëºî¤êÊѤ¨¤Ê¤µ¤¤¡£ # ɸËÜÂνÅ(58.6). ɸËÜÂνÅ(65.2). ɸËÜÂνÅ(74.4). ɸËÜÂνÅ(46.0). ɸËÜÂνÅ(52.8). ɸËÜÂνÅ(62.4). ɸËÜÂνÅ(55.0). ɸËÜÂνÅ(51.2). ɸËÜÂνÅ(54.8). ɸËÜÂνÅ(48.4). ɸËܤÎÂνŤιç·×¤ÈÁê²ÃÊ¿¶Ñ¤òµá¤á¤ë(_ɸËÜÂνŤιç·×,_ɸËÜÂνŤÎÁê²ÃÊ¿¶Ñ) :- ɸËÜÂνŤιç·×(_ɸËÜÂνŤιç·×), ɸËÜÂνŤÎÁê²ÃÊ¿¶Ñ(_ɸËÜÂνŤÎÁê²ÃÊ¿¶Ñ). ɸËÜÂνŤιç·×(_ɸËÜÂνŤιç·×) :- ÌÜɸ¤«¤é¹ç·×ÃͤòÆÀ¤ë(_ÂνÅ,ɸËÜÂνÅ(_ÂνÅ),_ɸËÜÂνŤιç·×). ɸËÜÂνŤÎÁê²ÃÊ¿¶Ñ(_ɸËÜÂνŤÎÁê²ÃÊ¿¶Ñ) :- ÌÜɸ¤«¤éÁê²ÃÊ¿¶Ñ¤òÆÀ¤ë(_ÂνÅ,ɸËÜÂνÅ(_ÂνÅ),_ɸËÜÂνŤÎÁê²ÃÊ¿¶Ñ). ÌÜɸ¤«¤é¹ç·×ÃͤòÆÀ¤ë(_½¸ÌóÂоݹà,_ÌÜɸ,_¹ç·×ÃÍ) :- findall(_½¸ÌóÂоݹà,_ÌÜɸ,_Ãͤʤé¤Ó), sum_list(_Ãͤʤé¤Ó,_¹ç·×ÃÍ). ÌÜɸ¤«¤éÁê²ÃÊ¿¶Ñ¤òÆÀ¤ë(_½¸ÌóÂоݹà,_ÌÜɸ,_Áê²ÃÊ¿¶Ñ) :- findall(_½¸ÌóÂоݹà,_ÌÜɸ,_Ãͤʤé¤Ó), Áê²ÃÊ¿¶Ñ(_Ãͤʤé¤Ó,_Áê²ÃÊ¿¶Ñ). Áê²ÃÊ¿¶Ñ(_Ãͤʤé¤Ó,_Áê²ÃÊ¿¶Ñ) :- sum_list(_Ãͤʤé¤Ó,_¹ç·×ÃÍ), length(_Ãͤʤé¤Ó,_Í×ÁÇ¿ô), _Áê²ÃÊ¿¶Ñ is _¹ç·×ÃÍ / _Í×ÁÇ¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì¡¡part3 #573 # # ¤ªÂê¡§¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î(¤¿¤È¤¨¤Ðn=3¤Î¤È¤­ 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0)¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ # Îã # n=4 -> 1634 8208 9474 # n=5 -> 54748 92727 93084 # n=8 -> 24678050 24678051 88593477 # '¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î(¤¿¤È¤¨¤Ðn=3¤Î¤È¤­ 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0)¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_n,_¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æ) :- findall(_n·å¤Î¼«Á³¿ô,( n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë(_n,_n·å¤Î¼«Á³¿ô)), _¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æ). n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë¤â¤Î(_n,_n·å¤Î¼«Á³¿ô) :- n·å¤Î¼«Á³¿ô¤Ç(_n,_n·å¤Î¼«Á³¿ô), ³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë¤â¤Î(_n,_n·å¤Î¼«Á³¿ô). n·å¤Î¼«Á³¿ô¤Ç(_n,_n·å¤Î¼«Á³¿ô) :- n·å¤Î¼«Á³¿ô¤Î²¼¸Â¤È¾å¸Â(_n,_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â), between(_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â,_n·å¤Î¼«Á³¿ô). n·å¤Î¼«Á³¿ô¤Î²¼¸Â¤È¾å¸Â(_n,_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â) :- _n·å¤Î¼«Á³¿ô²¼¸Â is 10 ^ (_n - 1), _n·å¤Î¼«Á³¿ô¾å¸Â is 10 ^ _n - 1. ³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë¤â¤Î(_n,_n·å¤Î¼«Á³¿ô), ³Æ·å¤Î¿ô¤În¾è¤Î(_n,_n·å¤Î¼«Á³¿ô,[],_³Æ·å¤Î¿ô¤În¾è¤Î¤Ê¤é¤Ó), ÏÂ(_³Æ·å¤Î¿ô¤În¾è¤Î¤Ê¤é¤Ó,_n·å¤Î¼«Á³¿ô). ÏÂ(_¿ô¤Ê¤é¤Ó,_ÏÂ) :- sum_list(_¿ô¤Ê¤é¤Ó,_ÏÂ). ³Æ·å¤Î¿ô¤În¾è¤Î(_n,0,_³Æ·å¤Î¿ô¤În¾è¤Î¤Ê¤é¤Ó,_³Æ·å¤Î¿ô¤În¾è¤Î¤Ê¤é¤Ó) :- !. ³Æ·å¤Î¿ô¤În¾è¤Î(_n,N,L1,_³Æ·å¤Î¿ô¤În¾è¤Î¤Ê¤é¤Ó) :- _³Æ·å¤Î¿ô¤În¾è is (N mod 10) ^ _n, N_1 is N // 10, ³Æ·å¤Î¿ô¤În¾è¤Î(_n,N,[_³Æ·å¤Î¿ô¤În¾è|L1],_³Æ·å¤Î¿ô¤În¾è¤Î¤Ê¤é¤Ó) :- % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì¡¡part3 #573 # # ¤ªÂê¡§¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î(¤¿¤È¤¨¤Ðn=3¤Î¤È¤­ 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0)¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ # Îã # n=4 -> 1634 8208 9474 # n=5 -> 54748 92727 93084 # n=8 -> 24678050 24678051 88593477 # '¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î(¤¿¤È¤¨¤Ðn=3¤Î¤È¤­ 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0)¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_n,_¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æ) :- findall(_n·å¤Î¼«Á³¿ô,( n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë(_n,_n·å¤Î¼«Á³¿ô)), _¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æ). n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë¤â¤Î(_n,_n·å¤Î¼«Á³¿ô) :- n·å¤Î¼«Á³¿ô¤Ç(_n,_n·å¤Î¼«Á³¿ô), ³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë¤â¤Î(_n,_n·å¤Î¼«Á³¿ô). n·å¤Î¼«Á³¿ô¤Ç(_n,_n·å¤Î¼«Á³¿ô) :- n·å¤Î¼«Á³¿ô¤Î²¼¸Â¤È¾å¸Â(_n,_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â), between(_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â,_n·å¤Î¼«Á³¿ô). n·å¤Î¼«Á³¿ô¤Î²¼¸Â¤È¾å¸Â(_n,_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â) :- _n·å¤Î¼«Á³¿ô²¼¸Â is 10 ^ (_n - 1), _n·å¤Î¼«Á³¿ô¾å¸Â is 10 ^ _n - 1. ³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë¤â¤Î(_n,_n·å¤Î¼«Á³¿ô) :- findsum(_³Æ·å¤Î¿ô¤În¾è,( ³Æ·å¤Î¿ô(_n·å¤Î¼«Á³¿ô,_³Æ·å¤Î¿ô), _³Æ·å¤Î¿ô¤În¾è is _³Æ·å¤Î¿ô ^ _n), _n·å¤Î¼«Á³¿ô). ³Æ·å¤Î¿ô(N,_³Æ·å¤Î¿ô) :- N > 0, _³Æ·å¤Î¿ô is N mod 10. ³Æ·å¤Î¿ô(N,_³Æ·å¤Î¿ô) :- N > 0, N_1 is N // 10, ³Æ·å¤Î¿ô(N_1,_³Æ·å¤Î¿ô). findsum(_ÁªÂò¹à,_¹à,_¹ç·×ÃÍ) :- findall(_ÁªÂò¹à,_¹à,_Ãͤʤé¤Ó), sum_list(_Ãͤʤé¤Ó,_¹ç·×ÃÍ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì¡¡part3 #573 # # ¤ªÂê¡§¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î(¤¿¤È¤¨¤Ðn=3¤Î¤È¤­ 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0)¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ # Îã # n=4 -> 1634 8208 9474 # n=5 -> 54748 92727 93084 # n=8 -> 24678050 24678051 88593477 # '¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡¢n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î(¤¿¤È¤¨¤Ðn=3¤Î¤È¤­ 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0)¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_n,_¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æ) :- n·å¤Î¼«Á³¿ô¤Î²¼¸Â¤È¾å¸Â(_n,_¼«Á³¿ô²¼¸Â,_¼«Á³¿ô¾å¸Â), findall(_¼«Á³¿ô,( between(_¼«Á³¿ô²¼¸Â,_¼«Á³¿ô¾å¸Â,_¼«Á³¿ô), n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë(_n,_¼«Á³¿ô)), _¼«Á³¿ôn¤¬Í¿¤¨¤é¤ì¤¿¤È¤­n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤ¬¸µ¤Î¿ô¤ÈÅù¤·¤¯¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æ). n·å¤Î¼«Á³¿ô¤Î²¼¸Â¤È¾å¸Â(_n,_n·å¤Î¼«Á³¿ô²¼¸Â,_n·å¤Î¼«Á³¿ô¾å¸Â) :- _n·å¤Î¼«Á³¿ô²¼¸Â is 10 ^ (_n - 1), _n·å¤Î¼«Á³¿ô¾å¸Â is 10 ^ _n - 1. n·å¤Î¼«Á³¿ô¤Ç³Æ·å¤Î¿ô¤În¾è¤ÎϤÈÅù¤·¤¯¤Ê¤ë(_n,_¼«Á³¿ô) :- findsum(_³Æ·å¤Î¿ô¤În¾è,( ³Æ·å¤Î¿ô(_¼«Á³¿ô,_³Æ·å¤Î¿ô), _³Æ·å¤Î¿ô¤În¾è is _³Æ·å¤Î¿ô ^ _n), _¼«Á³¿ô). ³Æ·å¤Î¿ô(N,_³Æ·å¤Î¿ô) :- N > 0, _³Æ·å¤Î¿ô is N mod 10. ³Æ·å¤Î¿ô(N,_³Æ·å¤Î¿ô) :- N > 0, N_1 is N // 10, ³Æ·å¤Î¿ô(N_1,_³Æ·å¤Î¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # 10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë¤½¤Î°ø»Ò¤Î¿ô¤¬ºÇ¿¤È¤Ê¤ë¿ô¤òµá¤á¡¤¤½¤Î¿ô¡¤°ø»Ò¤Î¿ô¡¤Áǰø¿ôʬ²ò¤Î·ë²Ì¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ²¼¤µ¤¤¡¥ # # ½ÐÎÏ·Á # 8192 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 # °ø»Ò¿ô¡§13 # # [3] ´Ä¶­ # ¡¡[3.1] OS¡§ Linux # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó: gcc 3.4 # ¡¡[3.3] ¸À¸ì¡§ C # [4] ´ü¸Â¡§ 3·î30Æü¤Þ¤Ç # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ # ¥Ò¥ó¥È¤ò¶µ¼ø¤Ëʹ¤­¤Ë¹Ô¤Ã¤¿¤é¼«Ê¬¤Ç¹Í¤¨¤í¤È°ì½³¤µ¤ì¤Þ¤·¤¿ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë¤½¤Î°ø»Ò¤Î¿ô¤¬ºÇ¿¤È¤Ê¤ë¿ô¤òµá¤á¡¤¤½¤Î¿ô¡¤°ø»Ò¤Î¿ô¡¤Áǰø¿ôʬ²ò¤Î·ë²Ì¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ²¼¤µ¤¤¡¥' :- '10000°Ê²¼¤ÎÁÇ¿ô¤òµá¤á¤ë'(_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(_10000°Ê²¼¤Î¼«Á³¿ô,_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_Áǰø»Òʬ²ò¤Ê¤é¤Ó), '¤½¤Î°ø»Ò¤Î¿ô¤¬ºÇ¿¤È¤Ê¤ë¿ô¤òµá¤á¡¢'(_Áǰø»Òʬ²ò¤Ê¤é¤Ó,_ºÇ¿°ø»Ò¿ô), '¤½¤Î¿ô¡¤°ø»Ò¤Î¿ô¡¤Áǰø¿ôʬ²ò¤Î·ë²Ì¤òɽ¼¨¤¹¤ë'(_Áǰø»Òʬ²ò¤Ê¤é¤Ó,_ºÇ¿°ø»Ò¿ô). '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(_10000°Ê²¼¤Î¼«Á³¿ô,_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_Áǰø»Òʬ²ò¤Ê¤é¤Ó) :- findall([_10000°Ê²¼¤Î¼«Á³¿ô,_10000¤ÎÁǰø»Ò¤Î¿ô,_Áǰø»Ò¤Ê¤é¤Ó],( between(1,10000,_10000°Ê²¼¤Î¼«Á³¿ô), '10000¤ÎÁǰø»Òʬ²ò'(_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_Áǰø»Ò¤Ê¤é¤Ó), length(_Áǰø»Ò¤Ê¤é¤Ó,_10000¤ÎÁǰø»Ò¤Î¿ô)), _Áǰø»Òʬ²ò¤Ê¤é¤Ó). '10000°Ê²¼¤ÎÁÇ¿ô¤òµá¤á¤ë'(_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ¤Ë¤è¤Ã¤Æ10000°Ê²¼¤ÎÁÇ¿ô¤òµá¤á¤ë(_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ¤Ë¤è¤Ã¤Æ10000°Ê²¼¤ÎÁÇ¿ô¤òµá¤á¤ë(_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(N,between(1,10000,N),_10000°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_10000°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó,_10000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(_,[],[]) :- !. '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(M,[N|R1],[N|R2]) :- 0 is M mod N, M_1 is M // N, '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(M_1,[N|R1],R2). '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(M,[_|R1],R2) :- '10000°Ê²¼¤Î¼«Á³¿ô¤Î¤¦¤ÁÁǰø¿ôʬ²ò¤ò¹Ô¤Ã¤¿¤È¤­¤Ë'(M,R1,R2). '¤½¤Î°ø»Ò¤Î¿ô¤¬ºÇ¿¤È¤Ê¤ë¿ô¤òµá¤á¡¢'(_Áǰø»Òʬ²ò¤Ê¤é¤Ó,_ºÇ¿°ø»Ò¿ô) :- findmax(_Áǰø»Ò¤Î¿ô,( member([_,_°ø»Ò¤Î¿ô,_],_Áǰø»Òʬ²ò¤Ê¤é¤Ó)), _ºÇ¿°ø»Ò¿ô). '¤½¤Î¿ô¡¤°ø»Ò¤Î¿ô¡¤Áǰø»Òʬ²ò¤Î·ë²Ì¤òɽ¼¨¤¹¤ë'(_Áǰø»Òʬ²ò¤Ê¤é¤Ó,_ºÇ¿°ø»Ò¿ô) :- forall( member([_¿ô,_ºÇ¿°ø»Ò¿ô,_Áǰø»Òʬ²ò¤Î·ë²Ì],_Áǰø»Òʬ²ò¤Ê¤é¤Ó), writef('%t,%t,%t\n',[_¿ô,_ºÇ¿°ø»Ò¿ô,_Áǰø»Òʬ²ò¤Î·ë²Ì])). findmax(_ÁªÂò¹à,_ɾ²Á¹à,_ºÇÂçÃÍ) :- findall(_ÁªÂò¹à,_ɾ²Á¹à,_ɾ²Á¤Ê¤é¤Ó), ºÇÂçÃÍ(_ɾ²Á¤Ê¤é¤Ó,_ºÇÂçÃÍ). ºÇÂçÃÍ(_¤Ê¤é¤Ó,_ºÇÂçÃÍ) :- append(L1,[_ºÇÂçÃÍ|L2],_¤Ê¤é¤Ó), ¤Ê¤é¤ÓÍ×ÁǤ˺ÇÂçÃͤòͤ¨¤ë¤â¤Î¤Ï¤Ê¤¤(L1,_ºÇÂçÃÍ), ¤Ê¤é¤ÓÍ×ÁǤ˺ÇÂçÃͤòͤ¨¤ë¤â¤Î¤Ï¤Ê¤¤(L2,_ºÇÂçÃÍ). ¤Ê¤é¤Ó¤ÎÍ×ÁǤ˺ÇÂçÃͤòͤ¨¤ë¤â¤Î¤Ï¤Ê¤¤(_¤Ê¤é¤Ó,_ºÇÂçÃÍ) :- \+((member(_Í×ÁÇ,_¤Ê¤é¤Ó),_Í×ÁÇ @> _ºÇÂçÃÍ)). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: http://pc12.2ch.net/test/read.cgi/tech/1136994325/954 # pascal pcpad # £±¸Ä¤Î¼«Á³¿ô£î¤òŬÅö¤Ë·è¤á¤Æ¡¢£î¥Á¡¼¥à¤¬»²²Ã¤¹¤ë # ¥ê¡¼¥°Àï¤ÎÁ´»î¹ç¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤­¤Ê¤µ¤¤¡£ '£±¸Ä¤Î¼«Á³¿ô£î¤òŬÅö¤Ë·è¤á¤Æ¡¢£î¥Á¡¼¥à¤¬»²²Ã¤¹¤ë¥ê¡¼¥°Àï¤ÎÁ´»î¹ç¤òɽ¼¨¤¹¤ë' :- '£±¸Ä¤Î¼«Á³¿ô£î¤òŬÅö¤Ë·è¤á¤Æ¡¢'(_n), '£î¥Á¡¼¥à¤¬»²²Ã¤¹¤ë¥ê¡¼¥°Àï¤ÎÁ´»î¹ç¤òɽ¼¨¤¹¤ë'(_n). '£±¸Ä¤Î¼«Á³¿ô£î¤òŬÅö¤Ë·è¤á¤Æ¡¢'(_n) :- _n is random(16) + 3. '£î¥Á¡¼¥à¤¬»²²Ã¤¹¤ë¥ê¡¼¥°Àï¤ÎÁ´»î¹ç¤òɽ¼¨¤¹¤ë'(_n) :- '£î¥Á¡¼¥à¤¬»²²Ã¤¹¤ë'(_n,_n¥Á¡¼¥à¤¬»²²Ã¤¹¤ë), forall( ¥ê¡¼¥°Àï¤ÎÁ´»î¹ç¤ò(_n¥Á¡¼¥à¤¬»²²Ã¤¹¤ë,_¥Á¡¼¥àÈÖ¹æ_1,_¥Á¡¼¥àÈÖ¹æ_2), ɽ¼¨¤¹¤ë(_¥Á¡¼¥àÈÖ¹æ_1,_¥Á¡¼¥àÈÖ¹æ_2)). '£î¥Á¡¼¥à¤¬»²²Ã¤¹¤ë'(_n,_n¥Á¡¼¥à¤¬»²²Ã¤¹¤ë) :- findall(M,between(1,_n,M),_n¥Á¡¼¥à¤¬»²²Ã¤¹¤ë). ¥ê¡¼¥°Àï¤ÎÁ´»î¹ç¤ò(_n¥Á¡¼¥à¤¬»²²Ã¤¹¤ë,_¥Á¡¼¥àÈÖ¹æ_1,_¥Á¡¼¥àÈÖ¹æ_2) :- Áȹ礻(_n¥Á¡¼¥à¤¬»²²Ã¤¹¤ë,2,[_¥Á¡¼¥àÈÖ¹æ_1,_¥Á¡¼¥àÈÖ¹æ_2]). Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). ɽ¼¨¤¹¤ë(_¥Á¡¼¥àÈÖ¹æ_1,_¥Á¡¼¥àÈÖ¹æ_2) :- ¥Á¡¼¥à(_¥Á¡¼¥àÈÖ¹æ_1,_¥Á¡¼¥à̾_1), ¥Á¡¼¥à(_¥Á¡¼¥àÈÖ¹æ_2,_¥Á¡¼¥à̾_2), writef('%t-%t\n',[_¥Á¡¼¥à̾_1,_¥Á¡¼¥à̾_2]). ¥Á¡¼¥à(1,¥µ¥ó¥Õ¥ì¥Ã¥Á¥§¹­Åç). ¥Á¡¼¥à(2,'²£ÉÍF¡¦¥Þ¥ê¥Î¥¹'). ¥Á¡¼¥à(3,Àîºê¥Õ¥í¥ó¥¿¡¼¥ì). ¥Á¡¼¥à(4,¥»¥ì¥Ã¥½Âçºå). ¥Á¡¼¥à(5,¼¯Å祢¥ó¥È¥é¡¼¥º). ¥Á¡¼¥à(6,±ºÏÂ¥ì¥Ã¥º). ¥Á¡¼¥à(7,¥¢¥ë¥Ó¥ì¥Ã¥¯¥¹¿·³ã). ¥Á¡¼¥à(8,'FCÅìµþ'). ¥Á¡¼¥à(9,À¶¿å¥¨¥¹¥Ñ¥ë¥¹). ¥Á¡¼¥à(10,Çð¥ì¥¤¥½¥ë). ¥Á¡¼¥à(11,̾¸Å²°¥°¥é¥ó¥Ñ¥¹). ¥Á¡¼¥à(12,¥µ¥¬¥óÄ»À´). ¥Á¡¼¥à(13,¥Ù¥¬¥ë¥¿ÀçÂæ). ¥Á¡¼¥à(14,ÂçµÜ¥¢¥ë¥Ç¥£¡¼¥¸¥ã). ¥Á¡¼¥à(15,¥ô¥¡¥ó¥Õ¥©¡¼¥ì¹ÃÉÜ). ¥Á¡¼¥à(16,¾ÅÆî¥Ù¥ë¥Þ¡¼¥ì). ¥Á¡¼¥à(17,¥¸¥å¥Ó¥íÈØÅÄ). ¥Á¡¼¥à(18,Âçʬ¥È¥ê¥Ë¡¼¥¿). % °Ê²¼¤Î¥µ¥¤¥È¤Ï mecab(ʸ,_ʸ,LL) :- tmpnam(TMPNAM), tell(TMPNAM), writef('%t\n',[_ʸ]), told, mecab(TMPNAM,LL). mecab(_¥Õ¥¡¥¤¥ë,LL) :- atomic_list_concat(['cat ',_¥Õ¥¡¥¤¥ë,' | mecab'],S), sh(S,LL_1), findall([S1,S3],( member([U|_],LL_1), sub_atom(U,_,_,_,S1,'\t',S3,_,_,_)), LL). popen(Command,Chars) :- open(pipe(Command),read,Instream), get_char(Instream,Char), popen(Instream,Char,Chars), close(Instream),!. popen(Instream,end_of_file,[]) :- !. popen(Instream,Char,[Char|R]) :- get_char(Instream,Char2), popen(Instream,Char2,R). shs(Command,X) :- popen(Command,L), shs_3(L,X). shs_3(L,[S|R]) :- append(L0,['\n'|R1],L), atom_chars(S,L0), shs_3(R1,R). shs_3([],[]) :- !. shs_3(L,[S]) :- atom_chars(S,L). mecab(_¥Õ¥¡¥¤¥ë,LL) :- atomic_list_concat(['cat ',_¥Õ¥¡¥¤¥ë,' | mecab'],S), sh(S,LL_1), findall([S1,S3],( member([U|_],LL_1), sub_atom(U,S1,'\t',S3)), LL). sh(Command,X) :- shs(Command,Y), findall(U,( member(V,Y), split(V,[' ',','],U)), X). split(_ʸ»úÎó,_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,L) :- atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), split_list(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,L). split_list([],_,[]). split_list(L1,_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,[_ʸ»úÎó|R]) :- split_list_2(_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,L1,_ʸ»úÎó), split_list(L3,_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,R),!. split_list(L1,_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,[_ʸ»úÎó]) :- atom_chars(_ʸ»úÎó,L1). split_list_2(_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,L,_ʸ»úÎó,L3) :- append(L1,L2,L3,L), member(_¶èÀÚ¤êʸ»ú,_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó), split_list_3(_¶èÀÚ¤êʸ»ú,L1,L2,L3), atom_chars(_ʸ»úÎó,L1),!. split_list_3(_¶èÀÚ¤êʸ»ú,L1,L2,L3) :- all(L2,_¶èÀÚ¤êʸ»ú), \+(append(_,[_¶èÀÚ¤êʸ»ú],L1)), \+(L3 = [_¶èÀÚ¤êʸ»ú|_]),!. tmpnam(TMPNAM) :- 'TMPNAM'(TMPNAM), \+(exist_file(TMPNAM)),!. tmpnam(TMPNAM) :- tmpnam(TMPNAM). 'TMPNAM'(TMPNAM) :- '±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤«¤é¤Ê¤ë6Í×ÁǤÎʸ»ú¤Ê¤é¤Ó'(_6Í×ÁǤÎʸ»ú¤Ê¤é¤Ó), atomic_list_concat(['/tmp/file'|_6Í×ÁǤÎʸ»ú¤Ê¤é¤Ó],TMPNAM). '±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤«¤é¤Ê¤ë6Í×ÁǤÎʸ»ú¤Ê¤é¤Ó'(_6Í×ÁǤÎʸ»ú¤Ê¤é¤Ó) :- findall(_Ǥ°Õ¤Îʸ»ú,( between(1,6,_), '±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤«¤éǤ°Õ¤Îʸ»ú'(_Ǥ°Õ¤Îʸ»ú)), _6Í×ÁǤÎʸ»ú¤Ê¤é¤Ó). '±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤«¤éǤ°Õ¤Îʸ»ú'(_Ǥ°Õ¤Îʸ»ú) :- _ʸ»ú¥³¡¼¥É is random(75) + 48, 'ʸ»ú¥³¡¼¥É48-122¤ÎÈϰϤǵ­¹æ¤Î¥³¡¼¥É¤Ç¤Ï¤Ê¤¤'(_ʸ»ú¥³¡¼¥É), char_code(_Ǥ°Õ¤Îʸ»ú,_ʸ»ú¥³¡¼¥É),!. '±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤«¤éǤ°Õ¤Îʸ»ú'(_Ǥ°Õ¤Îʸ»ú) :- '±Ñ¾®Ê¸»úÂçʸ»ú¿ô»ú¤«¤éǤ°Õ¤Îʸ»ú'(_Ǥ°Õ¤Îʸ»ú). 'ʸ»ú¥³¡¼¥É48-122¤ÎÈϰϤǵ­¹æ¤Î¥³¡¼¥É¤Ç¤Ï¤Ê¤¤'(_ʸ»ú¥³¡¼¥É) :- 'ʸ»ú¥³¡¼¥ÉÈϰÏ58-64¤Ç¤Ï¤Ê¤¤'(_ʸ»ú¥³¡¼¥É), 'ʸ»ú¥³¡¼¥ÉÈϰÏ91-96¤Ç¤Ï¤Ê¤¤'(_ʸ»ú¥³¡¼¥É). 'ʸ»ú¥³¡¼¥ÉÈϰÏ58-64¤Ç¤Ï¤Ê¤¤'(_ʸ»ú¥³¡¼¥É) :- \+((_ʸ»ú¥³¡¼¥É>=58,_ʸ»ú¥³¡¼¥É=<64)). 'ʸ»ú¥³¡¼¥ÉÈϰÏ91-96¤Ç¤Ï¤Ê¤¤'(_ʸ»ú¥³¡¼¥É) :- \+((_ʸ»ú¥³¡¼¥É>=91,_ʸ»ú¥³¡¼¥É=<96)). sub_atom(A,H,X,T) :- atom(A), sub_atom(A,S,L,R,X), sub_atom(A,0,S,_,H), sub_atom(A,_,R,0,T). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1392388003/270 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò¹Ô¿ô¤È²ò¼á¤·¡¢¤½¤Î¸å¡¢¤½¤Î¹Ô¿ôʬ¤À¤±¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿ # ʸ»ú¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë½ÐÎϤ¹¤ë¡£ # [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ # [¾ò·ï£²]¹Ô¿ôÆþÎϸå¤Îʸ»úÆþ½ÐÎϤˤÏgetchar´Ø¿ô¤Èputchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ # [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£ # [3] ´Ä¶­ # ¡¡[3.1] OS¡§Windows7 # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§gcc 3.4 # ¡¡[3.3] ¸À¸ì¡§ C # [4] ´ü¸Â¡§2014/03/30 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò¹Ô¿ô¤È²ò¼á¤·¡¢¤½¤Î¸å¡¢¤½¤Î¹Ô¿ôʬ¤À¤±¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë½ÐÎϤ¹¤ë¡£ [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£²]¹Ô¿ôÆþÎϸå¤Îʸ»úÆþ½ÐÎϤˤÏgetchar´Ø¿ô¤Èputchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£' :- 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò¹Ô¿ô¤È²ò¼á¤·¡¢ [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£'(_¹Ô¿ô), '¤½¤Î¸å¡¢', '¤½¤Î¹Ô¿ôʬ¤À¤±¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë½ÐÎϤ¹¤ë¡£ [¾ò·ï£²]¹Ô¿ôÆþÎϸå¤Îʸ»úÆþ½ÐÎϤˤÏgetchar´Ø¿ô¤Èputchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£'(_¹Ô¿ô),!. 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò¹Ô¿ô¤È²ò¼á¤·¡¢ [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£'(_¹Ô¿ô) :- 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£'(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô), ¹Ô¿ô¤È²ò¼á¤·(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô,_¹Ô¿ô). 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£'(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô) :- 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£'(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô),!. 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£'(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô) :- write('Input error ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n'), 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£ [¾ò·ï£³]ÆþÎϤµ¤ì¤¿À°¿ô(¹Ô¿ô)¤¬¡¢ÉÔÀµ(À°¿ô¤Ç¤Ê¤¤¤Þ¤¿¤Ï2·å°Ê¾å¤ÎÀ°¿ô)¤Î¾ì¹ç¤Ï¡¢"Input error"¤Èɽ¼¨¤¹¤ë¡£'(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô). 'ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô¤ò [¾ò·ï£±]À°¿ô¡Ê¹Ô¿ô¡ËÆþÎϤˤÏgetchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£'(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô) :- ¹ÔÆþÎÏ(_¹Ôʸ»úÎó), get_term_from_atom(_¹Ôʸ»úÎó,_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô,[]), integer(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô), number_chars(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô,[_]),!. ¹Ô¿ô¤È²ò¼á¤·(_ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô,_¹Ô¿ô) :- _ÆþÎϤ·¤¿£±·å¤ÎÀ°¿ô = _¹Ô¿ô. '¤½¤Î¸å¡¢'. '¤½¤Î¹Ô¿ôʬ¤À¤±¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë½ÐÎϤ¹¤ë¡£ [¾ò·ï£²]¹Ô¿ôÆþÎϸå¤Îʸ»úÆþ½ÐÎϤˤÏgetchar´Ø¿ô¤Èputchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£'(_¹Ô¿ô) :- reawmode, between(1,_¹Ô¿ô,_¹ÔÌÜ), '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë½ÐÎϤ¹¤ë¡£ [¾ò·ï£²]¹Ô¿ôÆþÎϸå¤Îʸ»úÆþ½ÐÎϤˤÏgetchar´Ø¿ô¤Èputchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£', _¹ÔÌÜ = _¹Ô¿ô, norawmode. '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë½ÐÎϤ¹¤ë¡£ [¾ò·ï£²]¹Ô¿ôÆþÎϸå¤Îʸ»úÆþ½ÐÎϤˤÏgetchar´Ø¿ô¤Èputchar´Ø¿ô¤ò»ÈÍѤ¹¤ë¡£' :- repeat, get_char(_ʸ»ú), put_char(_ʸ»ú), _ʸ»ú = '\n',!. ¹ÔÆþÎÏ(_¹Ôʸ»úÎó) :- get_char(_ʸ»ú), ¹Ôʸ»ú¤Ê¤é¤Ó(_ʸ»ú,_¹Ôʸ»ú¤Ê¤é¤Ó), atom_chars(_¹Ôʸ»úÎó,_¹Ôʸ»ú¤Ê¤é¤Ó). ¹Ôʸ»ú¤Ê¤é¤Ó(end_of_file,[]) :- !. ¹Ôʸ»ú¤Ê¤é¤Ó('\n',[]) :- !. ¹Ôʸ»ú¤Ê¤é¤Ó(_ʸ»ú,[_ʸ»ú|R]) :- get_char(_¼¡¤Îʸ»ú), ¹Ôʸ»ú¤Ê¤é¤Ó(_¼¡¤Îʸ»ú,R). rawmode :- shell('stty raw -echo',_). norawmode :- shell('stty -raw echo',_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/300 # ¤ªÂê¡§¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ # ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ # ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ # ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£ # Îã # A(10) -> 4 # A(100) -> 14 # A(1000) -> 45 # '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_i,X) :- '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'([],2,_i,2,_a), nth1(_i,_a,X). '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_a,_¥¤¥ó¥Ç¥Ã¥¹¥¯,_i,_·«¤êÊÖ¤·¿ô_1,_a) :- _¥¤¥ó¥Ç¥Ã¥¯¥¹ > _i,!. '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_a_1,_¥¤¥ó¥Ç¥Ã¥¹¥¯,_i,_·«¤êÊÖ¤·¿ô_1,_a) :- ·«¤êÊÖ¤·¿ô_1¤«¤é·«¤êÊÖ¤·¸Ä¿ô¤òµá¤á¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹Îó¤òÅÐÏ¿¤¹¤ë(_a_1,_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_1,_¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_2,_a_2), '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_a_2,_¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹,_i,_·«¤êÊÖ¤·¿ô_2,_a). ·«¤êÊÖ¤·¿ô_1¤«¤é·«¤êÊÖ¤·¿ô¤òµá¤á¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹Îó¤òÅÐÏ¿¤¹¤ë(_a_1,_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_1,_¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_2,_a) :- ·«¤êÊÖ¤·¸Ä¿ô¤òÆÀ¤ë(_a_1,_·«¤êÊÖ¤·¿ô_1,_·«¤êÊÖ¤·¿ô), _¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ is _¥¤¥ó¥Ç¥Ã¥¯¥¹ + _·«¤êÊÖ¤·¿ô, ¥¤¥ó¥Ç¥Ã¥¹¥¯Îó¤ÎÀ¸À®(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô,L), _·«¤êÊÖ¤·¿ô_2 is _·«¤êÊÖ¤·¿ô_1 + 1, append(_a_1,L,_a),!. ·«¤êÊÖ¤·¿ô¤òÆÀ¤ë(_a,N,M) :- nth1(N,_a,M),!. ·«¤êÊÖ¤·¿ô¤òÆÀ¤ë(_,N,N). ¥¤¥ó¥Ç¥Ã¥¹¥¯Îó¤ÎÀ¸À®(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô,L) :- _¥¤¥ó¥Ç¥Ã¥¯¥¹_2 is _¥¤¥ó¥Ç¥Ã¥¯¥¹ + _·«¤êÊÖ¤·¿ô - 1, findall(N,( between(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_¥¤¥ó¥Ç¥Ã¥¯¥¹_2,N)), L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/300 # ¤ªÂê¡§¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ # ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ # ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ # ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£ # Îã # A(10) -> 4 # A(100) -> 14 # A(1000) -> 45 # :- dynamic(a/2). a(1,1). '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_i,X) :- '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(2,_i,2), a(_i,X). '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_¥¤¥ó¥Ç¥Ã¥¹¥¯,_i,_·«¤êÊÖ¤·¿ô_1) :- _¥¤¥ó¥Ç¥Ã¥¯¥¹ > _i,!. '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_¥¤¥ó¥Ç¥Ã¥¹¥¯,_i,_·«¤êÊÖ¤·¿ô_1) :- ·«¤êÊÖ¤·¿ô_1¤«¤é·«¤êÊÖ¤·¸Ä¿ô¤òµá¤á¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹Îó¤òÅÐÏ¿¤¹¤ë(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_1,_¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_2), '¼¡¤Î¤è¤¦¤Êµ¬Â§¤ÎÇÛÎó¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ£é¤ÎÇÛÎó¤ÎÃͤòµá¤á¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ1¤ÎÇÛÎó¤ÎÃÍA(1)¤Ï1¤Ç¤¢¤ë¡£ ¡¦ÇÛÎó¤ÎÃͤϾº½ç¤Ç¤¢¤ë¡£ ¡¦¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æi¤ÎÇÛÎó¤ÎÃÍA(i)¤ÏÇÛÎóÆâ¤Îi¤Î¸Ä¿ô¤Ç¤¢¤ë¡£'(_¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹,_i,_·«¤êÊÖ¤·¿ô_2). ·«¤êÊÖ¤·¿ô_1¤«¤é·«¤êÊÖ¤·¿ô¤òµá¤á¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹Îó¤òÅÐÏ¿¤¹¤ë(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_1,_¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô_2) :- ·«¤êÊÖ¤·¸Ä¿ô¤òÆÀ¤ë(_·«¤êÊÖ¤·¿ô_1,_·«¤êÊÖ¤·¿ô), _¼¡¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ is _¥¤¥ó¥Ç¥Ã¥¯¥¹ + _·«¤êÊÖ¤·¿ô, ¥¤¥ó¥Ç¥Ã¥¹¥¯Îó¤ÎÀ¸À®(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô), _·«¤êÊÖ¤·¿ô_2 is _·«¤êÊÖ¤·¿ô_1 + 1. ·«¤êÊÖ¤·¿ô¤òÆÀ¤ë(N,M) :- a(N,M),!. ·«¤êÊÖ¤·¿ô¤òÆÀ¤ë(N,N). ¥¤¥ó¥Ç¥Ã¥¹¥¯Îó¤ÎÀ¸À®(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_·«¤êÊÖ¤·¿ô) :- _¥¤¥ó¥Ç¥Ã¥¯¥¹_2 is _¥¤¥ó¥Ç¥Ã¥¯¥¹ + _·«¤êÊÖ¤·¿ô - 1, forall(between(_¥¤¥ó¥Ç¥Ã¥¯¥¹,_¥¤¥ó¥Ç¥Ã¥¯¥¹_2,N),assertz(a(N,_·«¤êÊÖ¤·¿ô))). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/282 # ¤ªÂê¡§1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£ # ¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£ # Îã # 3,1,2,6 -> 4,5 # # '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£ ¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_1,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_2) :- '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_n,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô), '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(1,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô,[],[_¤È¤ê¤Î¤¾¤¤¤¿¿ô_1,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_2]). '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_n,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò'(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô), ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô), 'ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô). '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò'(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô) :- findall(M,between(1,_n,M),_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô). ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(_n,L1,L2) :- ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(1000,_n,L1,L2),!. ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(0,_,L,L). ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(M,_n,L1,L) :- R is random(_n) + 1, select(R,L1,L2), M_1 is M - 1, ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(M_1,_n,[R|L2],L). 'ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- _¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô=[_,_|_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô]. '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_,_,L,L) :- length(L,2),!. '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,L1,L2,L) :- select(_n,L1,L1_2),!, _n_2 is _n + 1, '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n_2,L1_2,L2,L). '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,L1,L2,L) :- _n_2 is _n + 1, '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n_2,L1,[_n|L2],L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/282 # ¤ªÂê¡§1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£ # ¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£ # Îã # 3,1,2,6 -> 4,5 # # '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£ ¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_1,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_2) :- '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_n,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô), '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(1,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô,[],[_¤È¤ê¤Î¤¾¤¤¤¿¿ô_1,_¤È¤ê¤Î¤¾¤¤¤¿¿ô_2]). '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò¥·¥ã¥Ã¥Õ¥ë¤·¤ÆÅ¬Åö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_n,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò'(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô), ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô), 'ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô). '1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô¤ò'(_n,_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô) :- findall(M,between(1,_n,M),_1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô). ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(_n,L1,L2) :- ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(1000,_n,L1,L2),!. ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(0,_,L,L). ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(M,_n,L1,L) :- R is random(_n) + 1, select(R,L1,L2), M_1 is M - 1, ¥·¥ã¥Ã¥Õ¥ë¤·¤Æ(M_1,_n,[R|L2],L). 'ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,[],[_¿ô_1,_¿ô_2]), '¤È¤ê¤Î¤¾¤¯¡£'(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô). ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,[A,B],[A,B]) :- !. ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,L1,L) :- ŬÅö¤ËÁª¤ó¤À(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_ŬÅö¤ËÁª¤ó¤À¿ô), ŬÅö¤ËÁª¤ó¤À2¸Ä¤ò(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,[_ŬÅö¤ËÁª¤ó¤À¿ô|L1],L). ŬÅö¤ËÁª¤ó¤À(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_ŬÅö¤ËÁª¤ó¤À¿ô) :- length(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,Len), R1 is random(Len), nth0(R1,_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_ŬÅö¤ËÁª¤ó¤À¿ô), \+(member(_ŬÅö¤ËÁª¤ó¤À¿ô,L1)),!. ŬÅö¤ËÁª¤ó¤À(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_ŬÅö¤ËÁª¤ó¤À¿ô) :- ŬÅö¤ËÁª¤ó¤À(_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_ŬÅö¤ËÁª¤ó¤À¿ô). '¤È¤ê¤Î¤¾¤¯¡£'(_¿ô_1,_¿ô_2,_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô) :- select(_¿ô_1,_¥·¥ã¥Ã¥Õ¥ë¤·¤¿1¤«¤én¤În¸Ä¤ÎϢ³¤·¤¿À°¿ô,L1), select(_¿ô_2,L1,_2¸Ä¤ò¤È¤ê¤Î¤¾¤¤¤¿¤Î¤³¤ê¤Î¿ô). '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_,_,L,L) :- length(L,2),!. '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,L1,L2,L) :- select(_n,L1,L1_2),!, _n_2 is _n + 1, '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n_2,L1_2,L2,L). '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n,L1,L2,L) :- _n_2 is _n + 1, '¤Î¤³¤ê¤Î¿ô¤«¤é¤È¤ê¤Î¤¾¤¤¤¿2¸Ä¤Î¿ô¤òµá¤á¤ë¡£'(_n_2,L1,[_n|L2],L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯(1,_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ). ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ,_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- À±¤Ç¹Ôɽ¼¨¤¹¤ë(_¥Ó¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ),!. ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯(N,_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- À±¤Ç¹Ôɽ¼¨¤¹¤ë(N), N_2 is N + 1, ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯(N_2,_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ), À±¤Ç¹Ôɽ¼¨¤¹¤ë(N). À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô) :- findall(*,between(1,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô,_),L), atomic_list_concat(L,A), writef('%t\n',[A]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï 'for/3¤ò»È¤Ã¤Æ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯'(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- for(1,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô,_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ), À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô), fail. 'for/3¤ò»È¤Ã¤Æ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯'(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- for(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ-1,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô,1), À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô), _¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ = 1. À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô) :- for(1,M,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô), À±¤ò°ì¸Äɽ¼¨¤¹¤ë, M = _ɽ¼¨¤¹¤ëÀ±¤Î¿ô, ²þ¹Ô¤¹¤ë. À±¤ò°ì¸Äɽ¼¨¤¹¤ë :- put_char(*). ²þ¹Ô¤¹¤ë :- nl. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % for ¥ë¡¼¥× % % ?- for(1,N,3),writef('%t\n',[N]),N=3. % 1 % 2 % 3 % for(S,N,E) :- E >= S, for_2(S,N,E). for(S,N,E) :- E < S, for_1(S,N,E). for_1(S,_,E) :- S < E,!,fail. for_1(N,N,E). for_1(S,N,E) :- S1 is S - 1, for_1(S1,N,E). for_2(S,_,E) :- S > E,!,fail. for_2(N,N,E). for_2(S,N,E) :- S1 is S + 1, for_2(S1,N,E). % °Ê²¼¤Î¥µ¥¤¥È¤Ï 'for/3¤ò»È¤Ã¤Æ²£¸þ¤­¤ËÀ±¤Î¥Ô¥é¥ß¥Ã¥É¤òÉÁ¤¯'(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- ¥Ó¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Þ¤Ç¤òÉÁ¤¯(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ), ¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤«¤é¸å¤òÉÁ¤¯(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ). ¥Ó¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Þ¤Ç¤òÉÁ¤¯(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- for(1,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô,_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ), À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô), _ɽ¼¨¤¹¤ëÀ±¤Î¿ô = _¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ. ¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤«¤é¸å¤òÉÁ¤¯(_¥Ó¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ) :- for(_¥Ô¥é¥ß¥Ã¥É¤ÎĺÅÀ¤Î¹â¤µ-1,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô,1), À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô), _ɽ¼¨¤¹¤ëÀ±¤Î¿ô = 1. À±¤Ç¹Ôɽ¼¨¤¹¤ë(_ɽ¼¨¤¹¤ëÀ±¤Î¿ô) :- for(1,M,_ɽ¼¨¤¹¤ëÀ±¤Î¿ô), À±¤ò°ì¸Äɽ¼¨¤¹¤ë, M = _ɽ¼¨¤¹¤ëÀ±¤Î¿ô, ²þ¹Ô¤¹¤ë. À±¤ò°ì¸Äɽ¼¨¤¹¤ë :- put_char(*). ²þ¹Ô¤¹¤ë :- nl. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % for ¥ë¡¼¥× % % ?- for(1,N,3),writef('%t\n',[N]),N=3. % 1 % 2 % 3 % for(S,N,E) :- E >= S, for_2(S,N,E). for(S,N,E) :- E < S, for_1(S,N,E). for_1(S,_,E) :- S < E,!,fail. for_1(N,N,E). for_1(S,N,E) :- S1 is S - 1, for_1(S1,N,E). for_2(S,_,E) :- S > E,!,fail. for_2(N,N,E). for_2(S,N,E) :- S1 is S + 1, for_2(S1,N,E). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1392388003/31 # [1] ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì ÆþÌç # [2] ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤòɽ¼¨¤¹¤ë # # 1 : 6¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ # 2 : 3¤ÎÇÜ¿ô¤Ê¤éÆó¾è¤·¤¿ÃÍ # 3¡§ 2¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ # 4: ¾åµ­°Ê³°¤ÎÇÜ¿ô¤Ï¡¢Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ # ¡ù Ê£¿ô¤Î¾ò·ï¤¬¹çÃפ·¤¿¾ì¹ç¤ÏÂ礭¤¤ÇÜ¿ô¤Î¾ò·ï¤Î¤ß¤È¤¹¤ë # ¡ù ¼«ºî¤Ç´Ø¿ô¤ò1¤Ä¤ÏºîÀ®¤¹¤ë # # ¤Ê¤Ë¤È¤¾¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # 'ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤòɽ¼¨¤¹¤ë 1 : 6¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ 2 : 3¤ÎÇÜ¿ô¤Ê¤éÆó¾è¤·¤¿ÃÍ 3¡§ 2¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ 4: ¾åµ­°Ê³°¤ÎÇÜ¿ô¤Ï¡¢Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ ¡ù Ê£¿ô¤Î¾ò·ï¤¬¹çÃפ·¤¿¾ì¹ç¤ÏÂ礭¤¤ÇÜ¿ô¤Î¾ò·ï¤Î¤ß¤È¤¹¤ë'(_ÆþÎϤµ¤ì¤¿ÃÍ) :- findall([_ÇÜ¿ô,_¾ò·ï¤òËþ¤¿¤·¤¿Ã͸õÊä],'ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤò'(_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô,_¾ò·ï¤òËþ¤¿¤·¤¿Ã͸õÊä),LL), '¡ù Ê£¿ô¤Î¾ò·ï¤¬¹çÃפ·¤¿¾ì¹ç¤ÏÂ礭¤¤ÇÜ¿ô¤Î¾ò·ï¤Î¤ß¤È¤¹¤ë'(LL,_¾ò·ï¤òËþ¤·¤¿ÃÍ), ɽ¼¨¤¹¤ë(_ÆþÎϤµ¤ì¤¿ÃÍ,_¾ò·ï¤òËþ¤¿¤·¤¿ÃÍ). 'ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤò'(_ÆþÎϤµ¤ì¤¿ÃÍ,6,_6¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ) :- '1 : 6¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_6¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ). 'ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤò'(_ÆþÎϤµ¤ì¤¿ÃÍ,3,_3¤ÎÇÜ¿ô¤Ê¤éÆó¾è¤·¤¿ÃÍ) :- 2 : 3¤ÎÇÜ¿ô¤Ê¤éÆó¾è¤·¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_3¤ÎÇÜ¿ô¤Ê¤éÆó¾è¤·¤¿ÃÍ). 'ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤò'(_ÆþÎϤµ¤ì¤¿ÃÍ,2,_2¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ) :- '3¡§ 2¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ). 'ÊÑ¿ô¤òÆþÎϤ·¤Æ¡¢ÆþÎϤµ¤ì¤¿ÃͤȰʲ¼¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ãͤò'(_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô,_Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ) :- '4: ¾åµ­°Ê³°¤ÎÇÜ¿ô¤Ï¡¢Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô,_Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ). '1 : 6¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤Ç³ä¤Ã¤¿ÃÍ) :- '6¤ÎÇÜ¿ô¤Ê¤é'(_ÆþÎϤµ¤ì¤¿ÃÍ), '2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤Ç³ä¤Ã¤¿ÃÍ). '6¤ÎÇÜ¿ô¤Ê¤é'(_ÆþÎϤµ¤ì¤¿ÃÍ) :- 0 is _ÆþÎϤµ¤ì¤¿ÃÍ mod 6. '2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤Ç³ä¤Ã¤¿ÃÍ) :- _2¤Ç³ä¤Ã¤¿ÃÍ is _ÆþÎϤµ¤ì¤¿ÃÍ // 2. '2 : 3¤ÎÇÜ¿ô¤Ê¤éÆó¾è¤·¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_Æó¾è¤·¤¿ÃÍ) :- '3¤ÎÇÜ¿ô¤Ê¤é'(_ÆþÎϤµ¤ì¤¿ÃÍ), Æó¾è¤·¤¿ÃÍ(_ÆþÎϤµ¤ì¤¿ÃÍ,_Æó¾è¤·¤¿ÃÍ). '3¤ÎÇÜ¿ô¤Ê¤é'(_ÆþÎϤµ¤ì¤¿ÃÍ) :- 0 is _ÆþÎϤµ¤ì¤¿ÃÍ mod 3. Æó¾è¤·¤¿ÃÍ(_ÆþÎϤµ¤ì¤¿ÃÍ,_Æó¾è¤·¤¿ÃÍ) :- _Æó¾è¤·¤¿ÃÍ is _ÆþÎϤµ¤ì¤¿ÃÍ ^ 2. '3¡§ 2¤ÎÇÜ¿ô¤Ê¤é2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤Ç³ä¤Ã¤¿ÃÍ) :- '2¤ÎÇÜ¿ô¤Ê¤é'(_ÆþÎϤµ¤ì¤¿ÃÍ), '2¤Ç³ä¤Ã¤¿¿ô'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤Ç³ä¤Ã¤¿ÃÍ). '2¤ÎÇÜ¿ô¤Ê¤é'(_ÆþÎϤµ¤ì¤¿ÃÍ) :- 0 is _ÆþÎϤµ¤ì¤¿ÃÍ mod 2. '2¤Ç³ä¤Ã¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_2¤Ç³ä¤Ã¤¿ÃÍ) :- _2¤Ç³ä¤Ã¤¿ÃÍ is _ÆþÎϤµ¤ì¤¿ÃÍ // 2. '4: ¾åµ­°Ê³°¤ÎÇÜ¿ô¤Ï¡¢Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô,_Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ) :- '¾åµ­°Ê³°¤ÎÇÜ¿ô¤Ï¡¢'(_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô), Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ(_ÆþÎϤµ¤ì¤¿ÃÍ,_Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ). '¾åµ­°Ê³°¤ÎÇÜ¿ô¤Ï¡¢'(_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô) :- between(1,_ÆþÎϤµ¤ì¤¿ÃÍ,_ÇÜ¿ô), \+(0 is _ÇÜ¿ô mod 6), \+(0 is _ÇÜ¿ô mod 3), \+(0 is _ÇÜ¿ô mod 2), 0 is _ÆþÎϤµ¤ì¤¿ÃÍ mod _ÇÜ¿ô. Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ'(_ÆþÎϤµ¤ì¤¿ÃÍ,_Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ) :- _Æó¾è¤·¤¿Ãͤ«¤é¸µ¤ÎÃͤò°ú¤¤¤¿ÃÍ is _ÆþÎϤµ¤ì¤¿ÃÍ ^ 2 - _ÆþÎϤµ¤ì¤¿ÃÍ. '¡ù Ê£¿ô¤Î¾ò·ï¤¬¹çÃפ·¤¿¾ì¹ç¤ÏÂ礭¤¤ÇÜ¿ô¤Î¾ò·ï¤Î¤ß¤È¤¹¤ë'(LL,_¾ò·ï¤òËþ¤¿¤·¤¿ÃÍ) :- ºÇÂçÃÍ(LL,[_ºÇ¤âÂ礭¤¤ÇÜ¿ô,_¾ò·ï¤òËþ¤¿¤·¤¿ÃÍ]). ɽ¼¨¤¹¤ë(_ÆþÎϤµ¤ì¤¿ÃÍ,_¾ò·ï¤òËþ¤¿¤·¤¿ÃÍ) :- writef('ÆþÎϤµ¤ì¤¿ÃÍ=%t,¾ò·ï¤òËþ¤¿¤·¤¿ÃÍ=%t\n',[_ÆþÎϤµ¤ì¤¿ÃÍ,_¾ò·ï¤òËþ¤¿¤·¤¿ÃÍ]). ºÇÂçÃÍ([A|R],_ºÇÂçÃÍ) :- ºÇÂçÃÍ([A|R],A,_ºÇÂçÃÍ),!. ºÇÂçÃÍ([],_ºÇÂçÃÍ,_ºÇÂçÃÍ). ºÇÂçÃÍ([A|R],B,_ºÇÂçÃÍ) :- A @> B, ºÇÂçÃÍ(R,A,_ºÇÂçÃÍ). ºÇÂçÃÍ([A|R],B,_ºÇÂçÃÍ) :- A @=< B, ºÇÂçÃÍ(R,B,_ºÇÂçÃÍ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/170 # ¤ªÂꡧʬÊ줬¼«Á³¿ôm°Ê²¼¤Î´ûÌóʬ¿ô¤Ç0¤è¤êÂ礭¤¯1¤è¤ê¾®¤µ¤¤¤â¤Î¤ò¾®¤µ¤¤½ç¤Ë¤Ê¤é¤Ù¤ë¡£ # m=3 -> 1/3,1/2,2/3 # m=5 -> 1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5 # # 'ʬÊ줬¼«Á³¿ôm°Ê²¼¤Î´ûÌóʬ¿ô¤Ç0¤è¤êÂ礭¤¯1¤è¤ê¾®¤µ¤¤¤â¤Î¤ò¾®¤µ¤¤½ç¤Ë¤Ê¤é¤Ù¤ë¡£'(_m,_À°Îó¤·¤¿Ê¬¿ô¤Ê¤é¤Ó) :- findall(_ʬ»Ò rdiv _ʬÊì,ʬÊ줴¤È¤Î´ûÌóʬ¿ô(_m,_ʬÊì,_ʬ»Ò),_ʬ¿ô¤Ê¤é¤Ó), sort(_ʬ¿ô¤Ê¤é¤Ó,_À°Îó¤·¤¿Ê¬¿ô¤Ê¤é¤Ó). ʬÊ줴¤È¤Î´ûÌóʬ¿ô(_m,_ʬÊì,_ʬ»Ò) :- between(2,_m,_ʬÊì), ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(2,_ʬÊì,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó), member(_ʬ»Ò,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M,_ʬÊì,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- ʬ»Ò¸õÊä¤òÀ¸À®(_ʬÊì,_¿ô¤Ê¤é¤Ó), ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M,_ʬÊì,_¿ô¤Ê¤é¤Ó,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). ʬ»Ò¸õÊä¤òÀ¸À®(_ʬÊì,_¿ô¤Ê¤é¤Ó) :- succ(_ʬÊì_1,_ʬÊì), findall(N,between(1,_ʬÊì_1,N),_¿ô¤Ê¤é¤Ó). ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(_ʬÊì,_ʬÊì,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- !. ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- 'M¤¬2¤«¤éʬÊì¤Ë¤Ê¤ë¤Þ¤Çʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). 'M¤¬2¤«¤éʬÊì¤Ë¤Ê¤ë¤Þ¤Çʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó) :- 'M¤ÎäÁ'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_¿ô¤Ê¤é¤Ó_2), succ(M,M_2), ʬ»Ò¸õÊä¤òäÁ¤Ë³Ý¤±¤ë(M_2,_ʬÊì,_¿ô¤Ê¤é¤Ó_2,_äÁ¤Ë³Ý¤±¤é¤ì¤¿Ê¬»Ò¤Ê¤é¤Ó). 'M¤ÎäÁ'(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_¿ô¤Ê¤é¤Ó_2) :- findall(_ʬ»Ò¸õÊä,ʬ»Ò¸õÊä(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_ʬ»Ò¸õÊä),_¿ô¤Ê¤é¤Ó_2). ʬ»Ò¸õÊä(M,_ʬÊì,_¿ô¤Ê¤é¤Ó_1,_ʬ»Ò¸õÊä) :- member(_ʬ»Ò¸õÊä,_¿ô¤Ê¤é¤Ó_1), Ìóʬ¤Ç¤­¤Ê¤¤(M,_ʬÊì,_ʬ»Ò¸õÊä). Ìóʬ¤Ç¤­¤Ê¤¤(M,_ʬÊì,_ʬ»Ò¸õÊä) :- \+(Ìóʬ¤Ç¤­¤ë(M,_ʬÊì,_ʬ»Ò¸õÊä)). Ìóʬ¤Ç¤­¤ë(M,_ʬÊì,_ʬ»Ò¸õÊä) :- 0 is _ʬÊì mod M, 0 is _ʬ»Ò¸õÊä mod M. % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % ¥«¥ì¥ó¥À¡¼¶ë·Á/3 % 'ǯ¥«¥ì¥ó¥À¡¼'(_ǯ) :- ²£Ê¤ӥ«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,[1,2,3]), ²£Ê¤ӥ«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,[4,5,6]), ²£Ê¤ӥ«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,[7,8,9]), ²£Ê¤ӥ«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,[10,11,12]). ²£Ê¤ӥ«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,_·î¤Ê¤é¤Ó) :- ·î¥«¥ì¥ó¥À¡¼¤òľÎ󤹤ë(_ǯ,_·î¤Ê¤é¤Ó,LL1), ¸«½Ð¤·É½¼¨(_ǯ,_·î¤Ê¤é¤Ó), ¥«¥ì¥ó¥À¡¼¹Ô¤Îɽ¼¨(LL2). ·î¥«¥ì¥ó¥À¡¼¤òľÎ󤹤ë(_,[],[]). ·î¥«¥ì¥ó¥À¡¼¤òľÎ󤹤ë(_ǯ,[_·î|R],LL) :- ¥«¥ì¥ó¥À¡¼¶ë·Á(_ǯ,_·î,LL1), ·î¥«¥ì¥ó¥À¡¼¤òľÎ󤹤ë(_ǯ,R,LL2), append(LL1,LL2,LL). ¸«½Ð¤·É½¼¨(_ǯ,_·î¤Ê¤é¤Ó) :- write('\n'), forall(member(_·î,_·î¤Ê¤é¤Ó),writef('%6c%4rǯ %2r·î%8c')), write('\n\n'). ¥«¥ì¥ó¥À¡¼¹Ô¤Îɽ¼¨(_·î¥«¥ì¥ó¥À¡¼¶ë·Á¤Ê¤é¤Ó) :- between(1,7,_¹Ô), forall(member(_·î¥«¥ì¥ó¥À¡¼¶ë·Á,_·î¥«¥ì¥ó¥À¡¼¶ë·Á¤Ê¤é¤Ó), ½µÉ½¼¨(_¹Ô,_·î¥«¥ì¥ó¥À¡¼¶ë·Á)), write('\n'), _¹Ô = 7,!. ½µÉ½¼¨(_¹Ô,_·î¥«¥ì¥ó¥À¡¼¶ë·Á) :- nth1(_¹Ô,_·î¥«¥ì¥ó¥À¡¼¶ë·Á,[_1,_2,_3,_4,_5,_6,_7]), writef('%3r%3r%3r%3r%3r%3r%3r ',[_1,_2,_3,_4,_5,_6,_7]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/103 # ¤ªÂê¡§Í¿¤¨¤é¤ì¤¿Ç¯·î¤Î¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤»¤è¡£ # 'Í¿¤¨¤é¤ì¤¿Ç¯·î¤Î¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤»¤è¡£'(_ǯ,_·î) :- ¥«¥ì¥ó¥À¡¼¶ë·Á(_ǯ,_·î,_¥«¥ì¥ó¥À¡¼¶ë·Á), ¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,_·î,_¥«¥ì¥ó¥À¡¼¶ë·Á). ¥«¥ì¥ó¥À¡¼¶ë·Á(_ǯ,_·î,_¥«¥ì¥ó¥À¡¼¶ë·Á) :- '1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ'(_ǯ,_·î,_1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ), ·îËöÆü(_ǯ,_·î,_·îËöÆü), ÆüÉÕ¤òËä¤á¤Æ½µ¥«¥ì¥ó¥À¡¼¤Ê¤é¤Ó¤òºî¤ë(_1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ,_·îËöÆü,_¥«¥ì¥ó¥À¡¼¶ë·Á). '1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ'(_ǯ,_·î,_ÍËÆü¤òɽ¤¹ÃÍ) :- 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,1,_ÍËÆü¤òɽ¤¹ÃÍ,_). 'Zeller¤Î¸ø¼°'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ) :- _ÍËÆü¤òɽ¤¹ÃÍ is (_ǯ + truncate(_ǯ / 4) - truncate(_ǯ / 100) + truncate(_ǯ / 400) + truncate((13 * _·î + 8) / 5) + _Æü) mod 7. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î > 2, 'Zeller¤Î¸ø¼°'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ), 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î =< 2, _ǯ_1 is _ǯ - 1, _·î_2 is _·î + 12, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òɽ¤¹ÃͤÈÍËÆü¤òÆÀ¤ë'(_ǯ_1,_·î_2,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(0,ÆüÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(1,·îÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(2,²ÐÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(3,¿åÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(4,ÌÚÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(5,¶âÍË). 'Zeller¤Î¸ø¼°¤ÇÍËÆü¤òɽ¤¹ÃͤÈÍËÆü'(6,ÅÚÍË). ·îËöÆü(_ǯ,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îËöÆü(_ǯ,2,28) :- !. ·îËöÆü(_,_·î,31) :- member(_·î,[1,3,5,7,8,10,12]). ·îËöÆü(_,_·î,30) :- member(_·î,[4,6,9,11]). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- \+(0 is _ǯ mod 100),!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. ÆüÉÕ¤òËä¤á¤Æ½µ¥«¥ì¥ó¥À¡¼¤Ê¤é¤Ó¤òºî¤ë(_1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ,_·îËöÆü,_½µ¥«¥ì¥ó¥À¡¼¤Ê¤é¤Ó) :- ÆüÉÕ¤òËä¤á¤ë(_1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ,_·îËöÆü,_42Æüʬ¤ÎÆüÏÈ), ½µ¤´¤È¤ËÀÞ¤êÊÖ¤¹(_42Æüʬ¤ÎÆüÏÈ,_½µ¥«¥ì¥ó¥À¡¼¤Ê¤é¤Ó). ÆüÉÕ¤òËä¤á¤ë(_1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ,_·îËöÆü,_42Æüʬ¤ÎÆüÏÈ) :- findall(A,( between(1,42,N), _ÆüÉÕ is N - _1Æü¤ÎÍËÆü¤òɽ¤¹ÃÍ, ÆüÉÕ¤«¶õÇò¤òÁªÂò(_ÆüÉÕ,_·îËöÆü,A)), _42Æüʬ¤ÎÆüÏÈ). ÆüÉÕ¤«¶õÇò¤òÁªÂò(_ÆüÉÕ,_·îËöÆü,' ') :- _ÆüÉÕ < 0,!. ÆüÉÕ¤«¶õÇò¤òÁªÂò(_ÆüÉÕ,_·îËöÆü,' ') :- _ÆüÉÕ > _·îËöÆü,!. ÆüÉÕ¤«¶õÇò¤òÁªÂò(_ÆüÉÕ,_·îËöÆü,_ÆüÉÕ). ½µ¤´¤È¤ËÀÞ¤êÊÖ¤¹([],[]). ½µ¤´¤È¤ËÀÞ¤êÊÖ¤¹([_1,_2,_3,_4,_5,_6,_7|R1],[[_1,_2,_3,_4,_5,_6,_7]|R2]) :- ½µ¤´¤È¤ËÀÞ¤êÊÖ¤¹(R1,R2). ¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_ǯ,_·î,_½µ¥«¥ì¥ó¥À¡¼¤Ê¤é¤Ó) :- ¥«¥ì¥ó¥À¡¼¤Îǯ·î¤òɽ¼¨¤¹¤ë(_ǯ,_·î), ¥«¥ì¥ó¥À¡¼¤ÎÆüÉÕÉô¤òɽ¼¨¤¹¤ë(_½µ¥«¥ì¥ó¥À¡¼¤Ê¤é¤Ó). ¥«¥ì¥ó¥À¡¼¤Îǯ·î¤òɽ¼¨¤¹¤ë(_ǯ,_·î) :- writef('\n%10Rǯ%3R·î \n\n',[_ǯ,_·î]). ¥«¥ì¥ó¥À¡¼¤ÎÆüÉÕÉô¤òɽ¼¨¤¹¤ë([]) :- !. ¥«¥ì¥ó¥À¡¼¤ÎÆüÉÕÉô¤òɽ¼¨¤¹¤ë([_½µ¥«¥ì¥ó¥À¡¼|R]) :- writef('%3R%3R%3R%3R%3R%3R%3R\n',_½µ¥«¥ì¥ó¥À¡¼), ¥«¥ì¥ó¥À¡¼¤ÎÆüÉÕÉô¤òɽ¼¨¤¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part3 # ¤ªÂê¡§ # n=1¤Î¤È¤­ # 01 # 10 # # n=2¤Î¤È¤­ # 0011 # 0011 # 1100 # 1100 # # n=3¤Î¤È¤­ # 000111 # 000111 # 000111 # 111000 # 111000 # 111000 # # ¤òɽ¼¨¤¹¤ë¡£ 'n=1¤Î¤È¤­ 01 10 n=2¤Î¤È¤­ 0011 0011 1100 1100 n=3¤Î¤È¤­ 000111 000111 000111 111000 111000 111000 ¤òɽ¼¨¤¹¤ë¡£'(_n) :- 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n). 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n) :- 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢'(_n). 'n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n). 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢'(_n) :- n¸Ä¤Î¿ô»ú0¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à(_n,_0), n¸Ä¤Î¿ô»ú1¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à(_n,_1), n¹Ôɽ¼¨¤¹¤ë(_n,_0,_1). 'n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n) :- n¸Ä¤Î¿ô»ú0¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à(_n,_0), n¸Ä¤Î¿ô»ú1¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à(_n,_1), n¹Ôɽ¼¨¤¹¤ë(_n,_1,_0). n¸Ä¤Î¿ô»ú0¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à(_n,_0) :- length(L,_n), ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë(L), atomic_list_concat(L,_0). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë([]). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë(['0'|R]) :- ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë(R). n¸Ä¤Î¿ô»ú1¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à(_n,_1) :- length(L,_n), ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë(L), atomic_list_concat(L,_1). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë([]). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë(['1'|R]) :- ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë(R). n¹Ôɽ¼¨¤¹¤ë(_n,A,B) :- forall(between(1,_n,_),writef('%t%t\n',[A,B])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ: ¥×¥í¥°¥é¥ß¥ó¥°¤Î¤ªÂꥹ¥ì Part3 # ¤ªÂê¡§ # n=1¤Î¤È¤­ # 01 # 10 # # n=2¤Î¤È¤­ # 0011 # 0011 # 1100 # 1100 # # n=3¤Î¤È¤­ # 000111 # 000111 # 000111 # 111000 # 111000 # 111000 # # ¤òɽ¼¨¤¹¤ë¡£ 'n=1¤Î¤È¤­ 01 10 n=2¤Î¤È¤­ 0011 0011 1100 1100 n=3¤Î¤È¤­ 000111 000111 000111 111000 111000 111000 ¤òɽ¼¨¤¹¤ë¡£'(_n) :- 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n). 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n) :- 'n¸Ä¤Î¿ô»ú0¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à'(_n,_0), 'n¸Ä¤Î¿ô»ú1¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à'(_n,_1), 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n,_0,_1). 'n¸Ä¤Î¿ô»ú0¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à'(_n,_0) :- length(L,_n), ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë(L), atomic_list_concat(L,_0). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë([]). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë(['0'|R]) :- ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú0¤Ç¤¢¤ë(R). 'n¸Ä¤Î¿ô»ú1¤Ç¹½À®¤µ¤ì¤¿¥¢¥È¥à'(_n,_1) :- length(L,_n), ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë(L), atomic_list_concat(L,_1). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë([]). ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë(['1'|R]) :- ¤Ê¤é¤Ó¤Î¹½À®Í×ÁǤÏÁ´¤Æ¿ô»ú1¤Ç¤¢¤ë(R). 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n,_0,_1) :- 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢'(_n,_0,_1), 'n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n,_0,_1). 'n¸Ä¤Î¿ô»ú0¤Î¸å¡¢n¸Ä¤Î¿ô»ú1¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤·¡¢'(_n,_0,_1) :- forall(between(1,_n,_),writef('%t%t\n',[_0,_1])). 'n¸Ä¤Î¿ô»ú1¤Î¸å¡¢n¸Ä¤Î¿ô»ú0¤ò°ì¹Ô¤È¤·¤Æn¹Ôɽ¼¨¤¹¤ë'(_n,_0,_1) :- forall(between(1,_n,_),writef('%t%t\n',[_1,_0])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1390525149/69 # ¤ªÂê¡§ # n=1¤Î¤È¤­ # 01 # 10 # # n=2¤Î¤È¤­ # 0011 # 0011 # 1100 # 1100 # # n=3¤Î¤È¤­ # 000111 # 000111 # 000111 # 111000 # 111000 # 111000 # # ¤òɽ¼¨¤¹¤ë¡£ # # ¥Ö¥í¥Ã¥¯¤òɽ¼¨¤¹¤ë(_n,LL) :- '_n * _n ¤Î¥Ö¥í¥Ã¥¯¤òÀ¸À®¤¹¤ë'(_n,0,1,LL1), '_n * _n ¤Î¥Ö¥í¥Ã¥¯¤òÀ¸À®¤¹¤ë'(_n,1,0,LL2), ɽ¼¨¤¹¤ë(LL1,LL2). '_n * _n ¤Î¥Ö¥í¥Ã¥¯¤òÀ¸À®¤¹¤ë'(_n,A,B,LL) :- findall(L,( all(_n,L1,A), all(_n,L2,B), between(1,_n,_), append(L1,L2,L)), LL). all(0,[],_) :- !. all(N,[A|R],A) :- N_1 is N - 1, all(N_1,R,A). ɽ¼¨¤¹¤ë(LL1,LL2) :- forall(member(L1,LL1),(atomic_list_concat(L1,A),writef('%t\n',[A]))), forall(member(L2,LL2),(atomic_list_concat(L2,B),writef('%t\n',[B]))), % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/990 # ¤ªÂê¡§±ß¼þΨ¤ÎÎò»Ë¤ÎŤµ¤«¤é¤ß¤ì¤Ð½ÐÍèΩ¤Æ¤Û¤ä¤Û¤ä¤ÎBBP¤Î¼°¤ò»È¤Ã¤Æ # ±ß¼þΨ¤ò¾®¿ôÅÀ°Ê²¼15·å¤Þ¤Çµá¤á¤ë¡£ # ¡¡ ¡ç # ¦Ð=¦²(4/(8*k+1)-1/(4*k+2)-1/(8*k+5)-1/(8*k+6))/(16^k) # ¡¡ k=0 # # '±ß¼þΨ¤ÎÎò»Ë¤ÎŤµ¤«¤é¤ß¤ì¤Ð½ÐÍèΩ¤Æ¤Û¤ä¤Û¤ä¤ÎBBP¤Î¼°¤ò»È¤Ã¤Æ±ß¼þΨ¤ò¾®¿ôÅÀ°Ê²¼15·å¤Þ¤Çµá¤á¤ë¡£'(_±ß¼þΨ) :- 'BBP¤Î¼°'(_±ß¼þΨ_1), sformat(S,'~15f',[_±ß¼þΨ_1]), read_term_from_atom(S,_±ß¼þΨ,[]). 'BBP¤Î¼°'(_±ß¼þΨ) :- findsum(A,( between(0,20,_k), A is (4/(8*_k+1)-1/(4*_k+2)-1/(8*_k+5)-1/(8*_k+6))/(16^_k)), _±ß¼þΨ). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/955 # ¤ªÂê¡§¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô¤òµá¤á¤ë¡£¡Ê2014ǯ¥»¥ó¥¿¡¼»î¸³¡Ë # n=5 -> 3 # n=13 -> 10 # # '¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô¤òµá¤á¤ë¡£¡Ê2014ǯ¥»¥ó¥¿¡¼»î¸³¡Ë'(_n,_¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô) :- findsum(_Áǰø¿ô2¤Î¸Ä¿ô,( between(1,_n,N), findsum(1,( nth1(_nth1,_,_), (\+(0 is N mod (2 ^ _nth1)),!,fail;true)), _Áǰø¿ô2¤Î¸Ä¿ô)), _¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô). findsum(A,B,C) :- findall(A,B,L), sumlist(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/955 # ¤ªÂê¡§¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô¤òµá¤á¤ë¡£¡Ê2014ǯ¥»¥ó¥¿¡¼»î¸³¡Ë # n=5 -> 3 # n=13 -> 10 # # '¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô¤òµá¤á¤ë¡£¡Ê2014ǯ¥»¥ó¥¿¡¼»î¸³¡Ë'(_¼«Á³¿ôn,_¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô) :- findsum(_¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô,( between(1,_¼«Á³¿ôn,_¤¢¤ë¼«Á³¿ô), ¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô¤òµá¤á¤ë(_¤¢¤ë¼«Á³¿ô,_¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô)), _¼«Á³¿ôn¤Î³¬¾è¤ÎÁǰø¿ô2¤Î¸Ä¿ô). ¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô¤òµá¤á¤ë(_¤¢¤ë¼«Á³¿ô,_¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô) :- nth0(_¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô,_,_), \+(0 is _¤¢¤ë¼«Á³¿ô mod (2 ^ (_¤¢¤ë¼«Á³¿ô¤ÎÁǰø¿ô2¤Î¸Ä¿ô + 1))),!. findsum(_ÁªÂò¹à,_ÉûÌÜɸ,_¹ç·×) :- findall(_ÁªÂò¹à,_ÉûÌÜɸ,_ÁªÂò¹à¤Ê¤é¤Ó), sumlist(_ÁªÂò¹à¤Ê¤é¤Ó,_¹ç·×). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/929 # ¤ªÂê¡§3¼¡¸µ¤ÎÇÛÎó¤òÏ¢È֤ǽé´ü²½¤¹¤ë¡£ # J¤Î¾ì¹ç # a=:i.2 3 4 # a # 0 1 2 3 # 4 5 6 7 # 8 9 10 11 # # 12 13 14 15 # 16 17 18 19 # 20 21 22 23 # # (<1;2;3){a # 23 # # '3¼¡¸µ¤Î¤Ê¤é¤Ó¤òÏ¢È֤ǽé´ü²½¤¹¤ë¡£'(_3¼¡¸µ¤Î¤Ê¤é¤Ó,_½é´ü²½¤µ¤ì¤¿3¼¡¸µ¤Î¤Ê¤é¤Ó) :- ¤Ê¤é¤Ó¤Î¹½Â¤(_3¼¡¸µ¤Î¤Ê¤é¤Ó,_1,_2,_3), findall(_½é´ü²½¤µ¤ì¤¿2¼¡¸µ¤Ê¤é¤Ó,( nth0(N1,_3¼¡¸µ¤Î¤Ê¤é¤Ó,_), findall(_½é´ü²½¤µ¤ì¤¿1¼¡¸µ¤Ê¤é¤Ó,( nth0(N2,_2¼¡¸µ¤Ê¤é¤Ó,_), findall(N,( U is _1 * _2, U_2 is U + _3 - 1, between(U,U_2,N)), _½é´ü²½¤µ¤ì¤¿1¼¡¸µ¤Ê¤é¤Ó)), _½é´ü²½¤µ¤ì¤¿2¼¡¸µ¤Ê¤é¤Ó)), _½é´ü²½¤µ¤ì¤¿3¼¡¸µ¤Ê¤é¤Ó). ¤Ê¤é¤Ó¤Î¹½Â¤(LLL,_1,_2,_3) :- length(_3¼¡¸µ¤Î¤Ê¤é¤Ó,_1), _3¼¡¸µ¤Î¤Ê¤é¤Ó = [_2¼¡¸µ¤Î¤Ê¤é¤Ó|_], length(_2¼¡¸µ¤Î¤Ê¤é¤Ó,_2), _2¼¡¸µ¤Î¤Ê¤é¤Ó = [_1¼¡¸µ¤Î¤Ê¤é¤Ó|_], length(_1¼¡¸µ¤Î¤Ê¤é¤Ó,_3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/db/1371476534/493 # SQLServer2008R2¤Ç¤¹¡¥ # ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤ÏDATE¡ÊYYYYMM¤Î6¤±¤¿¤Îint·¿)¡¤CODE(varchar·¿)¡¤VALUE(float·¿) # ¤Î3¥«¥é¥à¤«¤é¤Ê¤ê¤Þ¤¹¡¥³ÆDATE¤Î³ÆCODE¤ËÂФ·¤Æ²áµî3¤«·îʬ¤ÎÁíϤò»»½Ð¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡¥ # ¸µ¥Æ¡¼¥Ö¥ë # DATE, CODE, VALUE # .... # 200101, AAA, 1 # 200102, AAA, 2 # 200103, AAA, 3 # 200104, AAA, 4 # 200101, BBB, 1 # .... # # Íߤ·¤¤·ë²Ì # 200103, AAA, 6 # 200104, AAA, 9 # ....... # # ²¼µ­¤Î¤è¤¦¤ÊSQL¤ò½ñ¤¤¤¿¤Î¤Ç¤¹¤¬¡¤Æ±¤¸·ë²Ì¤Î¹Ô¤¬12¤«·îʬ¤Ç¤Æ¤­¤Þ¤¹¡¥ # ²¿½è¤ò½¤Àµ¤¹¤ì¤Ð¤è¤í¤·¤¤¤Ç¤·¤ç¤¦¤«¡©¤â¤·¤¯¤ÏÁ´Á³°ã¤¦SQL¤Ç¤·¤ç¤¦¤«¡© # # SELECT A.DATE, A.CODE, SUM(B.VALUE) OVER (PARTITION BY B.DATE, B.CODE) # FROM TABLE A, TABLE B # WHERE A.CODE=B.CODE AND B.DATE>=A.DATE AND B.DATE>=(A.DATE¤Î3¤«·îÁ°¢«·×»»¼°¤¬Ä¹¤¤¤Î¤Ç¾Êά¤Ç¤¹) # ORDER BY A.DATE, A.CODE # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡¥ # 'A'(200101,'AAA',1). 'A'(200102,'AAA',2). 'A'(200103,'AAA',3). 'A'(200104,'AAA',4). 'A'(200101,'BBB',1). ²áµî»°¥ö·î¤Î½¸·×(_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó) :- '_DATE,_CODE¤ò¸°¤È¤·¤Æ¡¢²áµî»°¥ö·î¤Î_VALUE¤Î½¸·×'(_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó). '_DATE,_CODE¤ò¸°¤È¤·¤Æ¡¢²áµî»°¥ö·î¤Î_VALUE¤Î½¸·×'(_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó) :- '_DATE,_CODE¤ò¸°¤È¤¹¤ë'(_DATE_CODE¤Ê¤é¤Ó), findall([_DATE,_CODE,_½¸·×],( '²áµî»°¥ö·î¤ÎÁ´¤Æ¤Î_DATE,_CODE¤ËÂФ·¤Æ¡¢_VALUE¤ò½¸Ì󤹤ë'(_DATE,_CODE,_DATE_CODE¤Ê¤é¤Ó,_½¸·×)),_²áµî»°¥ö·î¤Î½¸·×¤Ê¤é¤Ó). '_DATE,_CODE¤ò¸°¤È¤¹¤ë'(_DATE_CODE¤Ê¤é¤Ó) :- setof([_DATE,_CODE],[_DATE,_CODE,_VALUE] ^ 'A'(_DATE,_CODE,_VALUE),_DATE_CODE¤Ê¤é¤Ó). '²áµî»°¥ö·î¤ÎÁ´¤Æ¤Î_DATE,_CODE¤ËÂФ·¤Æ¡¢_VALUE¤ò½¸Ì󤹤ë'(_DATE,_CODE,_DATE_CODE¤Ê¤é¤Ó,_½¸·×) :- member([_DATE,_CODE],_DATE_CODE¤Ê¤é¤Ó), '²áµî»°¥ö·î¤Î_DATE,_CODE¤Ç_VAULE¤ò½¸Ìó'(_DATE,_CODE,_½¸·×). '²áµî»°¥ö·î¤Î_DATE,_CODE¤Ç_VAULE¤ò½¸Ìó'(_DATE,_CODE,_½¸·×) :- '3¥ö·îÁ°¤Îµ¯ÅÀ·î'(_DATE,_3¥ö·îÁ°¤Îµ¯ÅÀ·î), findsum(_VALUE,( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤Ï²áµî»°¥ö·î¤ÎÈÏ°ÏÆâ(_DATE,_CODE,_3¥ö·îÁ°¤Îµ¯ÅÀ·î,_VALUE)),_½¸·×). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤Ï²áµî»°¥ö·î¤ÎÈÏ°ÏÆâ(_DATE,_CODE,_3¥ö·îÁ°¤Îµ¯ÅÀ·î,_VALUE) :- 'A'(_DATE_1,_CODE,_VALUE), between(_3¥ö·îÁ°¤Îµ¯ÅÀ·î,_DATE,_DATE_1). '3¥ö·îÁ°¤Îµ¯ÅÀ·î'(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î) :- º£·î¤¬1·î¤«¤é3·î¤ÎÈϰϤǤÏÁ°Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î),!. '3¥ö·îÁ°¤Îµ¯ÅÀ·î'(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î) :- º£·î¤¬4·î¤«¤é12·î¤ÎÈϰϤǤϺ£Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀǯ·î). º£·î¤¬1·î¤«¤é3·î¤ÎÈϰϤǤÏÁ°Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀ·î) :- M is _º£·î mod 100, M =< 3, _3¥ö·îÁ°¤Îµ¯ÅÀ·î is _º£·î - 100 + 9. º£·î¤¬4·î¤«¤é12·î¤ÎÈϰϤǤϺ£Ç¯¤È¤Ê¤ë(_º£·î,_3¥ö·îÁ°¤Îµ¯ÅÀ·î) :- _3¥ö·îÁ°¤Îµ¯ÅÀ·î is _º£·î - 3. findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/789 # ¤ªÂê¡§1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î¤òµá¤á¤ë¡£ # Îã # 121 -> ng //¶ö¿ô¤Î·å¤¬¤¢¤ë # 357 -> ok # # '1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î¤òµá¤á¤ë¡£'(_1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î) :- between(1,1000,_1000°Ê²¼¤Î¼«Á³¿ô), number_chars(_1000°Ê²¼¤Î¼«Á³¿ô,_¿ô»ú¤Ê¤é¤Ó), forall(member(_¿ô»ú,_¿ô»ú¤Ê¤é¤Ó),member(_¿ô»ú,['1','3','5','7','9'])), _1000°Ê²¼¤Î¼«Á³¿ô = _1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/789 # ¤ªÂê¡§1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î¤òµá¤á¤ë¡£ # Îã # 121 -> ng //¶ö¿ô¤Î·å¤¬¤¢¤ë # 357 -> ok # # '1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î¤òµá¤á¤ë¡£'(_1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î) :- '1000°Ê²¼¤Î¼«Á³¿ô¤Ç'(_1000°Ê²¼¤Î¼«Á³¿ô), '³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î¤òµá¤á¤ë¡£'(_1000°Ê²¼¤Î¼«Á³¿ô,_1000°Ê²¼¤Î¼«Á³¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î). '1000°Ê²¼¤Î¼«Á³¿ô¤Ç'(_1000°Ê²¼¤Î¼«Á³¿ô) :- between(1,1000,_1000°Ê²¼¤Î¼«Á³¿ô). '³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î¤òµá¤á¤ë¡£'(_À°¿ô,_À°¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î) :- forall(³Æ·å¤¬(_À°¿ô,_³Æ·å),´ñ¿ô(_³Æ·å)), _À°¿ô = _À°¿ô¤Ç³Æ·å¤¬¤¹¤Ù¤Æ´ñ¿ô¤Î¤â¤Î. ³Æ·å¤¬(_À°¿ô,_³Æ·å) :- _À°¿ô > 0, _³Æ·å is _À°¿ô mod 10. ³Æ·å¤¬(_À°¿ô,_³Æ·å) :- _À°¿ô > 0, _À°¿ô_1 is _À°¿ô // 10, ³Æ·å¤¬(_À°¿ô_1,_³Æ·å). ´ñ¿ô(_³Æ·å) :- 1 is _³Æ·å mod 2. % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % SWI-Prolog ¤Î readln/1 ¤Ç¤Ï % ?- readln(X). % :| abc,def % X = [abc,',',def] ¤¬´üÂÔ¤µ¤ì¤ë¡£ % ¤È¤³¤í¤¬´Á»ú¤òÍѤ¤¤ë¤È % ?- readln(X). % :| Èøºê,δÂç % X = [Èø,ºê,',',δ,Âç] ¤È¤Ê¤Ã¤Æ´Á»ú¤ÎÉôʬ¤ò¸ì¤Èǧ¼±¤·¤Ê¤¤¡£ % ¤³¤ÎÌäÂê¤ò²óÈò¤¹¤ë°Ù¤Î°ì»þ冷¤¬°Ê²¼¤Î½Ò¸ì¤Ç¤¢¤ë¡£ % ͽ¤á¡¢¥¢¥È¥à¤ò¹½À®¤¹¤ëʸ»ú¥³¡¼¥É¤Î¥ê¥¹¥È¤ò utf16_code/1 ¤ÇÄêµÁ¤·¤ÆÃÖ¤¯¡£ % :- findall(X,between(12288,40959,X),L1), findall(Y,between(65280,65299,Y),L2), append(L1,L2,L), assertz(utf16_code(L)). readln(X) :- utf16_code(U), readln(X,_,_,U,_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/726 # ¤ªÂꡧϢ³¤·¤¿¼«Á³¿ô¤ÎϤ¬2014¤Ë¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ # # 'Ϣ³¤·¤¿¼«Á³¿ô¤ÎϤ¬2014¤Ë¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô) :- N_1 is 2014 // 2, findall(N,between(1,N_1,N),L), append(L1,L2,L), Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô). Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô) :- Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô,2014). Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô,_ÏÂ) :- append(_Ϥ¬2014¤ò°Ê¾å¤ÎϢ³¤·¤¿¼«Á³¿ô,_,L2), sumlist(_Ϥ¬2014¤ò°Ê¾å¤ÎϢ³¤·¤¿¼«Á³¿ô,_ÏÂ), _Ï >= 2014,!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/726 # ¤ªÂꡧϢ³¤·¤¿¼«Á³¿ô¤ÎϤ¬2014¤Ë¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ # # 'Ϣ³¤·¤¿¼«Á³¿ô¤ÎϤ¬2014¤Ë¤Ê¤ë¤â¤Î¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô) :- N_1 is 2014 // 2, findall(N,between(1,N_1,N),L), append(L1,L2,L), Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô). Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô) :- Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô,_ÏÂ), _Ï = 2014, _Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô = _Ϥ¬2014¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô. Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô(L2,_Ϥ¬2014°Ê¾å¤Ë¤Ê¤ëϢ³¤·¤¿¼«Á³¿ô,_ÏÂ) :- append(_Ϥ¬2014¤ò°Ê¾å¤ÎϢ³¤·¤¿¼«Á³¿ô,_,L2), sumlist(_Ϥ¬2014¤ò°Ê¾å¤ÎϢ³¤·¤¿¼«Á³¿ô,_ÏÂ), _Ï >= 2014,!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê http://twitter.com/genkuroki/statuses/416777263229575168" # @genkuroki # #³Ý»» ¤¿¤È¤¨¤Ð¡Ö¤«¤±¤¶¤ó¡×¤Î¥Æ¥¹¥È¤Ç¾ï¤Ë³Ý»»°Ê³°¤ÎÊýË¡¤Ç²ò¤¯ÌäÂê¤ò # º®¤¼¤Æ¤ª¤¯¤È¤«¡¢ÌäÂêÊ¸Ãæ¤Ë̵Â̤ʿôÃͤòº®¤¼¤Æ¤ª¤¤¤ÆÅú¤¨¤ò½Ð¤¹¤¿¤á¤Ë # ɬÍפʾðÊó¤òÊ¸Ãæ¤«¤éÈ´¤­½Ð¤»¤ë¤«¤ò¸«¤ë¤È¤«¡¢¤¹¤Ç¤ËÍÍ¡¹¤Ê¼êÃʤ¬Ä󰯤µ¤ì¡¢ # ¼«Ê¬¤Î»Ò¤ÎÍý²òÅÙ¤ò¬¤ë¤¿¤á¤Ë¼Â¹Ô¤·¤Æ¤¤¤ëÊݸî¼Ô¤â¤¤¤ë '¤¿¤È¤¨¤Ð¡Ö¤«¤±¤¶¤ó¡×¤Î¥Æ¥¹¥È¤Ç¾ï¤Ë³Ý»»°Ê³°¤ÎÊýË¡¤Ç²ò¤¯ÌäÂê¤ò º®¤¼¤Æ¤ª¤¯¤È¤«¡¢ÌäÂêÊ¸Ãæ¤Ë̵Â̤ʿôÃͤòº®¤¼¤Æ¤ª¤¤¤ÆÅú¤¨¤ò½Ð¤¹¤¿¤á¤Ë ɬÍפʾðÊó¤òÊ¸Ãæ¤«¤éÈ´¤­½Ð¤»¤ë¤«¤ò¸«¤ë¤È¤«¡¢¤¹¤Ç¤ËÍÍ¡¹¤Ê¼êÃʤ¬Ä󰯤µ¤ì¡¢ ¼«Ê¬¤Î»Ò¤ÎÍý²òÅÙ¤ò¬¤ë¤¿¤á¤Ë¼Â¹Ô¤·¤Æ¤¤¤ëÊݸî¼Ô¤â¤¤¤ë'(A,B,C) :- findall(1,( between(1,A,_), between(1,B,_)),L), length(L,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê http://twitter.com/genkuroki/statuses/416777263229575168" # @genkuroki # #³Ý»» ¤¿¤È¤¨¤Ð¡Ö¤«¤±¤¶¤ó¡×¤Î¥Æ¥¹¥È¤Ç¾ï¤Ë³Ý»»°Ê³°¤ÎÊýË¡¤Ç²ò¤¯ÌäÂê¤ò # º®¤¼¤Æ¤ª¤¯¤È¤«¡¢ÌäÂêÊ¸Ãæ¤Ë̵Â̤ʿôÃͤòº®¤¼¤Æ¤ª¤¤¤ÆÅú¤¨¤ò½Ð¤¹¤¿¤á¤Ë # ɬÍפʾðÊó¤òÊ¸Ãæ¤«¤éÈ´¤­½Ð¤»¤ë¤«¤ò¸«¤ë¤È¤«¡¢¤¹¤Ç¤ËÍÍ¡¹¤Ê¼êÃʤ¬Ä󰯤µ¤ì¡¢ # ¼«Ê¬¤Î»Ò¤ÎÍý²òÅÙ¤ò¬¤ë¤¿¤á¤Ë¼Â¹Ô¤·¤Æ¤¤¤ëÊݸî¼Ô¤â¤¤¤ë '¤¿¤È¤¨¤Ð¡Ö¤«¤±¤¶¤ó¡×¤Î¥Æ¥¹¥È¤Ç¾ï¤Ë³Ý»»°Ê³°¤ÎÊýË¡¤Ç²ò¤¯ÌäÂê¤ò º®¤¼¤Æ¤ª¤¯¤È¤«¡¢ÌäÂêÊ¸Ãæ¤Ë̵Â̤ʿôÃͤòº®¤¼¤Æ¤ª¤¤¤ÆÅú¤¨¤ò½Ð¤¹¤¿¤á¤Ë ɬÍפʾðÊó¤òÊ¸Ãæ¤«¤éÈ´¤­½Ð¤»¤ë¤«¤ò¸«¤ë¤È¤«¡¢¤¹¤Ç¤ËÍÍ¡¹¤Ê¼êÃʤ¬Ä󰯤µ¤ì¡¢ ¼«Ê¬¤Î»Ò¤ÎÍý²òÅÙ¤ò¬¤ë¤¿¤á¤Ë¼Â¹Ô¤·¤Æ¤¤¤ëÊݸî¼Ô¤â¤¤¤ë'(A,B,C) :- length(L1,A), findall(L1,between(1,B,_),LL), flatten(LL,L2), length(L2,C). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1381909900/576 # À¾Îñ²¿Ç¯¤«¤òÆþÎϤ¹¤ë¤È¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨ # 52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ª´ê¤¤¤·¤Þ¤¹¡Ä # # 1²ó1²óȽÄꤹ¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·¡¢°ìµ¤¤ËȽÄê¤ò½ÐÎϤ¹¤ë¤â¤Î¤Ç¤ª´ê¤¤¤·¤Þ¤¹ # (0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) # # ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹ # # 'À¾Îñ²¿Ç¯¤«¤òÆþÎϤ¹¤ë¤È¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨ 52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ª´ê¤¤¤·¤Þ¤¹¡Ä 1²ó1²óȽÄꤹ¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·¡¢°ìµ¤¤ËȽÄê¤ò½ÐÎϤ¹¤ë¤â¤Î¤Ç¤ª´ê¤¤¤·¤Þ¤¹ (0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹' :- 'À¾Îñ²¿Ç¯¤«¤ò°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_À¾Îñ¤Ê¤é¤Ó), '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'(_À¾Îñ¤Ê¤é¤Ó). 'À¾Îñ²¿Ç¯¤«¤ò°ìµ¤¤Ë²¿²ó¤«ÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_À¾Îñ¤Ê¤é¤Ó) :- findall(_À¾Îñ,( 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'('À¾Îñ(1989~5000)¤òÆþÎϤ·¤Æ²¼¤µ¤¤',_À¾Îñ),( _À¾Îñ=0,!,fail;true)),_À¾Îñ¤Ê¤é¤Ó). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'([]). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'([_À¾Îñ|_»Ä¤ê¤Ê¤é¤Ó]) :- '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(_À¾Îñ,_0¤Þ¤¿¤Ï1), writef('%tǯ %t\n',[_À¾Îñ,_0¤Þ¤¿¤Ï1]), '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò½ÐÎϤ¹¤ë'(_»Ä¤ê¤Ê¤é¤Ó). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(_À¾Îñ,_0¤Þ¤¿¤Ï1) :- ¤¦¤ë¤¦Ç¯¤Ç£±·î£±Æü¤¬ÆüÍˤ«·îÍˤλþ¤Ï0¤½¤ì°Ê³°¤Ï1(_À¾Îñ,_0¤Þ¤¿¤Ï1). '¤½¤Îǯ¤Ë·îÍËÆü¤¬²¿²ó¤¢¤ë¤«¿ô¤¨52²ó¤Ê¤é1¤ò¡¢53²ó¤Ê¤é0¤ò'(_À¾Îñ,_0¤Þ¤¿¤Ï1) :- ¤¦¤ë¤¦Ç¯¤Ç¤Ê¤¤Ç¯¤Ï£±·î£±Æü¤¬·îÍˤλþ¤Ï0¤½¤ì°Ê³°¤Ï1(_À¾Îñ,_0¤Þ¤¿¤Ï1). ¤¦¤ë¤¦Ç¯¤Ç£±·î£±Æü¤¬ÆüÍˤ«·îÍˤλþ¤Ï0¤½¤ì°Ê³°¤Ï1(_À¾Îñ,0) :- ¤¦¤ë¤¦Ç¯(_À¾Îñ), '£±·î£±Æü¤¬ÆüÍˤ«·îÍˤλþ¤Ï'(_À¾Îñ),!. ¤¦¤ë¤¦Ç¯¤Ç£±·î£±Æü¤¬ÆüÍˤ«·îÍˤλþ¤Ï0¤½¤ì°Ê³°¤Ï1(_À¾Îñ,1) :- ¤¦¤ë¤¦Ç¯(_À¾Îñ). '£±·î£±Æü¤¬ÆüÍˤ«·îÍˤλþ¤Ï'(_À¾Îñ) :- 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_À¾Îñ,1,1,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü), member(_ÍËÆü,[ÆüÍË,·îÍË]). ¤¦¤ë¤¦Ç¯¤Ç¤Ê¤¤Ç¯¤Ï£±·î£±Æü¤¬·îÍˤλþ¤Ï0¤½¤ì°Ê³°¤Ï1(_À¾Îñ,0) :- \+(¤¦¤ë¤¦Ç¯(_À¾Îñ)), 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_À¾Îñ,1,1,_ÍËÆü¤òɽ¤¹ÃÍ,·îÍË),!. ¤¦¤ë¤¦Ç¯¤Ç¤Ê¤¤Ç¯¤Ï£±·î£±Æü¤¬·îÍˤλþ¤Ï0¤½¤ì°Ê³°¤Ï1(_À¾Îñ,1) :- \+(¤¦¤ë¤¦Ç¯(_À¾Îñ)). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!,fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î > 2, _ÍËÆü¤òɽ¤¹ÃÍ is (_ǯ + truncate(_ǯ / 4) - truncate(_ǯ / 100) + truncate(_ǯ / 400) + truncate((13 * _·î + 8) / 5) + _Æü) mod 7, ÍËÆü¤òɽ¤¹ÃÍ(_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). 'Zeller¤Î¸ø¼°¤Ç¤Ï1·î¤È2·î¤Ï¤½¤ì¤¾¤ìÁ°Ç¯¤Î13·î¤È14·î¤ËÊÑ´¹¤·¤Æ·×»»¤¹¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _·î =< 2, _ǯ_1 is _ǯ - 1, _·î_2 is _·î + 12, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ_1,_·î_2,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü). ÍËÆü¤òɽ¤¹ÃÍ(0,ÆüÍË). ÍËÆü¤òɽ¤¹ÃÍ(1,·îÍË). ÍËÆü¤òɽ¤¹ÃÍ(2,²ÐÍË). ÍËÆü¤òɽ¤¹ÃÍ(3,¿åÍË). ÍËÆü¤òɽ¤¹ÃÍ(4,ÌÚÍË). ÍËÆü¤òɽ¤¹ÃÍ(5,¶âÍË). ÍËÆü¤òɽ¤¹ÃÍ(6,ÅÚÍË). 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ºÅ¥ʸ,_À¾Îñ) :- writef('%t ',[_ºÅ¥ʸ]), get_line(_ÆþÎϹÔ), '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ÆþÎϹÔ,_À¾Îñ). 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ºÅ¥ʸ,_À¾Îñ) :- 'À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ºÅ¥ʸ,_À¾Îñ). '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'('0',0) :- !. '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ÆþÎϹÔ,_À¾Îñ) :- read_term_from_atom(_ÆþÎϹÔ,_À¾Îñ,[]), integer(_À¾Îñ), between(1989,5000,_À¾Îñ),!. '¿ÇÃÇ :: À¾Îñ¤òÆþÎϤ·(0¤òÆþÎϤ·¤¿¤é½ª¤ï¤ê¤Ç¤¹) ÆþÎϤǤ­¤ë¤Î¤Ï1989¡Á5000¤Ç¤¹'(_ÆþÎϹÔ,_) :- writef('ÆþÎϤµ¤ì¤¿Ê¸»úÎó"%t"¤«¤é1899ǯ¤«¤é5000ǯÈϰϤÎÀ¾Îñ¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿\nºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n',[_ÆþÎϹÔ]), fail. get_line(Line) :- get_line(user_input,Line). get_line(Instream,Line) :- get_char(Instream,C), get_line_1(Instream,C,Chars), atom_chars(Line,Chars) . get_line_1(_,'\n',[]) :- !. get_line_1(_,end_of_file,[]) :- !. get_line_1(Instream,C,[C|R]) :- get_char(Instream,C2), get_line_1(Instream,C2,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/684 # ¤ªÂê: ¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì # # ½ÐÎÏ: http://ime.nu/codepad.org/9Qm1zRxy # # °ìÈÖ¾å¤Î¡Ö¡ù¡×¤ÈÅÚÂæ¤Î¡Ö||¡×¤Ï¸ÇÄê¤Ç¤è¤¤ # Áõ¾þ¤ÏŬÅö¤Êʸ»ú(Îã¡§N,i,X,J,o,%,b¤Ê¤É)¤òÍøÍѤ¹¤ë # # ²òÅúÎã: http://ime.nu/codepad.org/aR7eI9F2 # # ¡ù # || # ¡ù # ** # || # ¡ù # b* # *i*o # || # ¡ù # ** # **** # ****** # || # ¡ù # *b # **** # i**%*J # *Ni***** # || # ¡ù # ** # *%** # *****i # **JX**** # ********** # || # ¡ù # %* # **%* # *i***o # ******** # ****%***** # **o%****oi*b # || ÍդȾþ¤ê(20,[*,*,*,*,*,*,*,*,*,*,*,*,*,'N','i','X','J',o,'%',b]). '¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì ½ÐÎÏ: http://ime.nu/codepad.org/9Qm1zRxy °ìÈÖ¾å¤Î¡Ö¡ù¡×¤ÈÅÚÂæ¤Î¡Ö||¡×¤Ï¸ÇÄê¤Ç¤è¤¤ Áõ¾þ¤ÏŬÅö¤Êʸ»ú(Îã¡§N,i,X,J,o,%,b¤Ê¤É)¤òÍøÍѤ¹¤ë' :- forall((between(2,8,_²¿ÃÊ), '¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì'(_²¿ÃÊ,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼)), ¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤Îɽ¼¨(_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼)). '¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì'(_²¿ÃÊ,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼) :- length(_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼,_²¿ÃÊ), append([¡ù|L1],['||'],_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼), findall(_ÃÊ,( nth1(_ÃÊÌÜ,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼,_ÃÊ), °ìÃÊÀ¸À®(_ÃÊÌÜ,_ÃÊ)), _¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼). °ìÃÊÀ¸À®(_ÃÊÌÜ,_¾þ¤ê¤ò´Þ¤àÍÕ) :- var(_¾þ¤ê¤ò´Þ¤àÍÕ), length(_ÃÊ,_ÃÊÌÜ), ¾þ¤ê¤ò´Þ¤àÍÕ¤ÎÀ¸À®(_ÃÊ,_¾þ¤ê¤ò´Þ¤àÍÕ),!. °ìÃÊÀ¸À®(_,_´û¤Ë¸ºß¤¹¤ë¤â¤Î) :- \+(var(_´û¤Ë¸ºß¤¹¤ë¤â¤Î)). ¾þ¤ê¤ò´Þ¤àÍÕ¤ÎÀ¸À®(_ÃÊ,_°ìÃʤÎÍÕ¾þ¤ê) :- ÍդȾþ¤ê(_´ð¿ô,_ÍդȾþ¤ê¤Ê¤é¤Ó), findall(_ÍÕ¤Þ¤¿¤Ï¾þ¤ê,( ÍÕ¤Þ¤¿¤Ï¾þ¤ê¤ÎÁªÂò(_ÃÊ,_´ð¿ô,_ÍդȾþ¤ê¤Ê¤é¤Ó,_ÍÕ¤Þ¤¿¤Ï¾þ¤ê)), _ÍÕ¤Þ¤¿¤Ï¾þ¤ê¤Ê¤é¤Ó), atomic_list_concat(_ÍÕ¤Þ¤¿¤Ï¾þ¤ê¤Ê¤é¤Ó,_°ìÃʤÎÍÕ¾þ¤ê),!. ÍÕ¤Þ¤¿¤Ï¾þ¤ê¤ÎÁªÂò(_ÃÊ,_´ð¿ô,_ÍդȾþ¤ê¤Ê¤é¤Ó,_ÍÕ¤Þ¤¿¤Ï¾þ¤ê) :- member(_ÍÕ¤Þ¤¿¤Ï¾þ¤ê,_ÃÊ), _Íð¿ô is random(_´ð¿ô), nth0(_Íð¿ô,_ÍդȾþ¤ê¤Ê¤é¤Ó,_ÍÕ¤Þ¤¿¤Ï¾þ¤ê). ¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤Îɽ¼¨(_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼) :- forall(member(_ÃÊ,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼), writef('%t\n',[_ÃÊ])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/684 # ¤ªÂê: ¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì # # ½ÐÎÏ: http://ime.nu/codepad.org/9Qm1zRxy # # °ìÈÖ¾å¤Î¡Ö¡ù¡×¤ÈÅÚÂæ¤Î¡Ö||¡×¤Ï¸ÇÄê¤Ç¤è¤¤ # Áõ¾þ¤ÏŬÅö¤Êʸ»ú(Îã¡§N,i,X,J,o,%,b¤Ê¤É)¤òÍøÍѤ¹¤ë # # ²òÅúÎã: http://ime.nu/codepad.org/aR7eI9F2 # # ¡ù # || # ¡ù # ** # || # ¡ù # b* # *i*o # || # ¡ù # ** # **** # ****** # || # ¡ù # *b # **** # i**%*J # *Ni***** # || # ¡ù # ** # *%** # *****i # **JX**** # ********** # || # ¡ù # %* # **%* # *i***o # ******** # ****%***** # **o%****oi*b # || '¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì ½ÐÎÏ: http://ime.nu/codepad.org/9Qm1zRxy °ìÈÖ¾å¤Î¡Ö¡ù¡×¤ÈÅÚÂæ¤Î¡Ö||¡×¤Ï¸ÇÄê¤Ç¤è¤¤ Áõ¾þ¤ÏŬÅö¤Êʸ»ú(Îã¡§N,i,X,J,o,%,b¤Ê¤É)¤òÍøÍѤ¹¤ë' :- forall((between(2,8,_ÃÊ), '¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì'(_ÃÊ,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼)), ¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤Îɽ¼¨(_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼)). '¥é¥ó¥À¥à¤ËÁõ¾þ¤µ¤ì¤¿Â礭¤µ¤Î°Û¤Ê¤ë¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤ò£·¸Äºî¤ì'(_ÃÊ,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼) :- length(L,_ÃÊ), append([¡ù|L1],['||'],L), findall(A,( nth1(_nth1,L,A), '°ìÃÊÀ¸À®'(_nth1,A)), L). '°ìÃÊÀ¸À®'(_nth1,A) :- var(A), length(L,_nth1), ¾þ¤ê¤ò´Þ¤àÍÕ¤ÎÀ¸À®(L,A),!. '°ìÃÊÀ¸À®'(_,A) :- \+(var(A)). ¾þ¤ê¤ò´Þ¤àÍÕ¤ÎÀ¸À®(L,A) :- findall(B,( member(B,L), _Íð¿ô is random(20), nth0(_Íð¿ô,[*,*,*,*,*,*,*,*,*,*,*,*,*,'N','i','X','J',o,'%',b],B)), L), atomic_list_concat(L,A),!. ¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼¤Îɽ¼¨(_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼) :- forall(member(A,_¥¯¥ê¥¹¥Þ¥¹¥Ä¥ê¡¼), writef('%t\n',[A])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/658 # Ǥ°ÕÀºÅÙÀ°¿ô¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¥Ð¥°½¤Àµ¤·¤¿¤«¤Ã¤¿¤¬¡¢ # ½ô»ö¾ð¤Ç¤½¤ì¤â¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç½ÐÂê¤Î°Õ¿Þ¤ò½Ì¾®¤·¤ÆÄûÀµ¡£ # # ¤ªÂê¡§1¤«¤é10000¤Þ¤Ç¤ÎÀ°¤ò¤¹¤Ù¤ÆÂ­¤»¡£ # ¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£ # # ²óÅúÎã¡§ Objective Caml version 3.08.1 # let sum1to n = # let rec f sum n = # if n = 0 then sum # else f (sum + n) (n - 1) in # f 0 n;; # print_int (sum1to 10000);; # ¢­ # 50005000 # # '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£' :- findsum(N,between(1,10000,N),_¹ç·×), writef('¤½¤Î¹ç·×¤Ï%t\n',[_¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/658 # Ǥ°ÕÀºÅÙÀ°¿ô¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¥Ð¥°½¤Àµ¤·¤¿¤«¤Ã¤¿¤¬¡¢ # ½ô»ö¾ð¤Ç¤½¤ì¤â¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç½ÐÂê¤Î°Õ¿Þ¤ò½Ì¾®¤·¤ÆÄûÀµ¡£ # # ¤ªÂê¡§1¤«¤é10000¤Þ¤Ç¤ÎÀ°¤ò¤¹¤Ù¤ÆÂ­¤»¡£ # ¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£ # # ²óÅúÎã¡§ Objective Caml version 3.08.1 # let sum1to n = # let rec f sum n = # if n = 0 then sum # else f (sum + n) (n - 1) in # f 0 n;; # print_int (sum1to 10000);; # ¢­ # 50005000 # # '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£' :- findsum(N,between(1,10000,N),_¹ç·×), '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×). '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×) :- writef('¤½¤Î¹ç·×¤Ï%t\n',[_¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/658 # Ǥ°ÕÀºÅÙÀ°¿ô¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¥Ð¥°½¤Àµ¤·¤¿¤«¤Ã¤¿¤¬¡¢ # ½ô»ö¾ð¤Ç¤½¤ì¤â¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç½ÐÂê¤Î°Õ¿Þ¤ò½Ì¾®¤·¤ÆÄûÀµ¡£ # # ¤ªÂê¡§1¤«¤é10000¤Þ¤Ç¤ÎÀ°¤ò¤¹¤Ù¤ÆÂ­¤»¡£ # ¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£ # # ²óÅúÎã¡§ Objective Caml version 3.08.1 # let sum1to n = # let rec f sum n = # if n = 0 then sum # else f (sum + n) (n - 1) in # f 0 n;; # print_int (sum1to 10000);; # ¢­ # 50005000 # # '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£' :- '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×), '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×). '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×) :- '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò'(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), '¤¹¤Ù¤ÆÂ­¤»¡£'(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_¹ç·×). '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò'(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó) :- findall(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô,'1¤«¤é10000¤Þ¤Ç¤Î'(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô),_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó). '1¤«¤é10000¤Þ¤Ç¤Î'(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô) :- between(1,10000,_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô). '¤¹¤Ù¤ÆÂ­¤»¡£'(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_¹ç·×) :- sum_list(_1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_¹ç·×). '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×) :- writef('¤½¤Î¹ç·×¤Ï%w\n',[_¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/658 # Ǥ°ÕÀºÅÙÀ°¿ô¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¥Ð¥°½¤Àµ¤·¤¿¤«¤Ã¤¿¤¬¡¢ # ½ô»ö¾ð¤Ç¤½¤ì¤â¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç½ÐÂê¤Î°Õ¿Þ¤ò½Ì¾®¤·¤ÆÄûÀµ¡£ # # ¤ªÂê¡§1¤«¤é10000¤Þ¤Ç¤ÎÀ°¤ò¤¹¤Ù¤ÆÂ­¤»¡£ # ¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£ # # ²óÅúÎã¡§ Objective Caml version 3.08.1 # let sum1to n = # let rec f sum n = # if n = 0 then sum # else f (sum + n) (n - 1) in # f 0 n;; # print_int (sum1to 10000);; # ¢­ # 50005000 # # '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£' :- '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×), '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×). '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×) :- findall(N,between(1,10000,N),_1¤«¤é10000¤Þ¤Ç¤Î¤Ê¤é¤Ó), atomic_list_concat(_1¤«¤é10000¤Þ¤Ç¤Î¤Ê¤é¤Ó,'+',_¼°Ê¸»úÎó), read_term_from_atom(_¼°Ê¸»úÎó,_¼°,[]), _¹ç·× is _¼°. '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×) :- writef('¤½¤Î¹ç·×¤Ï%t\n',[_¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/658 # Ǥ°ÕÀºÅÙÀ°¿ô¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¥Ð¥°½¤Àµ¤·¤¿¤«¤Ã¤¿¤¬¡¢ # ½ô»ö¾ð¤Ç¤½¤ì¤â¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç½ÐÂê¤Î°Õ¿Þ¤ò½Ì¾®¤·¤ÆÄûÀµ¡£ # # ¤ªÂê¡§1¤«¤é10000¤Þ¤Ç¤ÎÀ°¤ò¤¹¤Ù¤ÆÂ­¤»¡£ # ¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£ # # ²óÅúÎã¡§ Objective Caml version 3.08.1 # let sum1to n = # let rec f sum n = # if n = 0 then sum # else f (sum + n) (n - 1) in # f 0 n;; # print_int (sum1to 10000);; # ¢­ # 50005000 # # '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£' :- '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×), '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×). '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×) :- findall(N,between(1,10000,N),L), sumlist(L,_¹ç·×). '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×) :- writef('¤½¤Î¹ç·×¤Ï%t\n',[_¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/658 # Ǥ°ÕÀºÅÙÀ°¿ô¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¥Ð¥°½¤Àµ¤·¤¿¤«¤Ã¤¿¤¬¡¢ # ½ô»ö¾ð¤Ç¤½¤ì¤â¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç½ÐÂê¤Î°Õ¿Þ¤ò½Ì¾®¤·¤ÆÄûÀµ¡£ # # ¤ªÂê¡§1¤«¤é10000¤Þ¤Ç¤ÎÀ°¤ò¤¹¤Ù¤ÆÂ­¤»¡£ # ¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£ # # ²óÅúÎã¡§ Objective Caml version 3.08.1 # let sum1to n = # let rec f sum n = # if n = 0 then sum # else f (sum + n) (n - 1) in # f 0 n;; # print_int (sum1to 10000);; # ¢­ # 50005000 # # '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£' :- '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×), '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×). '1¤«¤é10000¤Þ¤Ç¤ÎÀ°¿ô¤ò¤¹¤Ù¤ÆÂ­¤»¡£'(_¹ç·×) :- findall(N,between(1,10000,N),L), sumlist(L,_¹ç·×). '¤¹¤Ù¤ÆÂ­¤·¤¿¤é¡¢¤½¤Î¹ç·×¤òɽ¼¨¤»¤è¡£'(_¹ç·×) :- writef('¹ç·×¤Ï %t\n',[_¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/555 # ¤ªÂê¡§±ß¤ÎÃæ¿´ÅÀ¤ÈȾ·Â¤¬Í¿¤¨¤é¤ì¤ë¤È¤­¡¢¤½¤Î±ß¤È±ß¤ÎÆâÉô¤Ë # ´Þ¤Þ¤ì¤ë³Ê»ÒÅÀ(ºÂɸÀ®Ê¬¤¬¤¹¤Ù¤ÆÀ°¿ô¤Ë¤Ê¤ëÅÀ)¤Î¸Ä¿ô¤ò¿ô¤¨¤ë¡£ # Îã¡Ë # ? 1 1 1 # 5 # ? 0.5 0.5 1 # 4 # # '±ß¤ÎÃæ¿´ÅÀ¤ÈȾ·Â¤¬Í¿¤¨¤é¤ì¤ë¤È¤­¡¢¤½¤Î±ß¤È±ß¤ÎÆâÉô¤Ë ´Þ¤Þ¤ì¤ë³Ê»ÒÅÀ(ºÂɸÀ®Ê¬¤¬¤¹¤Ù¤ÆÀ°¿ô¤Ë¤Ê¤ëÅÀ)¤Î¸Ä¿ô¤ò¿ô¤¨¤ë¡£'(_±ß¤ÎÃæ¿´ÅÀxºÂɸ,_±ß¤ÎÃæ¿´ÅÀyºÂɸ,_Ⱦ·Â,_±ß¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ë³Ê»ÒÅÀ¤Î¸Ä¿ô) :- Ä´¤Ù¤ë¤Ù¤­ºÂɸÈϰϤòÆÀ¤ë(_±ß¤ÎÃæ¿´ÅÀxºÂɸ,_±ß¤ÎÃæ¿´ÅÀyºÂɸ,_Ⱦ·Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ¾å¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ¾å¸Â), count(( ±ß¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ë³Ê»ÒÅÀ¸õÊä(_Ä´¤Ù¤ë¤Ù¤­xºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ¾å¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ¾å¸Â,X,Y), 'ÅÀ(X,Y)¤Ï±ß¤ÎÆâÉô¤Ë¤¢¤ë'(_±ß¤ÎÃæ¿´ÅÀxºÂɸ,_±ß¤ÎÃæ¿´ÅÀyºÂɸ,_Ⱦ·Â,X,Y)),_±ß¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ë³Ê»ÒÅÀ¤Î¸Ä¿ô). Ä´¤Ù¤ë¤Ù¤­ºÂɸÈϰϤòÆÀ¤ë(_±ß¤ÎÃæ¿´ÅÀxºÂɸ,_±ß¤ÎÃæ¿´ÅÀyºÂɸ,_Ⱦ·Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ¾å¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ¾å¸Â) :- _Ä´¤Ù¤ë¤Ù¤­xºÂɸ²¼¸Â is truncate(_±ß¤ÎÃæ¿´ÅÀxºÂɸ - _Ⱦ·Â), _Ä´¤Ù¤ë¤Ù¤­xºÂɸ¾å¸Â is truncate(_±ß¤ÎÃæ¿´ÅÀxºÂɸ + _Ⱦ·Â + 0.5), _Ä´¤Ù¤ë¤Ù¤­yºÂɸ²¼¸Â is truncate(_±ß¤ÎÃæ¿´ÅÀyºÂɸ - _Ⱦ·Â), _Ä´¤Ù¤ë¤Ù¤­yºÂɸ¾å¸Â is truncate(_±ß¤ÎÃæ¿´ÅÀyºÂɸ + _Ⱦ·Â + 0.5). ±ß¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ë³Ê»ÒÅÀ¸õÊä(_Ä´¤Ù¤ë¤Ù¤­xºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ¾å¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ¾å¸Â,X,Y) :- between(_Ä´¤Ù¤ë¤Ù¤­xºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­xºÂɸ¾å¸Â,X), between(_Ä´¤Ù¤ë¤Ù¤­yºÂɸ²¼¸Â,_Ä´¤Ù¤ë¤Ù¤­yºÂɸ¾å¸Â,Y). 'ÅÀ(X,Y)¤Ï±ß¤ÎÆâÉô¤Ë¤¢¤ë'(_±ß¤ÎÃæ¿´ÅÀ¤ÎxºÂɸ,_±ß¤ÎÃæ¿´ÅÀ¤ÎyºÂɸ,_Ⱦ·Â,X,Y) :- (X - _±ß¤ÎÃæ¿´ÅÀ¤ÎxºÂɸ) ^ 2 + (Y - _±ß¤ÎÃæ¿´ÅÀ¤ÎyºÂɸ) ^ 2 =< _Ⱦ·Â ^ 2. count(P,Count) :- findall(1,P,L), length(L,Count). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # prolog¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ # £²¾èÏÂ¤Î¥×¥í¥°¥é¥à¤¬½ñ¤±¤Ê¤¯¤Æº¤¤Ã¤Æ¤¤¤Þ¤¹¡£1¤«¤éX¤Þ¤Ç¤Î£²¾èÏÂY¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥àssq(X,Y)¤ò¡É°ìÀÚis¤òÍѤ¤¤º¡É¤ËºîÀ®¤·¤Æ¤¤¤¿¤À¤±¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡©¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ '£²¾èÏÂ¤Î¥×¥í¥°¥é¥à¤¬½ñ¤±¤Ê¤¯¤Æº¤¤Ã¤Æ¤¤¤Þ¤¹¡£ 1¤«¤éX¤Þ¤Ç¤Î£²¾èÏÂY¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥àssq(X,Y)¤ò¡É°ìÀÚis¤òÍѤ¤¤º¡É¤ËºîÀ®¤·¤Æ¤¤¤¿¤À¤±¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡© ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£'(X,Y) :- ssq(X,Y). ssq(X,Y) :- '1¤«¤éX¤Þ¤Ç¤Î£²¾èÏÂY¤ò"°ìÀÚis¤òÍѤ¤¤º"¤Ë·×»»¤¹¤ë'(X,Y). '1¤«¤éX¤Þ¤Ç¤Î£²¾èÏÂY¤ò"°ìÀÚis¤òÍѤ¤¤º"¤Ë·×»»¤¹¤ë'(X,_£²¾èÏÂY) :- '£²¾èϤò¥ê¥¹¥È¤È¤·¤ÆÉ½¸½¤¹¤ë(¤¿¤À¤·¥ê¥¹¥È¤Ïʿ󲽤µ¤ì¤Æ¤¤¤Ê¤¤)'(X,_£²¾èÏ¥ꥹ¥Èɽ¸½), ¥ê¥¹¥È¤òʿ󲽤·¤Æ¤½¤ÎÍ×ÁÇ¿ô¤ò¿ô¤¨¤ë(_£²¾èÏ¥ꥹ¥Èɽ¸½,_£²¾èÏÂY). '£²¾èϤò¥ê¥¹¥È¤È¤·¤ÆÉ½¸½¤¹¤ë(¤¿¤À¤·¥ê¥¹¥È¤Ïʿ󲽤µ¤ì¤Æ¤¤¤Ê¤¤)'(X,_£²¾èÏ¥ꥹ¥Èɽ¸½) :- findall(LL,( '1¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤òÍ×ÁÇ¿ô¤È¤¹¤ë¥ê¥¹¥ÈL¤òÀ¸À®¤¹¤ë'(X,L), ¥ê¥¹¥È¤Ë¤è¤Ã¤Æ£²¾è¤òɽ¸½¤¹¤ë(L,LL)), _£²¾èÏ¥ꥹ¥Èɽ¸½). '1¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤òÍ×ÁÇ¿ô¤È¤¹¤ë¥ê¥¹¥ÈL¤òÀ¸À®¤¹¤ë'(X,L) :- between(1,X,N), length(L,N). ¥ê¥¹¥È¤Ë¤è¤Ã¤Æ£²¾è¤òɽ¸½¤¹¤ë(L1,LL) :- findall(L1,nth1(_,L1,_),LL). ¥ê¥¹¥È¤òʿ󲽤·¤Æ¤½¤ÎÍ×ÁÇ¿ô¤ò¿ô¤¨¤ë(LL,_Í×ÁÇ¿ô) :- flatten(LL,L), length(L,_Í×ÁÇ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # prolog¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ # £²¾èÏÂ¤Î¥×¥í¥°¥é¥à¤¬½ñ¤±¤Ê¤¯¤Æº¤¤Ã¤Æ¤¤¤Þ¤¹¡£1¤«¤éX¤Þ¤Ç¤Î£²¾èÏÂY¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥àssq(X,Y)¤ò¡É°ìÀÚis¤òÍѤ¤¤º¡É¤ËºîÀ®¤·¤Æ¤¤¤¿¤À¤±¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡©¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ ssq(X,Y) :- findall(LL,( between(1,X,M), length(L,M), findall(L,nth1(_,L,_),LL)), LL2), flatten(LL2,L2), length(L2,Y). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1357191974/449 # ¤ªÂê¡§Í¿¤¨¤é¤ì¤¿ÇÛÎó¤ò¤Ê¤ë¤Ù¤¯NÅùʬ¤»¤è¡£ # Í×ÁǤνçÈÖ¤ÏÆþ¤ìÂØ¤¨¤º¡¢ÇÛÎó¤ÎÇÛÎó¤È¤·¤ÆÊÖ¤¹¡£ # N¤Ï1°Ê¾å¤È¤¹¤ë¡£ # ¥Ç¡¼¥¿¹½Â¤¤Ï¡¢¥ê¥¹¥È¡¢¥Ù¥¯¥¿¡¢¥¿¥×¥ë¤Ê¤É¤Ç¤â²Ä¡£ # # ²óÅúÎ㤪¤è¤Ó¥Á¥§¥Ã¥¯ÍѽÐÎÏÎã¡§ ruby 1.8.6 # def narudiv(a, n) # d, m = a.size.divmod(n) # (1..n).map {|i| a.slice!(0, d + (i <= m ? 1 : 0))} # end # p narudiv((1..10).to_a, 3) # p narudiv((1..15).to_a, 4) # ¢­ # [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]] # [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15]] # # 'Í¿¤¨¤é¤ì¤¿ÇÛÎó¤ò¤Ê¤ë¤Ù¤¯NÅùʬ¤»¤è¡£ Í×ÁǤνçÈÖ¤ÏÆþ¤ìÂØ¤¨¤º¡¢ÇÛÎó¤ÎÇÛÎó¤È¤·¤ÆÊÖ¤¹¡£ N¤Ï1°Ê¾å¤È¤¹¤ë¡£ ¥Ç¡¼¥¿¹½Â¤¤Ï¡¢¥ê¥¹¥È¡¢¥Ù¥¯¥¿¡¢¥¿¥×¥ë¤Ê¤É¤Ç¤â²Ä¡£'(_N,_¤Ê¤é¤Ó,_NÅùʸ¤µ¤ì¤¿¤Ê¤é¤Ó) :- length(_¤Ê¤é¤Ó,_Í×ÁÇ¿ô), _D is _Í×ÁÇ¿ô // _N, _M is _Í×ÁÇ¿ô mod N, '_M¤ò³Æ_D¤Ë³ä¤ê¿¶¤ë'(_D,_M,_N,_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó), flatten(_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó,_¤Ê¤é¤Ó). '_M¤ò³Æ_D¤Ë³ä¤ê¿¶¤ë'(_D,_M,_N,_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó) :- length(_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó,_N), findall(_n,between(1,_N,_n),L1), Áȹ礻(L1,_M,_Áȹ礻), '_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó¤ò½¼¼Â¤µ¤»¤ë'(_D,_Áȹ礻,_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó). '_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó¤ò½¼¼Â¤µ¤»¤ë'(_D,_Áȹ礻,_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó) :- findall(L2,( nth1(_nth1,_NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó,L), length(L,_D), '_nth1¤¬_Áȹ礻¤Ë¸ºß¤¹¤ë¤È¤­¤Ë¤ÏÏȤòÄɲ乤ë'(_nth1,L,_Áȹ礻,L2)), _NÅùʬ¤µ¤ì¤¿¤Ê¤é¤Ó). '_nth1¤¬_Áȹ礻¤Ë¸ºß¤¹¤ë¤È¤­¤Ë¤ÏÏȤòÄɲ乤ë'(_nth1,L,_Áȹ礻,[_|L]) :- member(_nth1,_Áȹ礻),!. '_nth1¤¬_Áȹ礻¤Ë¸ºß¤¹¤ë¤È¤­¤Ë¤ÏÏȤòÄɲ乤ë'(_,L,_Áȹ礻,L). Áȹ礻(L,1,[A]) :- member(A,L). Áȹ礻([A|R1],N,[A|R3]) :- N > 1, M is N - 1, Áȹ礻(R1,M,R3). Áȹ礻([_|R1],N,L) :- N > 1, Áȹ礻(R1,N,L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê:: http://toro.2ch.net/test/read.cgi/tech/1357191974/435 # ¤ªÂê¡§1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï # ¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)ɽ¼¨¤¹¤ë¡£ '1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)ɽ¼¨¤¹¤ë¡£' :- '1¤«¤é100¤Þ¤Ç¤Î¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô'(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô), '1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)'(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô,_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃÍÄê¿ô¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃÍÄê¿ô¤Ê¤é¤Ó). '1¤«¤é100¤Þ¤Ç¤Î¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô'(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô) :- findall(_¿ôÃÍÄê¿ô,( between(1,100,_¿ôÃÍ), atom_number(_¿ôÃÍÄê¿ô,_¿ôÃÍ)), _¿ôÃÍÄê¿ô¤Ê¤é¤Ó), atomic_list_concat(['0.'|_¿ôÃÍÄê¿ô¤Ê¤é¤Ó],_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô). '1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)'(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô,_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó) :- findall([_³«»Ï°ÌÃÖ,_¿ôÃÍ],( between(1,100,_¿ôÃÍ), atom_number(_¿ôÃÍÄê¿ô,_¿ôÃÍ), sub_atom(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô,_³«»Ï°ÌÃÖ,_,_,_¿ôÃÍÄê¿ô)), _³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó), sort(_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó,_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó). ɽ¼¨¤¹¤ë(_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó) :- forall(member(_¿ôÃÍ,_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó),writef('%t\n',[_¿ôÃÍ])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê:: http://toro.2ch.net/test/read.cgi/tech/1357191974/435 # ¤ªÂê¡§1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï # ¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)ɽ¼¨¤¹¤ë¡£ '1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)ɽ¼¨¤¹¤ë¡£' :- '1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)'(_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃÍÄê¿ô¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃÍÄê¿ô¤Ê¤é¤Ó). '1¤«¤é100¤ò¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ç¤Î½Ð¸½½ç¤Ë(½Ð¸½°ÌÃÖ¤¬Æ±¤¸¾ì¹ç¤Ï¸µ¤Î¥Ç¡¼¥¿¤Î½ç¤Ë)'(_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó) :- findall([_³«»Ï°ÌÃÖ,_¿ôÃÍ],( between(1,100,_¿ôÃÍ), atom_number(_¿ôÃÍÄê¿ô,_¿ôÃÍ), ¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ë½Ð¸½(_¿ôÃÍÄê¿ô,_³«»Ï°ÌÃÖ)), _³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó), sort(_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó,_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó). ¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤Ë½Ð¸½(_¿ôÃÍÄê¿ô,_³«»Ï°ÌÃÖ) :- ¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤ÎÀ¸À®(1,'0.1',_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô), sub_atom(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô,_³«»Ï°ÌÃÖ,_,_,_¿ôÃÍÄê¿ô),!. ¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤ÎÀ¸À®(_¿ôÃÍ,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô). ¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤ÎÀ¸À®(_¿ôÃÍ_1,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô_1,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô) :- _¿ôÃÍ_2 is _¿ôÃÍ_1 + 1, atom_number(_¿ôÃÍÄê¿ô,_¿ôÃÍ_2), atom_concat(_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô_1,_¿ôÃÍÄê¿ô,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô_2), ¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô¤ÎÀ¸À®(_¿ôÃÍ_2,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô_2,_¥Á¥ã¥ó¥Ñ¡¼¥Î¥¦¥óÄê¿ô). ɽ¼¨¤¹¤ë(_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó) :- forall(member([_,_¿ôÃÍ],_À°Îó¤·¤¿_³«»Ï°ÌÃÖ_¿ôÃͤʤé¤Ó),writef('%t\n',[_¿ôÃÍ])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½ÐÂê¾ì½ê :: http://toro.2ch.net/test/read.cgi/tech/1337692704/944 # forʸ¤ò»È¤Ã¤Æ£¶¤Î£µ£°£°¾è¤ÎÅú¤¨¤¬¤Ç¤ë¥×¥í¥°¥é¥à¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # for(_²¿¾è,_Åú¤¨) :- for(1,6,_²¿¾è,_Åú¤¨). for(_²¿¾è,_Åú¤¨,_²¿¾è,_Åú¤¨). for(_²¿¾è_1,_6¤Î²¿¾è_1,_²¿¾è,_Åú¤¨) :- _6¤Î²¿¾è_2 is _6¤Î²¿¾è_1 * 6, _²¿¾è_2 is _²¿¾è_1 + 1, for(_²¿¾è_2,_6¤Î²¿¾è_2,_²¿¾è,_Åú¤¨). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¤ªÂê¡§¤Õ¤¿¤Ä¤Î¼«Á³¿ô¤Î¸øÌó¿ô¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ '¤Õ¤¿¤Ä¤Î¼«Á³¿ô¤Î¸øÌó¿ô¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô,_¤Õ¤¿¤ÄÌܤμ«Á³¿ô) :- _¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô > _¤Õ¤¿¤ÄÌܤμ«Á³¿ô, '¤Õ¤¿¤Ä¤Î¼«Á³¿ô¤Î¸øÌó¿ô¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_¤Õ¤¿¤ÄÌܤμ«Á³¿ô,_¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô). '¤Õ¤¿¤Ä¤Î¼«Á³¿ô¤Î¸øÌó¿ô¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô,_¤Õ¤¿¤ÄÌܤμ«Á³¿ô) :- forall((between(1,_¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô,_¸øÌó¿ô),0 is _¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô mod _¸øÌó¿ô,0 is _¤Õ¤¿¤ÄÌܤμ«Á³¿ô mod _¸øÌó¿ô),writef('%t ',[_¸øÌó¿ô])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¤ªÂê¡§¤Õ¤¿¤Ä¤Î¼«Á³¿ô¤Î¸øÌó¿ô¤ò¤¹¤Ù¤Æµá¤á¤ë¡£ '¤Õ¤¿¤Ä¤Î¼«Á³¿ô¤Î¸øÌó¿ô¤ò¤¹¤Ù¤Æµá¤á¤ë¡£'(_¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô,_¤Õ¤¿¤ÄÌܤμ«Á³¿ô) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(_¤Ò¤È¤Ä¤á¤Î¼«Á³¿ô,_¤Õ¤¿¤ÄÌܤμ«Á³¿ô,_ºÇÂç¸øÌó¿ô), forall((between(1,_ºÇÂç¸øÌó¿ô,_¸øÌó¿ô),0 is _ºÇÂç¸øÌó¿ô mod _¸øÌó¿ô),writef('%t ',[_¸øÌó¿ô])). ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X) . % °Ê²¼¤Î¥µ¥¤¥È¤Ï # H. Hosaka @H_H: # [»»¿ô][ÌäÂê] H·¯¤Ï10Ëü±ß¤ò»ý¤Ã¤Æ¶ä¹Ô¤Ë¹Ô¤­¡¢50Ëç¤Î¤ª»¥¤ËÎ¾ÂØ¤·¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£H·¯¤ÏÀé±ß»¥¡¢ÆóÀé±ß»¥¡¢¸ÞÀé±ß»¥¡¢°ìËü±ß»¥¤ò²¿Ëç¼õ¤±¼è¤Ã¤¿¤Ç¤·¤ç¤¦¤«¡©¤¢¤êÆÀ¤ë²ÄǽÀ­¤òÁ´¤ÆÅú¤¨¤Ê¤µ¤¤¡£ '[»»¿ô][ÌäÂê] H·¯¤Ï10Ëü±ß¤ò»ý¤Ã¤Æ¶ä¹Ô¤Ë¹Ô¤­¡¢50Ëç¤Î¤ª»¥¤ËÎ¾ÂØ¤·¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£H·¯¤ÏÀé±ß»¥¡¢ÆóÀé±ß»¥¡¢¸ÞÀé±ß»¥¡¢°ìËü±ß»¥¤ò²¿Ëç¼õ¤±¼è¤Ã¤¿¤Ç¤·¤ç¤¦¤«¡©¤¢¤êÆÀ¤ë²ÄǽÀ­¤òÁ´¤ÆÅú¤¨¤Ê¤µ¤¤¡£'(_Àé±ß»¥¤ÎËç¿ô,_ÆóÀé±ß»¥¤ÎËç¿ô,_¸ÞÀé±ß»¥¤ÎËç¿ô,_°ìËü±ß»¥¤ÎËç¿ô) :- '»Í¤Ä­¤·¤ÆÅú¤¨¤¬50'(_Àé±ß»¥¤ÎËç¿ô,_ÆóÀé±ß»¥¤ÎËç¿ô,_¸ÞÀé±ß»¥¤ÎËç¿ô,_°ìËü±ß»¥¤ÎËç¿ô), 100000 is 1000 * _Àé±ß»¥¤ÎËç¿ô + 2000 * _ÆóÀé±ß»¥¤ÎËç¿ô + 5000 * _¸ÞÀé±ß»¥¤ÎËç¿ô + 10000 * _°ìËü±ß»¥¤ÎËç¿ô. '»Í¤Ä­¤·¤ÆÅú¤¨¤¬50'(A,B,C,D) :- Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(A,B,S1), Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(S1,C,S2), Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(S2,D,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,1,2). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,2,3). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,3,4). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,4,5). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,5,6). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,6,7). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,7,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,8,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,9,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,10,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,11,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,12,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,13,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,14,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,15,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,16,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,17,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,18,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,19,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,20,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,21,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,22,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,23,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,24,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,25,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,26,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,27,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,28,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,29,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,30,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,31,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,32,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,33,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,34,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,35,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,36,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,37,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,38,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,39,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,40,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,41,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,42,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,43,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,44,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,45,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,46,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,47,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,48,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(1,49,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,1,3). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,2,4). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,3,5). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,4,6). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,5,7). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,6,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,7,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,8,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,9,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,10,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,11,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,12,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,13,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,14,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,15,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,16,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,17,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,18,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,19,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,20,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,21,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,22,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,23,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,24,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,25,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,26,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,27,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,28,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,29,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,30,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,31,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,32,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,33,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,34,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,35,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,36,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,37,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,38,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,39,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,40,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,41,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,42,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,43,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,44,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,45,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,46,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,47,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(2,48,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,1,4). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,2,5). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,3,6). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,4,7). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,5,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,6,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,7,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,8,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,9,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,10,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,11,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,12,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,13,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,14,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,15,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,16,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,17,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,18,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,19,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,20,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,21,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,22,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,23,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,24,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,25,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,26,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,27,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,28,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,29,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,30,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,31,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,32,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,33,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,34,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,35,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,36,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,37,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,38,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,39,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,40,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,41,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,42,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,43,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,44,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,45,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,46,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(3,47,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,1,5). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,2,6). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,3,7). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,4,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,5,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,6,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,7,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,8,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,9,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,10,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,11,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,12,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,13,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,14,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,15,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,16,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,17,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,18,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,19,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,20,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,21,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,22,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,23,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,24,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,25,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,26,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,27,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,28,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,29,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,30,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,31,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,32,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,33,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,34,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,35,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,36,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,37,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,38,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,39,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,40,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,41,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,42,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,43,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,44,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,45,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(4,46,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,1,6). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,2,7). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,3,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,4,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,5,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,6,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,7,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,8,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,9,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,10,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,11,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,12,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,13,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,14,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,15,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,16,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,17,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,18,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,19,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,20,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,21,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,22,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,23,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,24,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,25,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,26,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,27,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,28,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,29,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,30,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,31,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,32,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,33,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,34,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,35,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,36,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,37,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,38,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,39,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,40,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,41,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,42,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,43,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,44,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(5,45,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,1,7). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,2,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,3,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,4,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,5,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,6,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,7,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,8,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,9,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,10,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,11,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,12,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,13,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,14,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,15,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,16,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,17,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,18,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,19,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,20,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,21,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,22,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,23,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,24,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,25,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,26,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,27,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,28,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,29,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,30,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,31,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,32,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,33,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,34,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,35,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,36,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,37,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,38,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,39,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,40,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,41,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,42,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,43,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(6,44,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,1,8). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,2,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,3,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,4,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,5,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,6,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,7,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,8,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,9,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,10,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,11,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,12,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,13,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,14,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,15,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,16,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,17,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,18,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,19,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,20,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,21,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,22,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,23,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,24,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,25,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,26,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,27,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,28,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,29,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,30,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,31,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,32,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,33,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,34,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,35,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,36,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,37,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,38,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,39,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,40,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,41,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,42,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(7,43,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,1,9). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,2,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,3,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,4,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,5,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,6,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,7,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,8,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,9,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,10,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,11,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,12,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,13,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,14,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,15,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,16,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,17,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,18,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,19,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,20,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,21,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,22,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,23,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,24,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,25,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,26,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,27,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,28,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,29,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,30,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,31,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,32,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,33,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,34,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,35,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,36,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,37,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,38,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,39,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,40,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,41,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(8,42,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,1,10). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,2,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,3,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,4,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,5,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,6,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,7,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,8,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,9,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,10,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,11,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,12,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,13,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,14,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,15,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,16,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,17,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,18,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,19,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,20,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,21,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,22,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,23,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,24,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,25,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,26,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,27,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,28,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,29,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,30,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,31,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,32,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,33,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,34,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,35,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,36,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,37,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,38,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,39,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,40,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(9,41,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,1,11). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,2,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,3,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,4,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,5,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,6,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,7,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,8,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,9,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,10,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,11,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,12,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,13,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,14,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,15,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,16,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,17,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,18,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,19,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,20,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,21,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,22,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,23,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,24,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,25,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,26,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,27,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,28,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,29,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,30,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,31,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,32,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,33,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,34,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,35,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,36,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,37,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,38,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,39,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(10,40,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,1,12). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,2,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,3,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,4,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,5,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,6,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,7,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,8,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,9,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,10,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,11,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,12,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,13,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,14,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,15,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,16,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,17,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,18,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,19,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,20,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,21,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,22,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,23,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,24,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,25,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,26,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,27,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,28,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,29,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,30,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,31,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,32,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,33,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,34,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,35,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,36,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,37,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,38,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(11,39,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,1,13). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,2,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,3,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,4,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,5,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,6,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,7,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,8,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,9,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,10,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,11,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,12,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,13,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,14,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,15,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,16,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,17,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,18,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,19,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,20,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,21,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,22,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,23,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,24,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,25,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,26,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,27,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,28,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,29,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,30,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,31,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,32,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,33,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,34,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,35,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,36,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,37,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(12,38,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,1,14). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,2,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,3,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,4,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,5,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,6,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,7,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,8,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,9,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,10,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,11,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,12,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,13,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,14,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,15,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,16,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,17,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,18,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,19,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,20,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,21,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,22,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,23,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,24,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,25,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,26,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,27,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,28,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,29,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,30,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,31,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,32,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,33,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,34,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,35,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,36,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(13,37,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,1,15). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,2,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,3,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,4,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,5,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,6,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,7,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,8,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,9,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,10,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,11,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,12,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,13,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,14,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,15,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,16,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,17,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,18,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,19,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,20,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,21,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,22,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,23,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,24,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,25,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,26,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,27,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,28,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,29,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,30,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,31,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,32,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,33,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,34,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,35,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(14,36,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,1,16). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,2,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,3,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,4,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,5,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,6,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,7,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,8,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,9,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,10,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,11,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,12,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,13,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,14,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,15,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,16,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,17,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,18,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,19,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,20,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,21,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,22,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,23,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,24,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,25,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,26,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,27,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,28,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,29,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,30,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,31,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,32,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,33,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,34,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(15,35,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,1,17). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,2,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,3,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,4,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,5,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,6,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,7,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,8,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,9,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,10,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,11,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,12,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,13,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,14,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,15,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,16,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,17,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,18,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,19,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,20,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,21,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,22,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,23,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,24,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,25,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,26,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,27,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,28,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,29,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,30,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,31,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,32,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,33,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(16,34,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,1,18). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,2,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,3,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,4,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,5,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,6,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,7,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,8,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,9,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,10,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,11,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,12,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,13,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,14,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,15,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,16,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,17,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,18,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,19,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,20,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,21,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,22,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,23,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,24,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,25,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,26,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,27,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,28,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,29,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,30,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,31,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,32,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(17,33,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,1,19). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,2,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,3,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,4,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,5,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,6,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,7,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,8,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,9,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,10,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,11,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,12,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,13,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,14,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,15,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,16,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,17,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,18,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,19,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,20,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,21,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,22,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,23,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,24,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,25,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,26,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,27,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,28,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,29,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,30,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,31,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(18,32,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,1,20). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,2,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,3,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,4,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,5,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,6,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,7,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,8,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,9,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,10,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,11,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,12,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,13,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,14,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,15,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,16,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,17,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,18,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,19,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,20,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,21,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,22,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,23,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,24,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,25,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,26,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,27,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,28,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,29,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,30,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(19,31,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,1,21). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,2,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,3,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,4,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,5,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,6,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,7,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,8,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,9,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,10,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,11,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,12,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,13,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,14,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,15,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,16,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,17,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,18,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,19,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,20,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,21,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,22,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,23,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,24,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,25,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,26,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,27,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,28,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,29,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(20,30,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,1,22). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,2,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,3,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,4,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,5,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,6,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,7,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,8,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,9,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,10,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,11,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,12,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,13,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,14,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,15,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,16,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,17,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,18,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,19,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,20,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,21,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,22,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,23,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,24,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,25,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,26,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,27,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,28,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(21,29,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,1,23). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,2,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,3,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,4,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,5,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,6,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,7,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,8,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,9,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,10,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,11,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,12,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,13,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,14,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,15,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,16,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,17,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,18,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,19,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,20,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,21,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,22,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,23,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,24,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,25,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,26,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,27,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(22,28,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,1,24). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,2,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,3,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,4,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,5,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,6,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,7,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,8,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,9,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,10,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,11,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,12,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,13,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,14,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,15,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,16,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,17,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,18,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,19,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,20,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,21,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,22,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,23,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,24,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,25,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,26,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(23,27,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,1,25). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,2,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,3,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,4,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,5,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,6,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,7,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,8,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,9,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,10,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,11,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,12,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,13,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,14,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,15,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,16,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,17,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,18,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,19,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,20,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,21,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,22,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,23,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,24,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,25,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(24,26,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,1,26). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,2,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,3,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,4,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,5,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,6,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,7,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,8,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,9,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,10,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,11,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,12,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,13,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,14,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,15,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,16,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,17,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,18,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,19,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,20,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,21,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,22,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,23,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,24,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(25,25,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,1,27). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,2,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,3,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,4,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,5,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,6,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,7,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,8,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,9,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,10,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,11,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,12,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,13,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,14,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,15,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,16,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,17,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,18,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,19,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,20,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,21,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,22,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,23,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(26,24,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,1,28). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,2,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,3,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,4,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,5,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,6,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,7,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,8,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,9,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,10,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,11,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,12,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,13,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,14,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,15,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,16,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,17,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,18,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,19,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,20,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,21,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,22,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(27,23,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,1,29). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,2,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,3,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,4,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,5,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,6,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,7,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,8,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,9,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,10,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,11,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,12,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,13,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,14,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,15,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,16,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,17,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,18,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,19,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,20,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,21,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(28,22,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,1,30). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,2,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,3,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,4,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,5,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,6,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,7,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,8,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,9,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,10,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,11,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,12,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,13,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,14,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,15,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,16,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,17,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,18,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,19,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,20,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(29,21,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,1,31). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,2,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,3,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,4,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,5,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,6,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,7,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,8,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,9,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,10,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,11,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,12,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,13,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,14,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,15,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,16,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,17,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,18,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,19,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(30,20,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,1,32). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,2,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,3,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,4,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,5,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,6,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,7,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,8,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,9,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,10,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,11,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,12,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,13,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,14,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,15,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,16,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,17,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,18,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(31,19,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,1,33). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,2,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,3,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,4,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,5,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,6,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,7,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,8,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,9,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,10,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,11,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,12,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,13,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,14,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,15,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,16,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,17,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(32,18,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,1,34). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,2,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,3,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,4,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,5,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,6,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,7,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,8,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,9,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,10,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,11,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,12,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,13,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,14,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,15,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,16,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(33,17,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,1,35). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,2,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,3,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,4,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,5,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,6,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,7,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,8,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,9,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,10,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,11,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,12,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,13,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,14,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,15,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(34,16,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,1,36). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,2,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,3,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,4,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,5,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,6,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,7,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,8,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,9,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,10,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,11,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,12,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,13,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,14,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(35,15,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,1,37). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,2,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,3,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,4,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,5,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,6,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,7,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,8,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,9,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,10,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,11,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,12,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,13,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(36,14,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,1,38). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,2,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,3,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,4,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,5,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,6,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,7,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,8,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,9,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,10,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,11,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,12,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(37,13,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,1,39). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,2,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,3,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,4,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,5,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,6,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,7,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,8,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,9,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,10,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,11,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(38,12,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,1,40). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,2,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,3,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,4,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,5,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,6,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,7,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,8,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,9,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,10,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(39,11,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,1,41). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,2,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,3,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,4,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,5,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,6,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,7,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,8,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,9,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(40,10,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,1,42). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,2,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,3,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,4,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,5,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,6,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,7,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,8,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(41,9,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,1,43). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,2,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,3,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,4,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,5,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,6,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,7,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(42,8,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,1,44). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,2,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,3,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,4,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,5,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,6,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(43,7,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(44,1,45). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(44,2,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(44,3,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(44,4,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(44,5,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(44,6,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(45,1,46). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(45,2,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(45,3,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(45,4,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(45,5,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(46,1,47). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(46,2,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(46,3,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(46,4,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(47,1,48). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(47,2,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(47,3,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(48,1,49). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(48,2,50). Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(49,1,50). 'Åú¤¨¤¬50°Ê²¼¤Î­¤·»»/3¤òÄêµÁ¤¹¤ë' :- forall(( between(1,M,50),between(1,N,50),S is M + N,S =< 50), assertz(Åú¤¨¤¬50°Ê²¼¤Î­¤·»»(M,N,S))). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1381909900/328 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # a) 4·å¤ÎÀ¾Îñ¤òÆþÎϤȤ·¤Æ¼õ¤±¼è¤ê # b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ¼¡¤Î±é»»¤ò¹Ô¤¤ # c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü # (Îã) # 20 + 13 + 11 + 25 = 69 # d) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë # 20131231 = 76 # ... # 20131125 = 69 # ... # 20130101 = 35 # ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ # 'a) 4·å¤ÎÀ¾Îñ¤òÆþÎϤȤ·¤Æ¼õ¤±¼è¤ê b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ¼¡¤Î±é»»¤ò¹Ô¤¤ c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü (Îã) 20 + 13 + 11 + 25 = 69 d) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ '(_»Í·å¤ÎÀ¾Îñ) :- findall([_¾®·×,_ǯ·îÆüÀ°¿ô],( 'b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ'(_»Í·å¤ÎÀ¾Îñ,_ǯ·îÆüÀ°¿ô), '¼¡¤Î±é»»¤ò¹Ô¤¤ c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü'(_ǯ·îÆüÀ°¿ô,_¾®·×)), _¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó), 'd) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë'(_»Í·å¤ÎÀ¾Îñ,_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó). 'b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ'(_»Í·å¤ÎÀ¾Îñ,_ǯ·îÆüÀ°¿ô) :- between(1,12,_·îÀ°¿ô), ·îËöÆü(_»Í·å¤ÎÀ¾Îñ,_·îÀ°¿ô,_·îËöÆüÀ°¿ô), between(1,_·îËöÆüÀ°¿ô,_ÆüÀ°¿ô), _ǯ·îÆüÀ°¿ô is _»Í·å¤ÎÀ¾Îñ * 10000 + _·îÀ°¿ô * 10 + _ÆüÀ°¿ô. ·îËöÆü(_ǯÀ°¿ô,_·îÀ°¿ô,_·îËöÆüÀ°¿ô) :- ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô), nth1(_·îÀ°¿ô,[31,29,31,30,31,30,31,31,30,31,30,31],_·îËöÆüÀ°¿ô). ·îËöÆü(_ǯÀ°¿ô,_·îÀ°¿ô,_·îËöÆüÀ°¿ô) :- \+(¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô)), nth1(_·îÀ°¿ô,[31,28,31,30,31,30,31,31,30,31,30,31],_·îËöÆüÀ°¿ô). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!, fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. '¼¡¤Î±é»»¤ò¹Ô¤¤ c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü'(_ǯ·îÆüÀ°¿ô,_¾®·×) :- ǯ¤Î¾å°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î¾å°Ì2·å), ǯ¤Î²¼°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î²¼°Ì2·å), ·î(_ǯ·îÆüÀ°¿ô,_·îÀ°¿ô), Æü(_ǯ·îÆüÀ°¿ô,_ÆüÀ°¿ô), _¾®·× is _ǯ¤Î¾å°Ì2·å + _ǯ¤Î²¼°Ì2·å + _·îÀ°¿ô + _ÆüÀ°¿ô. ǯ¤Î¾å°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î¾å°Ì2·å) :- _ǯ¤Î¾å°Ì2·å is _ǯ·îÆüÀ°¿ô // 1000000. ǯ¤Î²¼°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î²¼°Ì2·å) :- _¾ê; is _ǯ·îÆüÀ°¿ô mod 10000, _ǯ¤Î²¼°Ì2·å is _¾ê; mod 100. ·î(_ǯ·îÆüÀ°¿ô,_·îÀ°¿ô) :- _¾ê; is _ǯ·îÆüÀ°¿ô mod 10000, _·îÀ°¿ô is _¾ê;_1 // 100. Æü(_ǯ·îÆüÀ°¿ô,_ÆüÀ°¿ô) :- _ÆüÀ°¿ô is _ǯ·îÆüÀ°¿ô mod 100. 'd) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë'(_ǯÀ°¿ô,_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó) :- ǯ¤ÎÁȤߤιç·×(_ǯÀ°¿ô,_ǯ¤ÎÁȤߤιç·×), forall((for(43,N,2),_¾®·× is _ǯ¤ÎÁȤߤιç·× + N,member([_¾®·×,_ǯ·îÆüÀ°¿ô],_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó)),writef('%t = %t\n',[_ǯ·îÆüÀ°¿ô,_¾®·×])). ǯ¤ÎÁȤߤιç·×(_ǯÀ°¿ô,_ǯ¤ÎÁȤߤιç·×) :- _ǯ¤ÎÁȤߤιç·× is _ǯÀ°¿ô // 100 + _ǯÀ°¿ô mod 100. % for/3 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1381909900/328 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # a) 4·å¤ÎÀ¾Îñ¤òÆþÎϤȤ·¤Æ¼õ¤±¼è¤ê # b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ¼¡¤Î±é»»¤ò¹Ô¤¤ # c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü # (Îã) # 20 + 13 + 11 + 25 = 69 # d) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë # 20131231 = 76 # ... # 20131125 = 69 # ... # 20130101 = 35 # ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ # 'a) 4·å¤ÎÀ¾Îñ¤òÆþÎϤȤ·¤Æ¼õ¤±¼è¤ê b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ¼¡¤Î±é»»¤ò¹Ô¤¤ c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü (Îã) 20 + 13 + 11 + 25 = 69 d) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ '(_»Í·å¤ÎÀ¾Îñ) :- findall([_¾®·×,_ǯ·îÆüÀ°¿ô],( 'b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ'(_»Í·å¤ÎÀ¾Îñ,_ǯ·îÆüÀ°¿ô), '¼¡¤Î±é»»¤ò¹Ô¤¤ c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü'(_ǯ·îÆüÀ°¿ô,_¾®·×)), _¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó), 'd) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë'(_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó). 'b) ¤½¤Îǯ¤Î¤¹¤Ù¤Æ¤ÎÆü¤Ë¤Ä¤¤¤Æ'(_»Í·å¤ÎÀ¾Îñ,_ǯ·îÆüÀ°¿ô) :- between(1,12,_·îÀ°¿ô), ·îËöÆü(_»Í·å¤ÎÀ¾Îñ,_·îÀ°¿ô,_·îËöÆüÀ°¿ô), between(1,_·îËöÆüÀ°¿ô,_ÆüÀ°¿ô), _ǯ·îÆüÀ°¿ô is _»Í·å¤ÎÀ¾Îñ * 10000 + _·îÀ°¿ô * 10 + _ÆüÀ°¿ô. ·îËöÆü(_ǯÀ°¿ô,_·îÀ°¿ô,_·îËöÆüÀ°¿ô) :- ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô), nth1(_·îÀ°¿ô,[31,29,31,30,31,30,31,31,30,31,30,31],_·îËöÆüÀ°¿ô). ·îËöÆü(_ǯÀ°¿ô,_·îÀ°¿ô,_·îËöÆüÀ°¿ô) :- \+(¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô)), nth1(_·îÀ°¿ô,[31,28,31,30,31,30,31,31,30,31,30,31],_·îËöÆüÀ°¿ô). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!, fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4. '¼¡¤Î±é»»¤ò¹Ô¤¤ c) ¾®·× = ǯ¤Î¾å°Ì2·å + ǯ¤Î²¼°Ì2·å + ·î + Æü'(_ǯ·îÆüÀ°¿ô,_¾®·×) :- ǯ¤Î¾å°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î¾å°Ì2·å), ǯ¤Î²¼°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î²¼°Ì2·å), ·î(_ǯ·îÆüÀ°¿ô,_·îÀ°¿ô), Æü(_ǯ·îÆüÀ°¿ô,_ÆüÀ°¿ô), _¾®·× is _ǯ¤Î¾å°Ì2·å + _ǯ¤Î²¼°Ì2·å + _·îÀ°¿ô + _ÆüÀ°¿ô. ǯ¤Î¾å°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î¾å°Ì2·å) :- _ǯ¤Î¾å°Ì2·å is _ǯ·îÆüÀ°¿ô // 1000000. ǯ¤Î²¼°Ì2·å(_ǯ·îÆüÀ°¿ô,_ǯ¤Î²¼°Ì2·å) :- _¾ê; is _ǯ·îÆüÀ°¿ô mod 10000, _ǯ¤Î²¼°Ì2·å is _¾ê; mod 100. ·î(_ǯ·îÆüÀ°¿ô,_·îÀ°¿ô) :- _¾ê; is _ǯ·îÆüÀ°¿ô mod 10000, _·îÀ°¿ô is _¾ê;_1 // 100. Æü(_ǯ·îÆüÀ°¿ô,_ÆüÀ°¿ô) :- _ÆüÀ°¿ô is _ǯ·îÆüÀ°¿ô mod 100. 'd) ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤»¤ë'(_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó) :- ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë(_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó,_Â礭¤¤¤â¤Î¤«¤é½ç¤ËÀ°Îó¤·¤¿_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó), forall(member([_¾®·×,_ǯ·îÆüÀ°¿ô],_Â礭¤¤¤â¤Î¤«¤é½ç¤ËÀ°Îó¤·¤¿_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó),writef('%t = %t\n',[_ǯ·îÆüÀ°¿ô,_¾®·×])). ³ÆÆü¤Î¾®·×¤òÂ礭¤¤¤â¤Î¤«¤é½ç¤Ë(_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó,_Â礭¤¤¤â¤Î¤«¤é½ç¤ËÀ°Îó¤·¤¿_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó) :- sort(_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤¤â¤Î¤«¤é½ç¤ËÀ°Îó¤·¤¿_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó), reverse(_¾®¤µ¤¤¤â¤Î¤«¤é½ç¤ËÀ°Îó¤·¤¿_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó,_Â礭¤¤¤â¤Î¤«¤é½ç¤ËÀ°Îó¤·¤¿_¾®·×_ǯ·îÆüÀ°¿ô¤Ê¤é¤Ó), % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357191974/68 # # ¤ªÂꡧʸ»úÎó¤ò¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤ë¡£ # ¤¿¤À¤·¡¢¤É¤Îʸ»ú¤â¸µ¤ÈƱ¤¸°ÌÃ֤ǤϤʤ¤¤³¤È¡£ 'ʸ»úÎó¤ò¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤ë¡£ ¤¿¤À¤·¡¢¤É¤Îʸ»ú¤â¸µ¤ÈƱ¤¸°ÌÃ֤ǤϤʤ¤¤³¤È¡£'(_ʸ»úÎó,_¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤¿Ê¸»úÎó) :- ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó(_ʸ»úÎó,_ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó), ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó¤«¤é¥é¥ó¥À¥à¤ËʤÓÂØ¤¨¤¿Ê¸»úÎó¤òÆÀ¤ë(_ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó,_ʸ»úÎó,_¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤¿Ê¸»úÎó). ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó(_ʸ»úÎó,_ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó) :- atom_length(_ʸ»úÎó,_ʸ»úÎó¤ÎŤµ), length(_°ÌÃÖ·è¤á¤Ê¤é¤Ó,_ʸ»úÎó¤ÎŤµ), findall(N,between(1,_ʸ»úÎó¤ÎŤµ,N),_À°¿ô½ç¤Ê¤é¤Ó), °ÌÃÖ¤òÃÖ´¹¤¹¤ë(_À°¿ô½ç¤Ê¤é¤Ó,_ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó). °ÌÃÖ¤òÃÖ´¹¤¹¤ë([],_°ÌÃÖ·è¤á¤Ê¤é¤Ó) :- !. °ÌÃÖ¤òÃÖ´¹¤¹¤ë([_°ÌÃÖ1,_°ÌÃÖ2,_°ÌÃÖ3],_°ÌÃÖ·è¤á¤Ê¤é¤Ó) :- »°¤ÄÇøò´¹(_°ÌÃÖ1,_°ÌÃÖ2,_°ÌÃÖ3,_°ÌÃÖ·è¤á¤Ê¤é¤Ó). °ÌÃÖ·è¤á¤Ê¤é¤Ó(L,_°ÌÃÖ·è¤á¤Ê¤é¤Ó) :- °ÌÃ֤θò´¹(L,R,_°ÌÃÖ·è¤á¤Ê¤é¤Ó), °ÌÃÖ¤òÃÖ´¹¤¹¤ë(R,_°ÌÃÖ·è¤á¤Ê¤é¤Ó). »°¤ÄÇøò´¹(_°ÌÃÖ1,_°ÌÃÖ2,_°ÌÃÖ3,_°ÌÃÖ·è¤á¤Ê¤é¤Ó) :- nth1(_°ÌÃÖ1,_°ÌÃÖ·è¤á¤Ê¤é¤Ó,_°ÌÃÖ2), nth1(_°ÌÃÖ2,_°ÌÃÖ·è¤á¤Ê¤é¤Ó,_°ÌÃÖ3), nth1(_°ÌÃÖ3,_°ÌÃÖ·è¤á¤Ê¤é¤Ó,_°ÌÃÖ1),!. °ÌÃ֤θò´¹(L,L2,_°ÌÃÖ·è¤á¤Ê¤é¤Ó) :- °ÌÃÖÁªÂò(L,N1,L1), °ÌÃÖÁªÂò(N2,L1,L2), nth1(N1,_°ÌÃÖ·è¤á¤Ê¤é¤Ó,N2), nth1(N2,_°ÌÃÖ·è¤á¤Ê¤é¤Ó,N1),!. °ÌÃÖÁªÂò(L,_°ÌÃÖ,L2) :- length(L,Len), _Íð¿ôÃÍ is random(Len), length(L0,Len), append(L0,[_°ÌÃÖ|R],L), append(L0,R,L2),!. ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó¤«¤é¥é¥ó¥À¥à¤ËʤÓÂØ¤¨¤¿Ê¸»úÎó¤òÆÀ¤ë(_ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó,_ʸ»úÎó,_¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤¿Ê¸»úÎó) :- findall(_ʸ»ú,( member(_°ÌÃÖ,_ʸ»úÎó¤ÎÃÖ´¹°ÌÃ֤ʤé¤Ó), _°ÌÃÖ_1 is _°ÌÃÖ - 1, sub_atom(_ʸ»úÎó,_°ÌÃÖ_1,1,_,_ʸ»ú)), _¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤¿Ê¸»ú¤Ê¤é¤Ó), atomic_list_concat(_¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤¿Ê¸»ú¤Ê¤é¤Ó,_¥é¥ó¥À¥à¤ËʤÙÂØ¤¨¤¿Ê¸»úÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¤ªÂê¡§'+'¤È'-'¤Îʸ»ú¤ò»È¤ï¤Ê¤¤¥³¡¼¥É¤Ç"Hello, world!"¤òn²ó¡¢É½¼¨¤¹¤ë¡£ # '''+''¤È''-''¤Îʸ»ú¤ò»È¤ï¤Ê¤¤¥³¡¼¥É¤Ç"Hello, world!"¤òn²ó¡¢É½¼¨¤¹¤ë¡£'(_n) :- forall(between(1,_n,_),write('Hello, Wold!\n')). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ²óʸ¿ô # ¥³¥ÞÂç¿ô³Ø²Ê¤ÎÌäÂê¤À¤½¤¦¤Ç¤¹¤è¡£ # °úÍÑ # ¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ # ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹¤È¤­ # £±ÈÖ²óʸ¿ô¤Ë¤Ê¤ê¤Ë¤¯¤¤£²·å¤Î¿ô»ú¤òÅú¤¨¤Ê¤µ¤¤¡£ # # ¡ö²óʸ¿ô¡§µÕ¤«¤éÆÉ¤ó¤Ç¤âƱ¤¸¿ô¤Ë¤Ê¤ë¿ô # Î㤨¤Ð¡Ä£¹£¶¤Ê¤é # ¡Ú£±²óÌܡۣ¹£¶¡Ü£¶£¹¡á£±£¶£µ # ¡Ú£²²óÌܡۣ±£¶£µ¡Ü£µ£¶£±¡á£·£²£¶ # ¡Ú£³²óÌܡۣ·£²£¶¡Ü£¶£²£·¡á£±£³£µ£³ # ¡Ú£´²óÌܡۣ±£³£µ£³¡Ü£³£µ£³£±¡á£´£¸£¸£´ # ¤È¤Ê¤ê¤Þ¤¹¡£ '¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹¤È¤­ £±ÈÖ²óʸ¿ô¤Ë¤Ê¤ê¤Ë¤¯¤¤£²·å¤Î¿ô»ú¤òÅú¤¨¤Ê¤µ¤¤¡£'(_£²·å¤Î¿ô»ú,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇÂç²ó¿ô,_²óʸ¿ô) :- '¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹¤È¤­'(_¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤È²óʸ¿ô¤Î¤Ê¤é¤Ó), '£±ÈÖ²óʸ¿ô¤Ë¤Ê¤ê¤Ë¤¯¤¤'(_¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤È²óʸ¿ô¤Î¤Ê¤é¤Ó,_£²·å¤Î¿ô»ú,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇÂç²ó¿ô,_²óʸ¿ô). '¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹¤È¤­'(_¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤È²óʸ¿ô¤Î¤Ê¤é¤Ó) :- findall([_¤¢¤ë¿ô»ú,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,_²óʸ¿ô],( £²·å¤Î¿ô»ú(_¤¢¤ë¿ô»ú), '¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹'(_¤¢¤ë¿ô»ú,[],_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,_²óʸ¿ô)), _¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤È²óʸ¿ô¤Î¤Ê¤é¤Ó). ¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹(_²óʸ¿ô,Ln,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,_²óʸ¿ô) :- ²óʸ¿ô(_²óʸ¿ô), length(Ln,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô),!. ¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹(_¿ô»ú_1,L,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,_²óʸ¿ô) :- ¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ(_¿ô»ú_1,_¿ô»ú_3), ¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤³¤ÎÁàºî¤ò·«¤êÊÖ¤¹(_¿ô»ú_3,[_|L],_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,_²óʸ¿ô). ²óʸ¿ô(_¿ô»ú) :- number_chars(_¿ô»ú,L), reverse(L,L). ¤¢¤ë¿ô»ú¤È¤½¤Î¿ô»ú¤òµÕ¤µ¤Ëʤ٤¿¿ô»ú¤ò­¤·¤Æ(_¿ô»ú_1,_¿ô»ú_3) :- number_chars(_¿ô»ú_1,L2), reverse(L1,L2), number_chars(_¿ô»ú_2,L2), ¿ô»ú_3 is _¿ô»ú_1 + _¿ô»ú_2. '£±ÈÖ²óʸ¿ô¤Ë¤Ê¤ê¤Ë¤¯¤¤'(_¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤Î¤Ê¤é¤Ó,_¤¢¤ë¿ô,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇÂç²ó¿ô,_²óʸ¿ô) :- findmax(_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,( member([_,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô,_],_¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤Î¤Ê¤é¤Ó)), _²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇÂç²ó¿ô), member([_¤¢¤ë¿ô»ú,_²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇÂç²ó¿ô,_²óʸ¿ô],_¤¢¤ë¿ô»ú¤È²óʸ¿ô¤Ë¤Ê¤ë¤Þ¤Ç¤Î²ó¿ô¤Î¤Ê¤é¤Ó). '£²·å¤Î¿ô»ú'(_£²·å¤Î¿ô»ú) :- between(11,99,_£²·å¤Î¿ô»ú). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1381909900/240 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ http://ime.nu/ideone.com/2viXY6¡¡for¤«while¤ò¤Ä¤«¤Ã¤Æ # 1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢¶ö¿ô¤Î¹ç·×¤òµá¤á¤Ê¤µ¤¤¡£ # 1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤Ç¡¢´ñ¿ô¤À¤±¤Î¹ç·×¡¢¶ö¿ô¤À¤±¤Î¹ç·×¡¢Áí¹ç·×¤ò¤â¤È¤á¤è¡¨ # y=5x+8¤ÎÃͤò£ø¤¬£°¡Á£±£°¤Þ¤Ç¡¢£±¤º¤ÄÁý¤ä¤·¤¿»þ¤Î£ù¤ÎÃÍ # 10^3+30^3+50^3+70^3+90^3¤Î·×»» # '1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢¶ö¿ô¤Î¹ç·×¤òµá¤á¤Ê¤µ¤¤¡£'(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î¹ç·×) :- findsum(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î,( '1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢¶ö¿ô¤Î'(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î)), _1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î¹ç·×). '1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢¶ö¿ô¤Î'(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î) :- '1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢'(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î), ¶ö¿ô(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î). '1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢'(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î) :- between(1,10,_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î). ¶ö¿ô(_1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î) :- 0 is _1¤«¤é10¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á_¶ö¿ô¤Î mod 2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤Ç¡¢´ñ¿ô¤À¤±¤Î¹ç·×¡¢¶ö¿ô¤À¤±¤Î¹ç·×¡¢Áí¹ç·×¤ò¤â¤È¤á¤è'(_´ñ¿ô¤À¤±¤Î¹ç·×,_¶ö¿ô¤À¤±¤Î¹ç·×,_Áí¹ç·×) :- findsum([_´ñ¿ô,_¶ö¿ô,_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô],( '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤Ç¡¢'(_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô), '´ñ¿ô¡¢¶ö¿ô'(_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô,_´ñ¿ô,_¶ö¿ô)), [_´ñ¿ô¤À¤±¤Î¹ç·×,_¶ö¿ô¤À¤±¤Î¹ç·×,_Áí¹ç·×]). '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤Ç¡¢'(_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô) :- between(1,100,_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô). '´ñ¿ô¡¢¶ö¿ô'(_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô,_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô,0) :- 1 is _1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô mod 2,!. '´ñ¿ô¡¢¶ö¿ô'(_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô,0,_1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô) :- 0 is _1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô mod 2,!. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'y=5x+8¤ÎÃͤò£ø¤¬£°¡Á£±£°¤Þ¤Ç¡¢£±¤º¤ÄÁý¤ä¤·¤¿»þ¤Î£ù¤ÎÃÍ'(_£ù¤ÎÃÍ) :- between(0,10,_x), _£ù¤ÎÃÍ is 5 * _x + 8, _x = 10. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '10^3+30^3+50^3+70^3+90^3¤Î·×»»'(_·×»»·ë²Ì) :- findsum(X,( member([M,N],[[10,3],[50,3],[70,3],[90,3]]), '^'(M,N,X)), _·×»»·ë²Ì). '^'(_,0,1) :- !. '^'(M,N,X) :- N_1 is N - 1, '^'(M,N_1,Y), X is M * Y. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1381909900/194 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ­¡1¡Á100¤ÎÀ°¿ô¤Î¤¦¤Á¡Ö6¤ÎÇÜ¿ô¡×¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡¢¤¿¤À¤·¡¢forʸ¤Èifʸ¤òÍѤ¤¤ÆºîÀ®¤¹¤ë¤³¤È # ­¢1¼¡¸µÇÛÎó¤òÍѤ¤¤Æ5¿Íʬ¤Î¿ô³Ø¤ÎÆÀÅÀ¤ò100ÅÀËþÅÀ¤ÇÆþÎϤ·¡¢¡Ö¿ô³Ø¤ÎÆÀÅÀ¤ÎºÇ¾®ÃͤȺÇÂçÃ͡פò²èÌÌɽ¼¨¡¢¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£¤¿¤À¤·¡¢½ñ¤­½Ð¤·ÍÑ¥Õ¥¡¥¤¥ë̾¤Ï¡Ösugaku.txt¡×¤Ë¤·¤Ê¤µ¤¤¡£ # # '1¡Á100¤ÎÀ°¿ô¤Î¤¦¤Á¡Ö6¤ÎÇÜ¿ô¡×¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡¢¤¿¤À¤·¡¢forʸ¤Èifʸ¤òÍѤ¤¤ÆºîÀ®¤¹¤ë¤³¤È' :- '1¡Á100¤ÎÀ°¿ô¤Î¤¦¤Á¡Ö6¤ÎÇÜ¿ô¡×¤Î¸Ä¿ô¤ò'(_6¤ÎÇÜ¿ô¤Î¸Ä¿ô), ɽ¼¨¤¹¤ë(_6¤ÎÇÜ¿ô¤Î¸Ä¿ô). '1¡Á100¤ÎÀ°¿ô¤Î¤¦¤Á¡Ö6¤ÎÇÜ¿ô¡×¤Î¸Ä¿ô¤ò'(_6¤ÎÇÜ¿ô¤Î¸Ä¿ô) :- ¸Ä¿ô(('1¡Á100¤ÎÀ°¿ô¤Î¤¦¤Á'(N),'¡Ö6¤ÎÇÜ¿ô¡×'(N)),_6¤ÎÇÜ¿ô¤Î¸Ä¿ô). '1¡Á100¤ÎÀ°¿ô¤Î¤¦¤Á'(N) :- between(1,100,N). '¡Ö6¤ÎÇÜ¿ô¡×'(N) :- 0 is N mod 6. ɽ¼¨¤¹¤ë(_6¤ÎÇÜ¿ô¤Î¸Ä¿ô) :- writef('6¤ÎÇÜ¿ô¤Î¸Ä¿ô¤Ï %t ¤Ç¤¹\n',[_6¤ÎÇÜ¿ô¤Î¸Ä¿ô]). ¸Ä¿ô(_ÉûÌÜɸ,_¿¿¤Ë¤Ê¤ëÅÙ¿ô) :- findsum(1,_ÉûÌÜɸ,_¿¿¤Ë¤Ê¤ëÅÙ¿ô). findsum(_ÁªÂò¹à,_ÉûÌÜɸ,_¹ç·×ÃÍ) :- findall(_ÁªÂò¹à,_ÉûÌÜɸ,_Ãͤʤé¤Ó), sum_list(_Ãͤʤé¤Ó,_¹ç·×ÃÍ),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¡Ú¡¡²ÝÂê¡¡¡Û # ÆþÎÏ: int n # ½ÐÎÏ: List list # n Îó¤ÎŤµ¤ò»ý¤Ä¤¹¤Ù¤Æ¤Î½çÎó¤ò¼­½ñ¼°¤Ç½ÐÎϤ¹¤ë¥á¥½¥Ã¥É¤òºîÀ®¤»¤è¡£ # n=3¤Î»þ # ·ë²Ì¤Ï{123,132,213,231,312,321} # # ¡Ú¡¡·ÁÂÖ¡¡¡Û1. Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(main()¤Ç³«»Ï) # ¡Ú¡¡GUI¡¡ ¡Û¤Ê¤· # ¡Ú¡¡´ü¸Â¡¡¡Û11/07/2013 # ¡Ú¡¡Ver¡¡ ¡Û"1.7.0_11" # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ 'ÆþÎÏ: int n ½ÐÎÏ: List list n Îó¤ÎŤµ¤ò»ý¤Ä¤¹¤Ù¤Æ¤Î½çÎó¤ò¼­½ñ¼°¤Ç½ÐÎϤ¹¤ë¥á¥½¥Ã¥É¤òºîÀ®¤»¤è¡£ n=3¤Î»þ ·ë²Ì¤Ï{123,132,213,231,312,321}'(_n,_½çÎó¤Ê¤é¤Ó) :- findall(N,between(1,_n,N),_¿ô¤Ê¤é¤Ó), findall(_¿ôÃÍ,( ½çÎó(_¿ô¤Ê¤é¤Ó,_n,_½çÎó), °ì·å¤Î¿ôÃͤʤé¤Ó¤«¤éÀ°¿ô(_½çÎó,_¿ôÃÍ)), _½çÎó¤Ê¤é¤Ó). ½çÎó(_,0,[]). ½çÎó(L,N,[A|R]) :- select(A,L,L2), N_1 is N - 1, ½çÎó(L2,N_1,R). °ì·å¤Î¿ôÃͤʤé¤Ó¤«¤éÀ°¿ô(_°ì·å¤Î¿ôÃͤʤé¤Ó,_¿ôÃÍ) :- °ì·å¤Î¿ôÃͤʤé¤Ó¤«¤éÀ°¿ô(_°ì·å¤Î¿ôÃͤʤé¤Ó,M,_¿ôÃÍ). °ì·å¤Î¿ôÃͤʤé¤Ó¤«¤éÀ°¿ô([N],1,N). °ì·å¤Î¿ôÃͤʤé¤Ó¤«¤éÀ°¿ô([N|R],M,_À°¿ô) :- °ì·å¤Î¿ôÃͤʤé¤Ó¤«¤éÀ°¿ô(R,M_1,_À°¿ô_1), M is M_1 + 1, _À°¿ô is 10 ^ M_1 * N + _À°¿ô_1. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¡Ú¡¡²ÝÂê¡¡¡Û # ÆþÎÏ: int n # ½ÐÎÏ: List list # n Îó¤ÎŤµ¤ò»ý¤Ä¤¹¤Ù¤Æ¤Î½çÎó¤ò¼­½ñ¼°¤Ç½ÐÎϤ¹¤ë¥á¥½¥Ã¥É¤òºîÀ®¤»¤è¡£ # n=3¤Î»þ # ·ë²Ì¤Ï{123,132,213,231,312,321} # # ¡Ú¡¡·ÁÂÖ¡¡¡Û1. Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(main()¤Ç³«»Ï) # ¡Ú¡¡GUI¡¡ ¡Û¤Ê¤· # ¡Ú¡¡´ü¸Â¡¡¡Û11/07/2013 # ¡Ú¡¡Ver¡¡ ¡Û"1.7.0_11" # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ 'ÆþÎÏ: int n ½ÐÎÏ: List list n Îó¤ÎŤµ¤ò»ý¤Ä¤¹¤Ù¤Æ¤Î½çÎó¤ò¼­½ñ¼°¤Ç½ÐÎϤ¹¤ë¥á¥½¥Ã¥É¤òºîÀ®¤»¤è¡£ n=3¤Î»þ ·ë²Ì¤Ï{123,132,213,231,312,321}'(_n,_½çÎó¤Ê¤é¤Ó) :- ¿ô»úÎó¤òÀ¸À®¤¹¤ë(_n,_¿ô»ú¤Ê¤é¤Ó), findall(_¿ôÃÍ,( ½çÎó(_¿ô»ú¤Ê¤é¤Ó,_n,_¿ô»ú½çÎó), number_chars(_¿ôÃÍ,_¿ô»ú½çÎó)), _½çÎó¤Ê¤é¤Ó). ¿ô»úÎó¤òÀ¸À®¤¹¤ë(_n,_¿ô»ú¤Ê¤é¤Ó) :- findall(A,( between(1,_n,N), atom_number(A,N)), _¿ô»ú¤Ê¤é¤Ó). ½çÎó(_,0,[]). ½çÎó(L,N,[A|R]) :- select(A,L,L2), N_1 is N - 1, ½çÎó(L2,N_1,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/835 # # ¡Ú²ÝÂê¡ÛX * Y = 115 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤ò¥¯¥é¥¹¤ò3¤Ä»È¤Ã¤Æµá¤á·ë²Ì¤òɽ¼¨¤·¤Ê¤µ¤¤ # ¡Ú¡¡´ü¸Â¡¡¡Û2013/11/06 # ¡Ú¡¡Ver¡¡ ¡Û"1.7.0_11" # # ¤¤¤Þ¤¤¤Á¤ï¤«¤é¤ºº¤¤Ã¤Æ¤¤¤Þ¤¹¡£ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ 'X * Y = 115 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤ò¥¯¥é¥¹¤ò3¤Ä»È¤Ã¤Æµá¤á·ë²Ì¤òɽ¼¨¤·¤Ê¤µ¤¤' :- forall('X * Y = 115 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤òµá¤á¤ë'(_X,_Y), ɽ¼¨¤·¤Ê¤µ¤¤(_X,_Y)). 'X * Y = 115 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤òµá¤á¤ë'(_X,_Y) :- '115°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤òÆÀ¤ë'(_115°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), Áȹ礻(_115°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,2,[_X,_Y]), 115 is _X * _Y. '115°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤òÆÀ¤ë'(_115°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(N,between(2,115,N),_2¤«¤é115¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é115¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_115°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). Áȹ礻(X,1,[A]) :- member(A,X) . Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). ɽ¼¨¤·¤Ê¤µ¤¤(_X,_Y) :- writef('%t\n',[_X,_Y]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/832 # # ¡Ú²ÝÂê¡ÛX * Y = 125 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤ò¥¯¥é¥¹¤ò3¤Ä»È¤Ã¤Æµá¤á·ë²Ì¤òɽ¼¨¤·¤Ê¤µ¤¤ # ¡Ú¡¡´ü¸Â¡¡¡Û2013/11/06 # ¡Ú¡¡Ver¡¡ ¡Û"1.7.0_11" # # ¤¤¤Þ¤¤¤Á¤ï¤«¤é¤ºº¤¤Ã¤Æ¤¤¤Þ¤¹¡£ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ 'X * Y = 125 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤ò¥¯¥é¥¹¤ò3¤Ä»È¤Ã¤Æµá¤á·ë²Ì¤òɽ¼¨¤·¤Ê¤µ¤¤' :- 'X * Y = 125 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤òµá¤á¤ë'(_X_Y_Áȹ礻¤Ê¤é¤Ó),!, forall(member([_X,_Y],_X_Y_Áȹ礻¤Ê¤é¤Ó), ɽ¼¨¤·¤Ê¤µ¤¤(_X,_Y)). 'X * Y = 125 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤ò¥¯¥é¥¹¤ò3¤Ä»È¤Ã¤Æµá¤á·ë²Ì¤òɽ¼¨¤·¤Ê¤µ¤¤' :- writef('²ò¤¬¤¢¤ê¤Þ¤»¤ó!\n'), fail. 'X * Y = 125 ¤Ë¤Ê¤ë¡¡ÁÇ¿ôX¤ÈÁÇ¿ôY¤òµá¤á¤ë'(_X_Y_Áȹ礻¤Ê¤é¤Ó) :- '125°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤òÆÀ¤ë'(_125°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), findall([_X,_Y],( Áȹ礻(_125°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,2,[_X,_Y]), 125 is X * Y), _X_Y_Áȹ礻¤Ê¤é¤Ó), \+(_X_Y_Áȹ礻¤Ê¤é¤Ó=[]). '125°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó¤òÆÀ¤ë'(_125°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(N,between(2,125,N),_2¤«¤é125¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é125¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_125°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). Áȹ礻(X,1,[A]) :- member(A,X) . Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). ɽ¼¨¤·¤Ê¤µ¤¤(_X,_Y) :- writef('%t %t\n',[_X,_Y]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1381909900/142 # # [1] ¼ø¶Èñ¸µ¡§£Ã¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è # input´Ø¿ô¤Èshow´Ø¿ô¤òºî¤ë¤³¤È # ¥³¥Þ¥ó¥É°ú¿ô¤Ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆþ¤ì¤ë¤³¤È # '¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è¡£¥³¥Þ¥ó¥É°ú¿ô¤Ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆþ¤ì¤ë¤³¤È' :- ¥³¥Þ¥ó¥É°ú¿ô¤«¤é¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆÀ¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë), ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë). ¥³¥Þ¥ó¥É°ú¿ô¤«¤é¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÆÀ¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- current_prolog_flag(argv,ParameterList), append(_,['--'|[_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë]],ParameterList). ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,Outstream), ¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë). ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- open(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,write,Outstream). ¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(Outstream), close(Outstream). ¤½¤Î¤Ê¤«¤ËÀ°¿ô5¸Ä¿ô»ú¤òÆþ¤ì¤ë(Outstream) :- between(1,5,_²¿ÈÖÌÜ), À°¿ô¤òÆÀ¤ë(_À°¿ô), writef(Outstream,'%t\n',[_À°¿ô]), _²¿ÈÖÌÜ = 5. ¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- open(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,read,Instream), copy_stream_data(Instream,user_output), close(Instream). % % ¤³¤³¤Ç¤Ï¥º¥ë¤ò¤·¤ÆÁȹþ½Ò¸ì copy_stream_data/2 ¤ò»È¤Ã¤Æ¸«¤¿¡£ % % ËÜÍè¤Ê¤éget_lines/2¤Èput_lines/2¤ÎÁȹ礻¤Ç¥³¥Ô¡¼¤òɽ¸½¤¹¤ë¤È¤³¤í¡£ % % ¤½¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò½ÐÎϤ»¤è(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- % get_lines(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,_¹Ô¤Ê¤é¤Ó), % put_lines(user_output,_¹Ô¤Ê¤é¤Ó). % % get_lines(_¥Õ¥¡¥¤¥ë̾,_¹Ô¤Ê¤é¤Ó) :- % open(_¥Õ¥¡¥¤¥ë̾,read,Instream), % findall(_¹Ô,( % repeat, % ( at_end_of_stream(Instream),!,fail; % get_line(Instream,_¹Ô))), % _¹Ô¤Ê¤é¤Ó), % close(Instream). % % put_lines(_¥Õ¥¡¥¤¥ë̾,_¹Ô¤Ê¤é¤Ó) :- % open(_¥Õ¥¡¥¤¥ë̾,write,Outstream), % forall(nth1(_,_¹Ô¤Ê¤é¤Ó,_¹Ô),writef(Outstream,'%t\n',[_¹Ô])), % close(Outstream). % % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % ¥«¥ì¥ó¥À¡¼¤Î·Á¼°(²¿ÍËÆü¤«¤é»Ï¤Þ¤ë¤«)¤È % ·îÆü¿ô¤È£±Æü¤ÎÍËÆü¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë»þ % ¥«¥ì¥ó¥À¡¼¤ò¤Ê¤é¤Ó¤ËÆÀ¤ë¡£ % Âè°ì½µ¤ÈºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ¤·¤¿ÍËÆüµ¯ÅÀ·î¥«¥ì¥ó¥À¡¼ÊäÀµ(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_¥«¥ì¥ó¥À¡¼) :- ÍËÆüµ¯ÅÀ·î¥«¥ì¥ó¥À¡¼(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_¥«¥ì¥ó¥À¡¼_1), Âè°ì½µ¤ÈºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ¤·¤¿(_¥«¥ì¥ó¥À¡¼_1,_¥«¥ì¥ó¥À¡¼). ÍËÆüµ¯ÅÀ·î¥«¥ì¥ó¥À¡¼(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_¥«¥ì¥ó¥À¡¼) :- findall(N,between(1,_·îÆü¿ô,N),_Æü¤Ê¤é¤Ó), µ¯ÅÀÍËÆüÈÖ¹æ¤òÆÀ¤ë(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_µ¯ÅÀÍËÆüÈÖ¹æ), ÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(_µ¯ÅÀÍËÆüÈÖ¹æ,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼). µ¯ÅÀÍËÆüÈÖ¹æ¤òÆÀ¤ë(_µ¯ÅÀÍËÆü·Á¼°,_·îÆü¿ô,_1Æü¤ÎÍËÆü,_µ¯ÅÀÍËÆüÈÖ¹æ) :- ÍËÆüÈÖ¹æ(_ÍËÆüÈÖ¹æ_1,_µ¯ÅÀÍËÆü·Á¼°), ÍËÆüÈÖ¹æ(_ÍËÆüÈÖ¹æ,_1Æü¤ÎÍËÆü), _µ¯ÅÀÍËÆüÈÖ¹æ is (7 - (_ÍËÆüÈÖ¹æ - _ÍËÆüÈÖ¹æ_1)) mod 7. ÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(0,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼) :- 'N¸ÄÁÈ'(7,_Æü¤Ê¤é¤Ó,_¥«¥ì¥ó¥À¡¼),!. ÍËÆüÈֹ椫¤é¥«¥ì¥ó¥À¡¼¤òºîÀ®¤¹¤ë(_ÍËÆüÈÖ¹æ,_Æü¤Ê¤é¤Ó,[L0|LL]) :- length(L0,_ÍËÆüÈÖ¹æ), append(L0,L1,_Æü¤Ê¤é¤Ó), 'N¸ÄÁÈ'(7,L1,LL). ÍËÆüÈÖ¹æ(0,ÆüÍË) :- !. ÍËÆüÈÖ¹æ(1,·îÍË) :- !. ÍËÆüÈÖ¹æ(2,²ÐÍË) :- !. ÍËÆüÈÖ¹æ(3,¿åÍË) :- !. ÍËÆüÈÖ¹æ(4,ÌÚÍË) :- !. ÍËÆüÈÖ¹æ(5,¶âÍË) :- !. ÍËÆüÈÖ¹æ(6,ÅÚÍË) :- !. 'N¸ÄÁÈ'(_,[],[]) :- !. 'N¸ÄÁÈ'(N,L,[U|R]) :- ÀèÆ¬¤«¤éN¸Ä(N,L,U,R1), 'N¸ÄÁÈ'(N,R1,R). ÀèÆ¬¤«¤éN¸Ä(_,[],[],[]) :- !. ÀèÆ¬¤«¤éN¸Ä(0,L,[],L) :- !. ÀèÆ¬¤«¤éN¸Ä(N,[A|R1],[A|R2],R) :- M is N - 1, ÀèÆ¬¤«¤éN¸Ä(M,R1,R2,R). Âè°ì½µ¤ÈºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ¤·¤¿([L|LL1],[[_1,_2,_3,_4,_5,_6,_7]|LL2]) :- Âè°ì½µ¤òÊÑ¿ô¤ÇÊäÀµ(L,[_1,_2,_3,_4,_5,_6,_7]), ºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ(LL1,LL2). Âè°ì½µ¤òÊÑ¿ô¤ÇÊäÀµ(L,[_1,_2,_3,_4,_5,_6,_7]) :- append(_,L,[_1,_2,_3,_4,_5,_6,_7]). ºÇ½ª½µ¤òÊÑ¿ô¤ÇÊäÀµ(LL1,LL2) :- append(LL1_1,[L_2],LL1), append(L_2,_,[_11,_12,_13,_14,_15,_16,_17]), append(LL1_1,[[_11,_12,_13,_14,_15,_16,_17]],LL2),!. ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë([],_). ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë([V|R],V) :- ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë(R,V),!. ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë([_|R],V) :- ÊÑ¿ô¤À¤±ÃͤòµÍ¤á¤ë(R,V). ÊÑ¿ô¤À¤±Í×ÁǰÌÃÖÈÖ¹æ¤òµÍ¤á¤ë([],_). ÊÑ¿ô¤À¤±Í×ÁǰÌÃÖÈÖ¹æ¤òµÍ¤á¤ë([N|R],N) :- N_2 is N + 1, ÊÑ¿ô¤À¤±Í×ÁǰÌÃÖÈÖ¹æ¤òµÍ¤á¤ë(R,N_2),!. ÊÑ¿ô¤À¤±Í×ÁǰÌÃÖÈÖ¹æ¤òµÍ¤á¤ë([_|R],N) :- N_2 is N + 1, ÊÑ¿ô¤À¤±Í×ÁǰÌÃÖÈÖ¹æ¤òµÍ¤á¤ë(R,N_2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % ºÆµ¢¤ò»È¤ï¤º¡¢¤«¤Ä¡¢¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤ò¶î»È¤·¤¿¥Ï¥Î¥¤¤ÎÅã % :- dynamic(¥Ï¥Î¥¤¤ÎÅã/3). :- dynamic(¥Ï¥Î¥¤¤ÎÅã/1). :- dynamic(¥Ï¥Î¥¤¤ÎÅã/0). :- dynamic(ÍúÎò/3). ¥Ï¥Î¥¤¤ÎÅã(N) :- ¥Ï¥Î¥¤¤ÎÅãÎó¤ÎÀ¸À®(N), ¥Ï¥Î¥¤¤ÎÅã_2(1), listing(ÍúÎò). ¥Ï¥Î¥¤¤ÎÅãÎó¤ÎÀ¸À®(N) :- findall(M,between(1,N,M),A), assertz(ÍúÎò(A,[],[])), assertz(¥Ï¥Î¥¤¤ÎÅã(A,[],[])), between(1,1000000,N2), N3 is N2 + 1, assertz((¥Ï¥Î¥¤¤ÎÅã_2(N2) :- ¥Ï¥Î¥¤¤ÎÅã,¥Ï¥Î¥¤¤ÎÅã_2(N3))), N3 = 1000000, assertz(¥Ï¥Î¥¤¤ÎÅã_2(1000000)). ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã([],[],_),!. ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã([A|R],B,C), \+(ÍúÎò(R,[A|B],C)), ½Å¤Í¸¡ºº(A,B), ( asseretz(¥Ï¥Î¥¤¤ÎÅã(R,[A|B],C)), retract(¥Ï¥Î¥¤¤ÎÅã([A|R],B,C)), asserz(ÍúÎò(R,[A|B],C)); retract(ÍúÎò(R,[A|B],C)), asseretz(¥Ï¥Î¥¤¤ÎÅã([A|R],B,C)), retract(¥Ï¥Î¥¤¤ÎÅã(R,[A|B],C)), fail). ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã([A|R],C,B), \+(ÍúÎò(R,C,[A|B])), ½Å¤Í¸¡ºº(A,B), ( asseretz(¥Ï¥Î¥¤¤ÎÅã(R,C,[A|B])), retract(¥Ï¥Î¥¤¤ÎÅã([A|R],C,B)), asserz(ÍúÎò(R,C,[A|B])); retract(ÍúÎò(R,C,[A|B])), asseretz(¥Ï¥Î¥¤¤ÎÅã([A|R],C,B)), retract(¥Ï¥Î¥¤¤ÎÅã(R,C,[A|B])), fail). ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã(B,[A|R],C), \+(ÍúÎò([A|B],R,C)), ½Å¤Í¸¡ºº(A,B), ( asseretz(¥Ï¥Î¥¤¤ÎÅã([A|B],R,C)), retract(¥Ï¥Î¥¤¤ÎÅã(B,[A|R],C)), asserz(ÍúÎò([A|B],R,C)); retract(ÍúÎò([A|B],R,C)), asseretz(¥Ï¥Î¥¤¤ÎÅã(B,[A|R],C)), retract(¥Ï¥Î¥¤¤ÎÅã([A|B],R,C)), fail). ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã(B,C,[A|R]), \+(ÍúÎò([A|B],C,R)), ½Å¤Í¸¡ºº(A,B), ( asseretz(¥Ï¥Î¥¤¤ÎÅã([A|B],C,R)), retract(¥Ï¥Î¥¤¤ÎÅã(B,C,[A|R])), asserz(ÍúÎò([A|B],C,R)); retract(ÍúÎò([A|B],C,R)), asseretz(¥Ï¥Î¥¤¤ÎÅã(B,C,[A|R])), retract(¥Ï¥Î¥¤¤ÎÅã([A|B],C,R)), fail). ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã(C,[A|R],B), \+(ÍúÎò(C,R,[A|B])), ½Å¤Í¸¡ºº(A,B), ( asseretz(¥Ï¥Î¥¤¤ÎÅã(C,R,[A|B])), retract(¥Ï¥Î¥¤¤ÎÅã(C,[A|R],B)), asserz(ÍúÎò(C,R,[A|B])); retract(ÍúÎò(C,R,[A|B])), asseretz(¥Ï¥Î¥¤¤ÎÅã(C,[A|R],B)), retract(¥Ï¥Î¥¤¤ÎÅã(C,R,[A|B])), fail). ¥Ï¥Î¥¤¤ÎÅã :- ¥Ï¥Î¥¤¤ÎÅã(C,B,[A|R]), \+(ÍúÎò(C,[A|B],R)), ½Å¤Í¸¡ºº(A,B), ( asseretz(¥Ï¥Î¥¤¤ÎÅã(C,[A|B],R)), retract(¥Ï¥Î¥¤¤ÎÅã(C,B,[A|R])), asserz(ÍúÎò(C,[A|B],R)); retract(ÍúÎò(C,[A|B],R)), asseretz(¥Ï¥Î¥¤¤ÎÅã(C,B,[A|R])), retract(¥Ï¥Î¥¤¤ÎÅã(C,[A|B],R)), fail). ½Å¤Í¸¡ºº(A,[]). ½Å¤Í¸¡ºº(A,[B|_]) :- A @< B. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # WinXP Home¤ÇBorland C++ Compiler 5.5 # ¡¦£±¤«¤é£î¤Þ¤Ç¤ÎÀ°¿ô£±¸Ä¤º¤Ä¤Ç¹½À®¤µ¤ì¤ëÁ´Éô¤Ç£î¸Ä¤ÎÍ×ÁǤ«¤é¡¢ # £ò¸Ä¤ÎÍ×ÁǤò½ÅÊ£¤Ê¤¯¼è¤ê½Ð¤·¤¿¾ì¹ç¤ÎÁȤ߹ç¤ï¤»¤òÁ´¤Æ¾º½ç¤Çʤ٤¿¤â¤Î¤ÎÃæ¤Ç¡¢ # ¶ñÂÎŪ¤ÊÁȤ߹ç¤ï¤»¤È¶ñÂÎŪ¤Ê½øÎ󤬲¿ÈÖÌܤ«¤òÁê¸ß¤ËÊÖ¤¹¥×¥í¥°¥é¥à¡£ # Îã¡¡43C6¤Ê¤é¡¢½ø¿ô5054214¤ÏÁȤ߹ç¤ï¤»11,14,17,18,34,36 # Îã¡¡43C6¤Ê¤é¡¢ÁȤ߹ç¤ï¤»13,28,29,37,38,41¤Ï5498643 # ¥³¥Þ¥ó¥É¤Ïncr.exe [n],[r] [co][ra] x.txt¤ÎÍͤʴ¶¤¸¤Ç '£±¤«¤é£î¤Þ¤Ç¤ÎÀ°¿ô£±¸Ä¤º¤Ä¤Ç¹½À®¤µ¤ì¤ëÁ´Éô¤Ç£î¸Ä¤ÎÍ×ÁǤ«¤é¡¢ £ò¸Ä¤ÎÍ×ÁǤò½ÅÊ£¤Ê¤¯¼è¤ê½Ð¤·¤¿¾ì¹ç¤ÎÁȤ߹ç¤ï¤»¤òÁ´¤Æ¾º½ç¤Çʤ٤¿¤â¤Î¤ÎÃæ¤Ç¡¢ ¶ñÂÎŪ¤ÊÁȤ߹ç¤ï¤»¤È¶ñÂÎŪ¤Ê½øÎ󤬲¿ÈÖÌܤ«¤òÁê¸ß¤ËÊÖ¤¹'(_n,_r,_½ø¿ô,_¶ñÂÎŪ¤ÊÁȹ礻) :- findall(M,between(1,_n,M),L), findall(_Áȹç¤ï¤»,Áȹ礻(L,_r,_Áȹç¤ï¤»),_Áȹç¤ï¤»¤Ê¤é¤Ó), nth1(_½ø¿ô,_Áȹç¤ï¤»¤Ê¤é¤Ó,_¶ñÂÎŪ¤ÊÁȹç¤ï¤»). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Áȹ礻(L,1,[A]) :- member(A,L). Áȹ礻([A|R1],N,[A|R3]) :- N > 1, M is N - 1, Áȹ礻(R1,M,R3). Áȹ礻([_|R1],N,L) :- N > 1, Áȹ礻(R1,N,L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/777 # # ¡Ú²ÝÂê¡ÛX * Y = 123 ¤Ë¤Ê¤ëÁÇ¿ô X¤ÈY¤òµá¤á¡¢·ë²Ì¤ò¤¹¤Ù¤ÆÉ½¼¨¤·¤Ê¤µ¤¤¡£ # ¡Ú¡¡´ü¸Â¡¡¡Û2013/10/15 # ¡Ú¡¡Ver¡¡ ¡Û"1.7.0_11" # ¤¬¤ó¤Ð¤Ã¤Æ¤Þ¤¹¤¬´ü¸Â¤Þ¤Ç¤ËÍý²ò¤Ç¤­¤ëµ¤¤¬¤·¤Ê¤¤¤Î¤Ç # ´ðÁÃŪ¤Ê¤³¤È¤À¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¤è¤í¤·¤¯¸æ´ê¤¤¤·¤Þ¤¹ 'X * Y = 123 ¤Ë¤Ê¤ëÁÇ¿ô X¤ÈY¤òµá¤á¡¢·ë²Ì¤ò¤¹¤Ù¤ÆÉ½¼¨¤·¤Ê¤µ¤¤¡£' :- forall('X * Y = 123 ¤Ë¤Ê¤ëÁÇ¿ô X¤ÈY¤òµá¤á¡¢'(X,Y), '·ë²Ì¤ò¤¹¤Ù¤ÆÉ½¼¨¤·¤Ê¤µ¤¤¡£'(X,Y)). 'X * Y = 123 ¤Ë¤Ê¤ëÁÇ¿ô X¤ÈY¤òµá¤á¡¢'(X,Y) :- findall(N,between(2,123,N),L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_ÁÇ¿ô¤Ê¤é¤Ó), ½ÅÊ£Áȹ礻(_ÁÇ¿ô¤Ê¤é¤Ó,2,[X,Y]), 123 is X * Y. '·ë²Ì¤ò¤¹¤Ù¤ÆÉ½¼¨¤·¤Ê¤µ¤¤¡£'(X,Y) :- writef('X=%t,Y=%t\n',[X,Y]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ½ÅÊ£Áȹ礻(X,1,[A]) :- member(A,X). ½ÅÊ£Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, ½ÅÊ£Áȹ礻([A|Y],M,X) . ½ÅÊ£Áȹ礻([_|Y],N,A) :- N > 1, ½ÅÊ£Áȹ礻(Y,N,A) . ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï :- dynamic(³¬¾èÊݸ·×»»/2). '¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤ò»È¤Ã¤ÆÁÇ¿ô¤òȽÄꤹ¤ë´Ø¿ôis_prime¤ò¼ÂÁõ¤·¡¢100000°Ê²¼¤ÎÁÇ¿ô°Ê³°¤ò¥ê¥¹¥È¤ËÆÀ¤ë'(_10000°Ê²¼¤ÎÁÇ¿ô¥ê¥¹¥È) :- findall(_p,( between(1,10000,_p), \+(is_prime(_p))), _10000°Ê²¼¤ÎÁÇ¿ô¥ê¥¹¥È). is_prime(_p) :- '¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤È¤Ï p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0'(_p). '¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤È¤Ï p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0'(_p) :- _p > 0, Y is _p - 1, ³¬¾èÊݸ·×»»(Y,Z), 0 is (Z + 1) mod _p,!. ³¬¾èÊݸ·×»»(0,1) :- !. ³¬¾èÊݸ·×»»(1,1) :- !. ³¬¾èÊݸ·×»»(N,X) :- N2 is N - 1, ³¬¾èÊݸ·×»»(N2,Y), X is N * Y, asserta((³¬¾èÊݸ·×»»(N,X) :- !)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¤ªÂê¡§nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô¤ÎÁíϤòµá¤á¤è¡£ # 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô¤ÎÁíÏÂ'(Nth,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎÁíÏÂ) :- 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó'(Nth,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó), sum_list(_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤ÎÁíÏÂ),!. 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó'(Nth,_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó) :- findall(X,'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô'(Nth,X),_¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó). 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô'(Nth_1,X) :- Nth_9 is Nth_1 + 9, 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô'(0,0,1,Nth_1,Nth_9,X). 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô'(Nth,M,N,Nth_1,Nth_9,M) :- between(Nth_1,Nth_9,Nth). 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô'(Nth,M,N,Nth_1,Nth_9,X) :- M2 is M + N, Nth_2 is Nth + 1, Nth_2 =< Nth_9, 'nÈÖÌܤ«¤én+9ÈÖÌܤΥե£¥Ü¥Ê¥Ã¥Á¿ô'(Nth_2,N,M2,Nth_1,Nth_9,X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¤ªÂê¡§¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢¤½¤ÎÃæ¤ÇºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à # '¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢¤½¤ÎÃæ¤ÇºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³¤òɽ¼¨¤¹¤ë'(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë) :- ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,_ʸ), '¤½¤ÎÃæ¤ÇºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³¤òɽ¼¨¤¹¤ë'(_ʸ). ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,_ʸ) :- get_lines(_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,_¹Ô¤Ê¤é¤Ó), atomic_list_concat(_¹Ô¤Ê¤é¤Ó,_ʸ). '¤½¤ÎÃæ¤ÇºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³¤òɽ¼¨¤¹¤ë'(_ʸ) :- ·ÁÂÖÁDzòÀÏ(ʸ,_ʸ,_·ÁÂÖÁǤʤé¤Ó), ºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³¤ò(_·ÁÂÖÁǤʤé¤Ó,_ºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³), ɽ¼¨¤¹¤ë(_ºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³). ¤½¤ÎÃæ¤ÇºÇ¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ëñ¸ì¥Ù¥¹¥È£³¤ò(_·ÁÂÖÁǤʤé¤Ó,[_ñ¸ì1,_ñ¸ì2,_ñ¸ì3]) :- setof(A,member(A,_·ÁÂÖÁǤʤé¤Ó),_ñ¸ì¤Ê¤é¤Ô), findall([_ÅÙ¿ô,_ñ¸ì],( member(_ñ¸ì,_ñ¸ì¤Ê¤é¤Ó), count(_ñ¸ì,_·ÁÂÖÁǤʤé¤Ó,_ÅÙ¿ô)), LL), sort(LL,_À°Îó¤·¤¿LL), append(_,[[_,_ñ¸ì3],[_,_ñ¸ì2],[_,_ñ¸ì1]],_À°Îó¤·¤¿LL). ɽ¼¨¤¹¤ë([_ñ¸ì1,_ñ¸ì2,_ñ¸ì3]) :- writef('%t %t %t\n',[_ñ¸ì1,_ñ¸ì2,_ñ¸ì3]). count(P,N) :- findsum(1,P,F), N is truncate(F). findsum(_ÁªÂò¹à,_¹à,_¹ç·×ÃÍ) :- findall(_ÁªÂò¹à,_¹à,_Ãͤʤé¤Ó), sum_list(_Ãͤʤé¤Ó,_¹ç·×ÃÍ),!. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ·ÁÂÖÁDzòÀÏ¥µ¡¼¥Ð¡¼(mecab). ·ÁÂÖÁDzòÀÏ([],[]) :-!. ·ÁÂÖÁDzòÀÏ([['EOS'|_]|_],[]) :-!. ·ÁÂÖÁDzòÀÏ([[A|_],[@,B|_]|R],[R1_1|R3]) :- ·ÁÂÖÁDzòÀÏ_2(R,R1,R2), ·ÁÂÖÁDzòÀÏ_2_½ÅÊ£ºï½ü([A,B|R1],[],R1_1), ·ÁÂÖÁDzòÀÏ(R2,R3),!. ·ÁÂÖÁDzòÀÏ([[A|_]|R],[B|R2]) :- ·ÁÂÖÁDzòÀÏ¥µ¡¼¥Ð¡¼(mecab), make_list(A,['\t'],AL), AL = [B|_], ·ÁÂÖÁDzòÀÏ(R,R2),!. ·ÁÂÖÁDzòÀÏ([[A|_]|R],[A|R2]) :- ·ÁÂÖÁDzòÀÏ¥µ¡¼¥Ð¡¼(juman), ·ÁÂÖÁDzòÀÏ(R,R2),!. ·ÁÂÖÁDzòÀÏ_2([],[],[]) :- !. ·ÁÂÖÁDzòÀÏ_2([[A|R1]|R],[],[[A|R1]|R]) :- \+(A = (@)),!. ·ÁÂÖÁDzòÀÏ_2([[@,A|_]|R],[A|R2],R3) :- ·ÁÂÖÁDzòÀÏ_2(R,R2,R3),!. ·ÁÂÖÁDzòÀÏ_2_½ÅÊ£ºï½ü([],L1,L) :- reverse(L1,L),!. ·ÁÂÖÁDzòÀÏ_2_½ÅÊ£ºï½ü([A|R],Y,X) :- member(A,Y), ·ÁÂÖÁDzòÀÏ_2_½ÅÊ£ºï½ü(R,Y,X),!. ·ÁÂÖÁDzòÀÏ_2_½ÅÊ£ºï½ü([A|R],Y,X) :- \+(member(A,Y)), ·ÁÂÖÁDzòÀÏ_2_½ÅÊ£ºï½ü(R,[A|Y],X). ·ÁÂÖÁDzòÀÏ(¥Õ¥¡¥¤¥ë,_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,L) :- ·ÁÂÖÁDzòÀÏ¥µ¡¼¥Ð¡¼(_·ÁÂÖÁDzòÀÏ¥µ¡¼¥Ð¡¼), concat(['cat ',_¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë,' | ',_·ÁÂÖÁDzòÀÏ¥µ¡¼¥Ð¡¼],S), sh(S,L1), ·ÁÂÖÁDzòÀÏ(L1,L2), ·ÁÂÖÁDzòÀÏ_3(L2,L). ·ÁÂÖÁDzòÀÏ(ʸ,S,L) :- tmpnam(_²¾¤Î¥Õ¥¡¥¤¥ë), tell(_²¾¤Î¥Õ¥¡¥¤¥ë), wr('%t',[S]), told, ·ÁÂÖÁDzòÀÏ(¥Õ¥¡¥¤¥ë,_²¾¤Î¥Õ¥¡¥¤¥ë,L) . ·ÁÂÖÁDzòÀÏ_3([],[]). ·ÁÂÖÁDzòÀÏ_3([A|R],[A|R2]) :- \+(list(A)), ·ÁÂÖÁDzòÀÏ_3(R,R2) . ·ÁÂÖÁDzòÀÏ_3([A|R],[B|R2]) :- list(A), member(B,A), ·ÁÂÖÁDzòÀÏ_3(R,R2). system(Command,X) :- shell(Command,X). system(Command) :- shell(Command). popen(Command,Chars) :- open(pipe(Command),read,Instream), get_char(Instream,Char), popen(Instream,Char,Chars), close(Instream),!. popen(Instream,end_of_file,[]) :- !. popen(Instream,Char,[Char|R]) :- get_char(Instream,Char2), popen(Instream,Char2,R). sh(Command,X) :- shs(Command,Y), findall(U,( member(V,Y) , split(V,[' ',','],U)), X). shs(Command,X) :- popen(Command,L), shs_3(L,X). shs_3(L,[S|R]) :- append(L0,['\n'|R1],L), atom_chars(S,L0), shs_3(R1,R). shs_3([],[]) :- !. shs_3(L,[S]) :- atom_chars(S,L). tmpnam(TMPNAM) :- Íð¿ô¤«¤éTMPNAM¤òÆÀ¤ë(TMPNAM),!. tmpnam(TMPNAM) :- tmpnam(TMPNAM). Íð¿ô¤«¤éTMPNAM¤òÆÀ¤ë(TMPNAM) :- ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹([_1,_2,_3,_4,_5,_6]), atomic_list_concat(['/tmp/file'|[_1,_2,_3,_4,_5,_6]],TMPNAM), \+(exists_file(TMPNAM)). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹([]). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹([A|R]) :- C is random(62), ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹¤ÎÆó(C,A), ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹(R). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹¤ÎÆó(N,A) :- '´ð¿ô62¤Î¥³¡¼¥É¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¥³¡¼¥ÉÊÑ´¹É½'(S,E,B), between(S,E,N), C is N - S + B, char_code(A,C). '´ð¿ô62¤Î¥³¡¼¥É¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¥³¡¼¥ÉÊÑ´¹É½'(0,9,48). '´ð¿ô62¤Î¥³¡¼¥É¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¥³¡¼¥ÉÊÑ´¹É½'(10,35,65). '´ð¿ô62¤Î¥³¡¼¥É¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¥³¡¼¥ÉÊÑ´¹É½'(36,60,97). % °Ê²¼¤Î¥µ¥¤¥È¤Ï n¥¯¥¤¡¼¥ó(_n¥¯¥¤¡¼¥ó,_°ì²ò) :- '1¤«¤én¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó¤òÆÀ¤ë(½Ä²£¤ÎÍø¤­¶Ú¤Ï¤³¤ì¤ò¹Ô¤´¤È¤Ë°ì¤Ä¤º¤ÄÁªÂò¤¹¤ë¤³¤È¤Ç²óÈò¤µ¤ì¤ë)'(_n¥¯¥¤¡¼¥ó,_¿ô¤Ê¤é¤Ó), ¹Ô¤´¤È¤Ë½ç¤Ë¶ð¤òÃÖ¤­Íø¤­¶Ú¤òÄ´¤Ù¤Æ°ì²ò¤òÆÀ¤ë(_¿ô¤Ê¤é¤Ó,[],_°ì²ò). ¹Ô¤´¤È¤Ë½ç¤Ë¶ð¤òÃÖ¤­Íø¤­¶Ú¤òÄ´¤Ù¤Æ°ì²ò¤òÆÀ¤ë([],_°ì²ò,_°ì²ò). ¹Ô¤´¤È¤Ë½ç¤Ë¶ð¤òÃÖ¤­Íø¤­¶Ú¤òÄ´¤Ù¤Æ°ì²ò¤òÆÀ¤ë(_°ÌÃ֤ʤé¤Ó,Qs,_°ì²ò) :- '¶ð¤Î°ÌÃ֤ȻĤê¶ð¤Î°ÌÃ֤ʤé¤Ó¤òÆÀ¤ë(¤³¤ÎÁªÂò¼«ÂΤ¬½Ä²£¤ÎÍø¤­¶Ú¸¡ºº¤Ë¤Ê¤Ã¤Æ¤¤¤ë)'(_¶ð¤Î°ÌÃÖ,_°ÌÃ֤ʤé¤Ó,_»Ä¤ê¶ð¤Î°ÌÃ֤ʤé¤Ó), ¼Ð¤á¤ÎÍø¤­¶Ú¤Ë¶ð¤Ï¤Ê¤¤(_¶ð¤Î°ÌÃÖ,1,Qs), ¹Ô¤´¤È¤Ë½ç¤Ë¶ð¤òÃÖ¤­Íø¤­¶Ú¤òÄ´¤Ù¤Æ°ì²ò¤òÆÀ¤ë(_»Ä¤ê¶ð¤Î°ÌÃ֤ʤé¤Ó,[_¶ð¤Î°ÌÃÖ|Qs],_°ì²ò). '¶ð¤Î°ÌÃ֤ȻĤê¶ð¤Î°ÌÃ֤ʤé¤Ó¤òÆÀ¤ë(¤³¤ÎÁªÂò¼«ÂΤ¬½Ä²£¤ÎÍø¤­¶Ú¸¡ºº¤Ë¤Ê¤Ã¤Æ¤¤¤ë)'(_¶ð¤Î°ÌÃÖ,[_¶ð¤Î°ÌÃÖ|_»Ä¤ê¶ð¤Î°ÌÃ֤ʤé¤Ó],_»Ä¤ê¶ð¤Î°ÌÃ֤ʤé¤Ó). '¶ð¤Î°ÌÃ֤ȻĤê¶ð¤Î°ÌÃ֤ʤé¤Ó¤òÆÀ¤ë(¤³¤ÎÁªÂò¼«ÂΤ¬½Ä²£¤ÎÍø¤­¶Ú¸¡ºº¤Ë¤Ê¤Ã¤Æ¤¤¤ë)'(X,[H|T],[H|T1]) :- '¶ð¤Î°ÌÃ֤ȻĤê¶ð¤Î°ÌÃ֤ʤé¤Ó¤òÆÀ¤ë(¤³¤ÎÁªÂò¼«ÂΤ¬½Ä²£¤ÎÍø¤­¶Ú¸¡ºº¤Ë¤Ê¤Ã¤Æ¤¤¤ë)'(X,T,T1). ¼Ð¤á¤ÎÍø¤­¶Ú¤Ë¶ð¤Ï¤Ê¤¤(_,_,[]). ¼Ð¤á¤ÎÍø¤­¶Ú¤Ë¶ð¤Ï¤Ê¤¤(Q,_³Ö¤¿¤ê,[Q1|Qs]) :- Q + _³Ö¤¿¤ê =\= Q1, Q - _³Ö¤¿¤ê =\= Q1, _³Ö¤¿¤ê_2 is _³Ö¤¿¤ê + 1, ¼Ð¤á¤ÎÍø¤­¶Ú¤Ë¶ð¤Ï¤Ê¤¤(Q,_³Ö¤¿¤ê_2,Qs). '1¤«¤én¤Þ¤Ç¤Î¿ô¤Ê¤é¤Ó¤òÆÀ¤ë(½Ä²£¤ÎÍø¤­¶Ú¤Ï¤³¤ì¤ò¹Ô¤´¤È¤Ë°ì¤Ä¤º¤ÄÁªÂò¤¹¤ë¤³¤È¤Ç²óÈò¤µ¤ì¤ë)'(_n¥¯¥¤¡¼¥ó,_¿ô¤Ê¤é¤Ó) :- findall(M,between(1,_n¥¯¥¤¡¼¥ó,M),_¿ô¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_],[_],_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó,_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó), 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó) :- findall(_¿ô,between(1,81,_¿ô),_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_,_,_,_,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_],_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(Ln1,[_,_,_,_,_,_,_,_,_,_],L1,L) :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_|Ln1],[_],L1,L). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(Ln1,Ln2,L1,L) :- ¶å¶å¤Ë¸½¤ì¤ë¿ô¤òºï½ü(Ln1,Ln2,L1,L2), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(Ln1,[_|Ln2],L2,L). ¶å¶å¤Ë¸½¤ì¤ë¿ô¤òºï½ü(Ln1,Ln2,L1,L2) :- ¤Ê¤é¤Ó³Ý¤±»»(Ln1,Ln2,Ln3), length(Ln3,_¶å¶å¤Ë¸½¤ì¤ë¿ô), ¿ô¤òL1¤«¤éºï½ü¤·¤ÆL2¤È¤¹¤ë(_¶å¶å¤Ë¸½¤ì¤ë¿ô,L1,L2),!. ¶å¶å¤Ë¸½¤ì¤ë¿ô¤òºï½ü(_,_,L,L). ¤Ê¤é¤Ó³Ý¤±»»(_,[],[]). ¤Ê¤é¤Ó³Ý¤±»»(L1,[B|R2],L) :- ¤Ê¤é¤Ó³Ý¤±»»(L1,R2,L2), append(L1,L2,L). ¿ô¤òL1¤«¤éºï½ü¤·¤ÆL2¤È¤¹¤ë(_¿ô,L1,L2) :- append(L0,[_¿ô|R],L1), append(L0,R,L2). 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_],[_],_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó,_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó), 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó) :- findall(_¿ô,between(1,81,_¿ô),_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_,_,_,_,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_],_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(Ln1,[_,_,_,_,_,_,_,_,_,_],L1,L) :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_|Ln1],[_],L1,L). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(Ln1,Ln2,L1,L) :- ¶å¶å¤Ë¸½¤ì¤ë¿ô¤òºï½ü(Ln1,Ln2,L1,L2), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(Ln1,[_|Ln2],L2,L). ¶å¶å¤Ë¸½¤ì¤ë¿ô¤òºï½ü(Ln1,Ln2,L1,L2) :- ¤Ê¤é¤Ó¤ÎÍ×ÁÇ¿ôɽ¸½¤ò¿ôɽ¸½¤ËÊÑ´¹(Ln1,Ln2,_¿ô_1,_¿ô_2), _¶å¶å¤Ë¸½¤ì¤ë¿ô is _¿ô_1 * _¿ô_2, ¿ô¤òL1¤«¤éºï½ü¤·¤ÆL2¤È¤¹¤ë(_¶å¶å¤Ë¸½¤ì¤ë¿ô,L1,L2),!. ¶å¶å¤Ë¸½¤ì¤ë¿ô¤òºï½ü(_,_,L,L). ¤Ê¤é¤Ó¤ÎÍ×ÁÇ¿ôɽ¸½¤ò¿ôɽ¸½¤ËÊÑ´¹(Ln1,Ln2,_¿ô_1,_¿ô_2) :- length(Ln1,_¿ô_1), length(Ln2,_¿ô_2). ¿ô¤òL1¤«¤éºï½ü¤·¤ÆL2¤È¤¹¤ë(_¿ô,L1,L2) :- append(L0,[_¿ô|R],L1), append(L0,R,L2). 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó), 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó), ¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó(_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó) :- findall(_¿ô,between(1,81,_¿ô),_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó). ¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó(_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó) :- findall(_¶å¶å,( ¶å¶å(_¶å¶å)), _¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó). ¶å¶å(_¶å¶å) :- between(1,9,_¿ô_1), between(1,9,_¿ô_2), _¶å¶å is _¿ô_1 * _¿ô_2. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([],_,[]) :- !. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_¿ô|R1],_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,[_¿ô|R3]) :- ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô(_¿ô,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(R1,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,R3),!. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_|R1],_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,R3) :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(R1,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,R3). ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô(_¿ô,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó) :- \+(member(_¿ô,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó)). 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó), ¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó(_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó), 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó'(_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó) :- findall(_¿ô,between(1,81,_¿ô),_81°Ê²¼¤Î¼«Á³¿ô¤Ê¤é¤Ó). ¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó(_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó) :- findall(_¶å¶å,( ¶å¶å(_¶å¶å)), _¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó). ¶å¶å(_¶å¶å) :- between(1,9,_¿ô_1), between(1,9,_¿ô_2), _¶å¶å is _¿ô_1 * _¿ô_2. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([],_,[]) :- !. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_¿ô|R1],_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,[_¿ô|R3]) :- \+(member(_¿ô,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó)), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(R1,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,R3),!. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'([_|R1],_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,R3) :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(R1,_¶å¶å¤Ë¸½¤ì¤ë¿ô¤Ê¤é¤Ó,R3). 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- findall(N,between(1,81,N),L_1), '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ç¤¹¤Ù¤Æ'(1,1,L_1,L_2), 'ɽ¼¨¤»¤è¡£'(L_2). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ç¤¹¤Ù¤Æ'(_n_1,_,L,L) :- _n_1 > 9,!. '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ç¤¹¤Ù¤Æ'(_n_1,_n_2,L_1,L) :- _n_2 > 9, _n_1_2 is _n_1 + 1, '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ç¤¹¤Ù¤Æ'(_n_1_2,1,L_1,L). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ç¤¹¤Ù¤Æ'(_n_1,_n_2,L_1,L_2) :- _n_3 is _n_1 * _n_2, ¶õÇò¤ËÃÖ´¹(_n_3,L_1,L_2), _n_2_2 is _n_2 + 1, '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò'(_n_1,_n_2_2,L_3,L). ¶õÇò¤ËÃÖ´¹(N,L_1,L_2) :- append(L0,[N|R],L_1), append(L0,[' '|R],L_2). ɽ¼¨¤»¤è(L) :- atomic_list_concat(L,_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- between(1,81,_¼«Á³¿ô), ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò(_¼«Á³¿ô), ɽ¼¨¤»¤è(_¼«Á³¿ô), _¼«Á³¿ô = 81. ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò(_¼«Á³¿ô) :- \+(¶å¶å¤Ë¸½¤ì¤ë¿ô(_¼«Á³¿ô)). ¶å¶å¤Ë¸½¤ì¤ë¿ô(_¼«Á³¿ô) :- between(1,9,_n1), between(1,9,_n2), _¼«Á³¿ô is _n1 * _n2,!. ɽ¼¨¤»¤è(_¼«Á³¿ô) :- writef('%t ',[_¼«Á³¿ô]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç'(_81°Ê²¼¤Î¼«Á³¿ô), ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò(_81°Ê²¼¤Î¼«Á³¿ô), 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô), _81°Ê²¼¤Î¼«Á³¿ô = 81. '81°Ê²¼¤Î¼«Á³¿ô¤Ç'(_81°Ê²¼¤Î¼«Á³¿ô) :- between(1,81,_81°Ê²¼¤Î¼«Á³¿ô). ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò(_81°Ê²¼¤Î¼«Á³¿ô) :- \+(¶å¶å¤Ë¸½¤ì¤ë¿ô¤ò(_81°Ê²¼¤Î¼«Á³¿ô)). ¶å¶å¤Ë¸½¤ì¤ë¿ô¤ò(_81°Ê²¼¤Î¼«Á³¿ô) :- ½ÅÊ£Áȹ礻([1,2,3,4,5,6,7,8,9],2,[M,N]), _81°Ê²¼¤Î¼«Á³¿ô is M * N,!. 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô) :- writef('%t ',[_81°Ê²¼¤Î¼«Á³¿ô]). ½ÅÊ£Áȹ礻(X,1,[A]) :- member(A,X). ½ÅÊ£Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, ½ÅÊ£Áȹ礻([A|Y],M,X). ½ÅÊ£Áȹ礻([_|Y],N,A) :- N > 1, ½ÅÊ£Áȹ礻(Y,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # # 81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó), 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤Æ'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- findall(_81°Ê²¼¤Î¼«Á³¿ô,( '81°Ê²¼¤Î¼«Á³¿ô¤Ç'(_81°Ê²¼¤Î¼«Á³¿ô), ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô(_81°Ê²¼¤Î¼«Á³¿ô)),_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó). '81°Ê²¼¤Î¼«Á³¿ô¤Ç'(_81°Ê²¼¤Î¼«Á³¿ô) :- between(1,81,_81°Ê²¼¤Î¼«Á³¿ô). ¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô(_81°Ê²¼¤Î¼«Á³¿ô) :- \+(¶å¶å¤Ë¸½¤ì¤ë¿ô(_81°Ê²¼¤Î¼«Á³¿ô)). ¶å¶å¤Ë¸½¤ì¤ë¿ô(_¶å¶å¤Ë¸½¤ì¤ë¿ô) :- between(1,9,_¿ô_1), between(1,9,_¿ô_2), _¶å¶å¤Ë¸½¤ì¤ë¿ô is _¿ô_1 * _¿ô_2. 'ɽ¼¨¤»¤è¡£'(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_81°Ê²¼¤Î¼«Á³¿ô¤Ç¶å¶å¤Ë¸½¤ì¤Ê¤¤¿ô¤Ê¤é¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1376111807/98 # # '10±ß¤È100±ß¤È1000±ß¤ÎÇ㤤ʪ¤ò¤·¤¿»þ¤Ëʧ¤¦ # ¶â³Û¤Î¥ê¥¹¥È¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤¿ # # map(sum)[[x,y,z]|x<-[0,10],y<-[0,100],z<-[0,1000]] # # ¤³¤ì¤òǤ°Õ¤ÎÁȤ˳ÈÄ¥¤¹¤ë¤Ë¤Ï # ¤É¤¦¤¤¤¦ÊýË¡¤¬¤¢¤ë¤Ç¤·¤ç¤¦¤«¡© # '10±ß¤È100±ß¤È1000±ß¤ÎÇ㤤ʪ¤ò¤·¤¿»þ¤Ëʧ¤¦ ¶â³Û¤Î¥ê¥¹¥È¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤¿ map(sum)[[x,y,z]|x<-[0,10],y<-[0,100],z<-[0,1000]] ¤³¤ì¤òǤ°Õ¤ÎÁȤ˳ÈÄ¥¤¹¤ë¤Ë¤Ï ¤É¤¦¤¤¤¦ÊýË¡¤¬¤¢¤ë¤Ç¤·¤ç¤¦¤«¡©'(_Ç㤤ʪ¤ò¤·¤¿»þ¤Ë»Ùʧ¤¦¶â³Û¤Ê¤é¤Ó,_¶â³ÛÁȹ礻) :- Ç㤤ʪ¤ò¤·¤¿»þ¤Ëʧ¤¦¶â³Û(_Ç㤤ʪ¤ò¤·¤¿»þ¤Ë»Ùʧ¤¦¶â³Û¤Ê¤é¤Ó,_½ÅÊ£¤òµö¤¹¶â³Û¤Ê¤é¤Ó), sort(_½ÅÊ£¤òµö¤¹¶â³Û¤Ê¤é¤Ó,_¶â³ÛÁȹ礻). Ç㤤ʪ¤ò¤·¤¿»þ¤Ëʧ¤¦¶â³Û(_Ç㤤ʪ¤ò¤·¤¿»þ¤Ë»Ùʧ¤¦¶â³Û¤Ê¤é¤Ó,_¶â³Û¤Ê¤é¤Ó) :- length(_Ç㤤ʪ¤ò¤·¤¿»þ¤Ë»Ùʧ¤¦¶â³Û¤Ê¤é¤Ó,_¤Ê¤é¤Ó¤ÎŤµ), findall(_¶â³Û,( between(1,_¤Ê¤é¤Ó¤ÎŤµ,N), Áȹ礻(_Ç㤤ʪ¤ò¤·¤¿»þ¤Ë»Ùʧ¤¦¶â³Û¤Ê¤é¤Ó,N,L), sum(L,_¶â³Û)), _¶â³Û¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/714 # # ¡Ú¡¡²ÝÂê¡¡¡Û£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢£·¤Ç³ä¤Ã¤¿¤È¤­¡Ö£²Í¾¤é¤Ê¤¤¿ô¡×¤òµá¤á¤Æ²¼¤µ¤¤¡£ # ¡Ú¡¡·ÁÂÖ¡¡¡ÛJava¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(main()¤Ç³«»Ï) # ¡Ú¡¡GUI¡¡ ¡ÛÀ©¸Â¤Ê¤· # ¡Ú¡¡´ü¸Â¡¡¡Û£¹·î£¶Æü # ¡Ú¡¡Ver¡¡ ¡Ûjavac 1.7.0_25 # ¡Ú¡¡Êä­¡¡¡Û # £±¡¢½ÐÎϤϾ®¤µ¤¤½ç¤Ë¡¢¤«¤Ä£±¹Ô¤Ë£±£°¸Ä¤º¤Ä¡¢¹ç·×£¹£°¸Ä½ÐÎϤ¹¤ë # £²¡¢¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë # # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢£·¤Ç³ä¤Ã¤¿¤È¤­¡Ö£²Í¾¤é¤Ê¤¤¿ô¡×¤òµá¤á¤Æ²¼¤µ¤¤¡£ £±¡¢½ÐÎϤϾ®¤µ¤¤½ç¤Ë¡¢¤«¤Ä£±¹Ô¤Ë£±£°¸Ä¤º¤Ä¡¢¹ç·×£¹£°¸Ä½ÐÎϤ¹¤ë £²¡¢¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë' :- between(1,90,_¸Ä), '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢'(_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô), '£·¤Ç³ä¤Ã¤¿¤È¤­¡Ö£²Í¾¤é¤Ê¤¤¿ô¡×¤òµá¤á¤Æ²¼¤µ¤¤¡£'(_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô,_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç£·¤Ç³ä¤Ã¤¿¤È¤­£²Í¾¤é¤Ê¤¤¿ô), '£±¡¢½ÐÎϤϾ®¤µ¤¤½ç¤Ë¡¢¤«¤Ä£±¹Ô¤Ë£±£°¸Ä¤º¤Ä¡¢¹ç·×£¹£°¸Ä½ÐÎϤ¹¤ë £²¡¢¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë'(_¸Ä,_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç£·¤Ç³ä¤Ã¤¿¤È¤­£²Í¾¤é¤Ê¤¤¿ô), _¸Ä = 90. '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢'(_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô) :- '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢'(1,_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô). '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢'(_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô,_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô) :- 0 is _£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô mod 3. '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢'(_¼«Á³¿ô_1,_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô) :- _¼«Á³¿ô_2 is _¼«Á³¿ô_1 + 1, '£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô¤ÎÃæ¤Ç¡¢'(_¼«Á³¿ô_2,_£³¤Ç³ä¤êÀÚ¤ì¤ë¿ô¤Î¼«Á³¿ô). '£·¤Ç³ä¤Ã¤¿¤È¤­¡Ö£²Í¾¤é¤Ê¤¤¿ô¡×¤òµá¤á¤Æ²¼¤µ¤¤¡£'(_¿ô,_£·¤Ç³ä¤Ã¤¿¤È¤­£²Í¾¤é¤Ê¤¤¿ô). \+(2 is _¿ô mod 7). '£±¡¢½ÐÎϤϾ®¤µ¤¤½ç¤Ë¡¢¤«¤Ä£±¹Ô¤Ë£±£°¸Ä¤º¤Ä¡¢¹ç·×£¹£°¸Ä½ÐÎϤ¹¤ë £²¡¢¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë'(_¸Ä,_¿ô) :- '¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë'(_¸Ä). '£±¡¢½ÐÎϤϾ®¤µ¤¤½ç¤Ë¡¢¤«¤Ä£±¹Ô¤Ë£±£°¸Ä¤º¤Ä¡¢¹ç·×£¹£°¸Ä½ÐÎϤ¹¤ë £²¡¢¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë'(_¸Ä,_¿ô) :- 0 is _¸Ä¿ô mod 10, writef(' %t\n',[_¿ô]). '£±¡¢½ÐÎϤϾ®¤µ¤¤½ç¤Ë¡¢¤«¤Ä£±¹Ô¤Ë£±£°¸Ä¤º¤Ä¡¢¹ç·×£¹£°¸Ä½ÐÎϤ¹¤ë £²¡¢¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë'(_¸Ä,_¿ô) :- \+(0 is _¸Ä¿ô mod 10), writef(' %t',[_¿ô]). '¹Ô¤ÎÀèÆ¬¤Ë¤Ï¡¢¹ÔÈÖ¹æ¡Ê£±¤«¤é¥¹¥¿¡¼¥È¡Ë¤È¥³¥í¥ó¡Ê:¡Ë¤ò½ÐÎϤ¹¤ë'(_¸Ä) :- 1 is _¸Ä mod 10, _¹Ô is (_¸Ä // 10) + 1, writef('%t:',[_¹Ô]), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/785 # # Í¿¤¨¤é¤ì¤¿¼«Á³¿ôn¤ò¾å²ó¤ë2¤ÎÑѤòÊÖ¤¹´Ø¿ô¤ò¤Ê¤ë¤Ù¤¯ºÇû½èÍý¤Ë¤Ê¤ë¤è¤¦¤Ë¼«ºî¤·¤Æ¤¯¤À¤µ¤¤ # ½ÉÂꤸ¤ã¤Ê¤¤¤Î¤Ç´ü¸Â¤ÏÌ䤤¤Þ¤»¤ó # Îã¡§ # n=1 ¢ª 1 # n=2 ¢ª 2 # n=3 ¢ª 4 # n=6 ¢ª 8 # n=300 ¢ª 512 # # Í¿¤¨¤é¤ì¤¿¼«Á³¿ôn¤ò¾å²ó¤ë2¤ÎÑѤòÊÖ¤¹(_n,_2¤ÎÑÑ) :- between(0,_n,_ÑÑ), _2¤ÎÑÑ is 2 ^ _ÑÑ, _2¤ÎÑÑ > _n,!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ÌÜɸ_1¤ÈÌÜɸ_2¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤ë¡£ # ÌÜɸ_1¤ÈÌÜɸ_2¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤ë(_¸Â³¦ÅÙ¿ô,_ÌÜɸ_1,_ÌÜɸ_2) :- forall_n(_¸Â³¦ÅÙ¿ô,_ÌÜɸ_1,_ÌÜɸ_2). forall_n(_¸Â³¦ÅÙ¿ô,_ÌÜɸ_1,_ÌÜɸ_2) :- message_queue_create(_¥­¥å¡¼ÈÖ¹æ), ( thread_create(ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ),_,[]); forall(( thread_get_message(_¥­¥å¡¼ÈÖ¹æ,_¹à), ( _¹à = 0,!,fail;call(_ÌÜɸ_1))), call(_ÌÜɸ_2)). ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ) :- between(1,_¸Â³¦ÅÙ¿ô,_ÅÙ¿ô), _¾ê; is _ÅÙ¿ô mod ( _¸Â³¦ÅÙ¿ô + 1 ), thread_send_message(_¥­¥å¡¼ÈÖ¹æ,_¾ê;), _ÅÙ¿ô = _¸Â³¦ÅÙ¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ»ØÄꤷ¤¿½¯½¸¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ»ØÄꤷ¤¿½¯½¸¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó) :- findall_n(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó). findall_n(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó) :- message_queue_create(_¥­¥å¡¼ÈÖ¹æ), ( '»Ò¥¹¥ì¥Ã¥É¤Ç¡¢À¸À®¤µ¤ì¤¿ÅÙ¿ô¤ò¡¢¸Â³¦ÅÙ¿ô¤Ë㤷¤¿¤é0¤ò¥­¥å¡¼¤ËÁ÷¤ë'(_¸ÂÅÙÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ); ¥­¥å¡¼¤«¤é¸Â³¦ÅÙ¿ô¤ò¼¨¤¹0¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÌÜɸ¤òÀ®¸ù¤µ¤»¤Æ½¯½¸¹à¤Ê¤é¤Ó¤òÆÀ¤ë(_½¯½¸¹à,_ÌÜɸ,_¥­¥å¡¼ÈÖ¹æ,_½¯½¸¹à¤Ê¤é¤Ó)). ¥­¥å¡¼¤«¤é¸Â³¦ÅÙ¿ô¤ò¼¨¤¹0¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÌÜɸ¤òÀ®¸ù¤µ¤»¤Æ½¯½¸¹à¤Ê¤é¤Ó¤òÆÀ¤ë(_½¯½¸¹à,_ÌÜɸ,_¥­¥å¡¼ÈÖ¹æ,_½¯½¸¹à¤Ê¤é¤Ó) :- findall(_½¯½¸¹à,( thread_get_message(_¥­¥å¡¼ÈÖ¹æ,_¹à), ( _¹à = 0,!,fail;call(_ÌÜɸ))), _½¯½¸¹à¤Ê¤é¤Ó). '»Ò¥¹¥ì¥Ã¥É¤Ç¡¢À¸À®¤µ¤ì¤¿ÅÙ¿ô¤ò¡¢¸Â³¦ÅÙ¿ô¤Ë㤷¤¿¤é0¤ò¥­¥å¡¼¤ËÁ÷¤ë'(_¸ÂÅÙÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ) :- thread_create(ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ),_,[]). ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ) :- between(1,_¸Â³¦ÅÙ¿ô,_ÅÙ¿ô), _¾ê; is _ÅÙ¿ô mod ( _¸Â³¦ÅÙ¿ô + 1 ), thread_send_message(_¥­¥å¡¼ÈÖ¹æ,_¾ê;), _ÅÙ¿ô = _¸Â³¦ÅÙ¿ô. % % Àè¤Ëlength/2Åù¤Ç²ò¤ÎÏȤ¬·è¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¤¬¡¢ % findall/3½Ò¸ì¤À¤È¡¢¤½¤ÎÏȤò̵»ë¤·¤Æ¡¢Á´²ò¤ò½¯½¸¤·¤Æ¡¢ % ¤½¤Î¾å¤ÇÂè»°°ú¿ô¤Î¤Ê¤é¤Ó¤È¤Îñ°ì²½¤ò»î¤ß¤è¤¦¤È¤¹¤ë¡£ % ÌÜɸ¤Î²ò¤¬1000Ëü¸Ä¤È¤¤¤¦¤è¤¦¤Ë¿Î̤ξì¹ç¤Ï¡¢ % ¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬À¸¤¸¤Æ¥¨¥é¡¼¤È¤Ê¤Ã¤Æ½ªÎ»¤¹¤ë¡£ % % ¤³¤ì¤ËÂФ·¤Æ¡¢¤³¤Î½Ò¸ì¤Ï»Ò¥¹¥ì¥Ã¥É¤òºî¤ê½Ð¤·¤Æ¡¢¤³¤³¤Ç % ËÜÍè¤Ï¸½ºß¤Î²ò¿ô¤ò¿ô¤¨¤µ¤»¤Æ¥­¥å¡¼·Ðͳ¤Ç¿Æ¥¹¥ì¥Ã¥É¤Ï % ¤³¤ì¤ò¼õ¿®¤¹¤ë¡£¤³¤Î°Ù¤Ë¤Ï¿Æ¥¹¥ì¥Ã¥É¤«¤é»Ò¥¹¥ì¥Ã¥É¤Ë²ò¤¬ % ¼è¤ì¤¿¤³¤È¤òÁ÷¿®¤¹¤ë¤¿¤á¤Î¥­¥å¡¼¤¬É¬ÍפǤ¢¤ë¤¬¤³¤³¤Ç¤Ï % ¤½¤ì¤ò¾Êά¤·¤¿¡£»Ò¤«¤é¿Æ¤Ø¤ÎÊÒÊý¸þ¤ÎÄÌ¿®¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ % % »Ò¥¹¥ì¥Ã¥É¤Ï1¤«¤é²ò¤Î¸Â³¦¿ô¤Þ¤ÇÀ°¿ô¤ò¥­¥å¡¼¤Ë°ìµ¤¤ËµÍ¤á¡¢ % ¤µ¤é¤Ë¡¢½ªÎ»¤Î¹ç¿Þ¤Ç¤¢¤ë0¤òµÍ¤á¤ë¡£¿Æ¥¹¥ì¥Ã¥É¤ÏÌÜɸ¤¬ % ãÀ®¤µ¤ì¤ëÅ٤˥­¥å¡¼¤«¤é°ì¤ÄÅÙ¿ô¾ðÊó¤ò¼è¤ê½Ð¤¹¡£ % ²ò¤Î¿ô¤¬¸Â³¦¿ô¤Ë㤷¤¿»þ¤Ë»Ò¥¹¥ì¥Ã¥É¤¬´û¤ËÁ÷¿®¤·¤Æ¤¢¤Ã¤¿ % 0¤ò¼õ¿®¤¹¤ë¤³¤È¤Ë¤Ê¤ê¡¢¿Æ¥¹¥ì¥Ã¥É¤Îfindall_n/4¤ÎÌÜɸÆâ¤Î % ¥«¥Ã¥È¤¬È¯Æ°¤µ¤ì¤Æ¶¯À©Åª¤Ëfindall_n/4¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤¬ % ¤Ç¤­¤ë¡£ % % ¤³¤³¤Ç¤Ïfindall/3¤òÂоݤˤ·¤Æ¤¤¤ë¤¬setof/3¤äbagof/3¤â % Á´¤¯Æ±ÍͤÎÌäÂ꤬¤¢¤ë¤·¡¢²ò·èºö¤âƱ¤¸¤Ç¤¢¤ë¡£ % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ¤½¤Î¹à¤ò¥ê¥¹¥È¤È¤·¤ÆÆÀ¤ë # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ¤½¤Î¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë(_¸Â³¦ÅÙ¿ô,_ÌÜɸ,_ÌÜɸ¤Ê¤é¤Ó) :- findall_n(_¸Â³¦ÅÙ¿ô,_ÌÜɸ,_ÌÜɸ¤Ê¤é¤Ó). findall_n(_¸Â³¦ÅÙ¿ô,_ÌÜɸ,_ÌÜɸ¤Ê¤é¤Ó) :- message_queue_create(_¥­¥å¡¼ÈÖ¹æ), ( thread_create(ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ),_,[]); findnall(_ÌÜɸ,( thread_get_message(_¥­¥å¡¼ÈÖ¹æ,_¹à), ( _¹à = 0,!,fail;call(_ÌÜɸ))), _ÌÜɸ¤Ê¤é¤Ó)). ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ) :- between(1,_¸Â³¦ÅÙ¿ô,_ÅÙ¿ô), _¾ê; is _ÅÙ¿ô mod ( _¸Â³¦ÅÙ¿ô + 1 ), thread_send_message(_¥­¥å¡¼ÈÖ¹æ,_¾ê;), _ÅÙ¿ô = _¸Â³¦ÅÙ¿ô. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ»ØÄꤷ¤¿½¯½¸¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ»ØÄꤷ¤¿½¯½¸¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó) :- findall_n(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó). findall_n(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó) :- message_queue_create(_¥­¥å¡¼ÈÖ¹æ), ( thread_create(ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ),_,[]); findall(_½¯½¸¹à,( call(_ÌÜɸ), thread_get_message(_¥­¥å¡¼ÈÖ¹æ,_¹à), ( _¹à = 0,!,fail;true)), _½¯½¸¹à¤Ê¤é¤Ó)). ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ) :- between(1,_¸Â³¦ÅÙ¿ô,_ÅÙ¿ô), _¾ê; is _ÅÙ¿ô mod ( _¸Â³¦ÅÙ¿ô + 1 ), thread_send_message(_¥­¥å¡¼ÈÖ¹æ,_¾ê;), _ÅÙ¿ô = _¸Â³¦ÅÙ¿ô. % % Àè¤Ëlength/2Åù¤Ç²ò¤ÎÏȤ¬·è¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¤¬¡¢ % findall/3½Ò¸ì¤À¤È¡¢¤½¤ÎÏȤò̵»ë¤·¤Æ¡¢Á´²ò¤ò½¯½¸¤·¤Æ¡¢ % ¤½¤Î¾å¤ÇÂè»°°ú¿ô¤Î¤Ê¤é¤Ó¤È¤Îñ°ì²½¤ò»î¤ß¤è¤¦¤È¤¹¤ë¡£ % ÌÜɸ¤Î²ò¤¬1000Ëü¸Ä¤È¤¤¤¦¤è¤¦¤Ë¿Î̤ξì¹ç¤Ï¡¢ % ¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬À¸¤¸¤Æ¥¨¥é¡¼¤È¤Ê¤Ã¤Æ½ªÎ»¤¹¤ë¡£ % % ¤³¤ì¤ËÂФ·¤Æ¡¢¤³¤Î½Ò¸ì¤Ï»Ò¥¹¥ì¥Ã¥É¤òºî¤ê½Ð¤·¤Æ¡¢¤³¤³¤Ç % ËÜÍè¤Ï¸½ºß¤Î²ò¿ô¤ò¿ô¤¨¤µ¤»¤Æ¥­¥å¡¼·Ðͳ¤Ç¿Æ¥¹¥ì¥Ã¥É¤Ï % ¤³¤ì¤ò¼õ¿®¤¹¤ë¡£¤³¤Î°Ù¤Ë¤Ï¿Æ¥¹¥ì¥Ã¥É¤«¤é»Ò¥¹¥ì¥Ã¥É¤Ë²ò¤¬ % ¼è¤ì¤¿¤³¤È¤òÁ÷¿®¤¹¤ë¤¿¤á¤Î¥­¥å¡¼¤¬É¬ÍפǤ¢¤ë¤¬¤³¤³¤Ç¤Ï % ¤½¤ì¤ò¾Êά¤·¤¿¡£»Ò¤«¤é¿Æ¤Ø¤ÎÊÒÊý¸þ¤ÎÄÌ¿®¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ % % »Ò¥¹¥ì¥Ã¥É¤Ï1¤«¤é²ò¤Î¸Â³¦¿ô¤Þ¤ÇÀ°¿ô¤ò¥­¥å¡¼¤Ë°ìµ¤¤ËµÍ¤á¡¢ % ¤µ¤é¤Ë¡¢½ªÎ»¤Î¹ç¿Þ¤Ç¤¢¤ë0¤òµÍ¤á¤ë¡£¿Æ¥¹¥ì¥Ã¥É¤ÏÌÜɸ¤¬ % ãÀ®¤µ¤ì¤ëÅ٤˥­¥å¡¼¤«¤é°ì¤ÄÅÙ¿ô¾ðÊó¤ò¼è¤ê½Ð¤¹¡£ % ²ò¤Î¿ô¤¬¸Â³¦¿ô¤Ë㤷¤¿»þ¤Ë»Ò¥¹¥ì¥Ã¥É¤¬´û¤ËÁ÷¿®¤·¤Æ¤¢¤Ã¤¿ % 0¤ò¼õ¿®¤¹¤ë¤³¤È¤Ë¤Ê¤ê¡¢¿Æ¥¹¥ì¥Ã¥É¤Îfindall_n/4¤ÎÌÜɸÆâ¤Î % ¥«¥Ã¥È¤¬È¯Æ°¤µ¤ì¤Æ¶¯À©Åª¤Ëfindall_n/4¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤¬ % ¤Ç¤­¤ë¡£ % % ¤³¤³¤Ç¤Ïfindall/3¤òÂоݤˤ·¤Æ¤¤¤ë¤¬setof/3¤äbagof/3¤â % Á´¤¯Æ±ÍͤÎÌäÂ꤬¤¢¤ë¤·¡¢²ò·èºö¤âƱ¤¸¤Ç¤¢¤ë¡£ % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ»ØÄꤷ¤¿½¯½¸¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë # ÌÜɸ¤ò¸Â³¦ÅÙ¿ôÀ®¸ù¤µ¤»¤Æ»ØÄꤷ¤¿½¯½¸¹à¤ò¤Ê¤é¤Ó¤È¤·¤ÆÆÀ¤ë(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó) :- findall_n(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó). findall_n(_¸Â³¦ÅÙ¿ô,_½¯½¸¹à,_ÌÜɸ,_½¯½¸¹à¤Ê¤é¤Ó) :- message_queue_create(_¥­¥å¡¼ÈÖ¹æ), ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ), findall(_½¯½¸¹à,( thread_get_message(_¥­¥å¡¼ÈÖ¹æ,_¹à), ( _¹à = 0,!,fail;call(_ÌÜɸ))), _½¯½¸¹à¤Ê¤é¤Ó). ÅÙ¿ô(_¸Â³¦ÅÙ¿ô,_¥­¥å¡¼ÈÖ¹æ) :- between(1,_¸Â³¦ÅÙ¿ô,_ÅÙ¿ô), _¾ê; is _ÅÙ¿ô mod ( _¸Â³¦ÅÙ¿ô + 1 ), thread_send_message(_¥­¥å¡¼ÈÖ¹æ,_¾ê;), _ÅÙ¿ô = _¸Â³¦ÅÙ¿ô. % % ?- length(L,4),findall(N,between(1,10000000,N),L). % false. % 1000ËüÍ×ÁǤÈ4Í×ÁǤΥꥹ¥È¤Îñ°ì²½¡£¤³¤Î·ëÏÀ¤òÆÀ¤ë¤Þ¤Ç¤Ë¿ôÉäòÍפ¹¤ë¡£ % % ?- length(L,4),findall_n(4,N,between(1,10000000,N),L). % L = [1,2,3,4] % % ?- length(L,4),findall_n(5,N,between(1,10000000,N),L). % false. % % ?- length(L,4),findall_n(5,N,between(1,4,N),L). % L = [1,2,3,4] % % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/782 # # ÆÉ¤ß¹þ¤àini¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó̾¤ò¡¢stringÇÛÎó¤Ëpush¤·Â³¤±¤Æ¡¢ # ¥»¥¯¥·¥ç¥ó̾¤¹¤Ù¤Æpush¤·¤¿¤é¥ë¡¼¥×¤«¤é³°¤ì¤ë¤Ã¤Æ»ÅÁȤߤʤó¤Ç¤¹¤±¤É¡¢tmp = strtok_s()¤ÎÂåÆþ¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó # ¤É¤¦¤·¤¿¤é¤¤¤¤¤Ç¤¹¤« # # char SectionNames[1024]; # GetPrivateProfileSectionNames(SectionNames,1024,FilePath.c_str()); # # char *WTF;//Ææ¤ÎÆâÉô¥Ñ¥é¥á¡¼¥¿,strtok_s¤Î»ÅÍÍ # vector<string> SquadNameList; # SquadNameList.push_back(strtok_s( SectionNames, "0" ,&WTF)); # # for(int i=0; i < SquadNameList.size();i++){ # char tmp[256]; # tmp = strtok_s( NULL, "0" ,&WTF); # if( tmp != NULL){ # SquadNameList.push_back(tmp); # } # } # # 'ÆÉ¤ß¹þ¤àini¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó̾¤ò¡¢stringÇÛÎó¤Ëpush¤·Â³¤±¤Æ¡¢ ¥»¥¯¥·¥ç¥ó̾¤¹¤Ù¤Æpush¤·¤¿¤é¥ë¡¼¥×¤«¤é³°¤ì¤ë¤Ã¤Æ»ÅÁȤߤʤó¤Ç¤¹¤±¤É¡¢ tmp = strtok_s()¤ÎÂåÆþ¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó¤É¤¦¤·¤¿¤é¤¤¤¤¤Ç¤¹¤«'(_ini¥Õ¥¡¥¤¥ë,_¥»¥¯¥·¥ç¥ó̾¤Ê¤é¤Ó) :- ÆÉ¤ß¹þ¤àini¥Õ¥¡¥¤¥ë¤Î(_ini¥Õ¥¡¥¤¥ë,_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó), '¥»¥¯¥·¥ç¥ó̾¤ò¡¢stringÇÛÎó¤Ëpush¤·Â³¤±¤Æ¡¢¥»¥¯¥·¥ç¥ó̾¤¹¤Ù¤Æpush¤·¤¿¤é¥ë¡¼¥×¤«¤é³°¤ì¤ë'(_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó,[],_¥»¥¯¥·¥ç¥ó̾¤Ê¤é¤Ó). ÆÉ¤ß¹þ¤àini¥Õ¥¡¥¤¥ë¤Î(_ini¥Õ¥¡¥¤¥ë,_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó) :- get_chars(_ini¥Õ¥¡¥¤¥ë,_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó). '¥»¥¯¥·¥ç¥ó̾¤ò¡¢stringÇÛÎó¤Ëpush¤·Â³¤±¤Æ¡¢¥»¥¯¥·¥ç¥ó̾¤¹¤Ù¤Æpush¤·¤¿¤é¥ë¡¼¥×¤«¤é³°¤ì¤ë'(_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó,L1,_¥»¥¯¥·¥ç¥ó̾¤Ê¤é¤Ó) :- ¥»¥¯¥·¥ç¥ó̾¤ò(_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó,_¥»¥¯¥·¥ç¥ó̾,_¥»¥¯¥·¥ç¥ó̾¸å¤Îʸ»ú¤Ê¤é¤Ó), '¥»¥¯¥·¥ç¥ó̾¤ò¡¢stringÇÛÎó¤Ëpush¤·Â³¤±¤Æ¡¢¥»¥¯¥·¥ç¥ó̾¤¹¤Ù¤Æpush¤·¤¿¤é¥ë¡¼¥×¤«¤é³°¤ì¤ë'(_¥»¥¯¥·¥ç¥ó̾¸å¤Îʸ»ú¤Ê¤é¤Ó,[_¥»¥¯¥·¥ç¥ó̾|L1],_¥»¥¯¥·¥ç¥ó̾¤Ê¤é¤Ó). '¥»¥¯¥·¥ç¥ó̾¤ò¡¢stringÇÛÎó¤Ëpush¤·Â³¤±¤Æ¡¢¥»¥¯¥·¥ç¥ó̾¤¹¤Ù¤Æpush¤·¤¿¤é¥ë¡¼¥×¤«¤é³°¤ì¤ë'(_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó,_¥»¥¯¥·¥ç¥ó̾¤Ê¤é¤Ó,_¥»¥¯¥·¥ç¥ó̾¤Ê¤é¤Ó). ¥»¥¯¥·¥ç¥ó̾¤ò(_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó,_¥»¥¯¥·¥ç¥ó̾,_¥»¥¯¥·¥ç¥ó̾¸å¤Îʸ»ú¤Ê¤é¤Ó) :- append(L0,['['|_¥»¥¯¥·¥ç¥ó̾¤«¤é¤Îʸ»ú¤Ê¤é¤Ó],_ini¥Õ¥¡¥¤¥ëʸ»ú¤Ê¤é¤Ó), 'L0¤Ë[¤â]¤â¸ºß¤·¤Ê¤¤'(L0), append(L0_1,[']'|_¥»¥¯¥·¥ç¥ó̾¸å¤Îʸ»ú¤Ê¤é¤Ó],_¥»¥¯¥·¥ç¥ó̾¤«¤é¤Îʸ»ú¤Ê¤é¤Ó), 'L0_1¤Ë]¤¬Â¸ºß¤·¤Ê¤¤'(_¥»¥¯¥·¥ç¥ó̾¸å¤Îʸ»ú¤Ê¤é¤Ó), atom_chars(_¥»¥¯¥·¥ç¥ó̾,_¥»¥¯¥·¥ç¥ó̾¸å¤Îʸ»ú¤Ê¤é¤Ó). 'L0¤Ë[¤â]¤â¸ºß¤·¤Ê¤¤'(L0) :- \+(member('[',L0)), \+(member(']',L0)),!. 'L0_1¤Ë]¤¬Â¸ºß¤·¤Ê¤¤'(L0_1) :- \+(member(']',L0_1)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¤ªÂê¡§À°¿ôƱ»Î¤Î³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à # À°¿ôƱ»Î¤Î³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø¤òɽ¼¨¤¹¤ë(_À°¿ô_1,_À°¿ô_2) :- ¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹(_À°¿ô_1,_À°¿ô_2,_À°¿ô¤Ê¤é¤Ó_1,_À°¿ô¤Ê¤é¤Ó_2), ³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø¤òɽ¼¨¤¹¤ë(_À°¿ô¤Ê¤é¤Ó_1,_À°¿ô¤Ê¤é¤Ó_2). ¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹(_À°¿ô_1,_À°¿ô_2,_À°¿ô¤Ê¤é¤Ó_1,_À°¿ô¤Ê¤é¤Ó_2) :- number_chars(_À°¿ô_1,Chars_1), number_chars(_À°¿ô_2,Chars_2), ¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹(Chars_1,_À°¿ô¤Ê¤é¤Ó_1), ¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹(Chars_2,_À°¿ô¤Ê¤é¤Ó_2). ¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹([],[]). ¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹([A|R1],[N|R2]) :- atom_number(A,N), ¿ô»ú¤Ê¤é¤Ó¤ò¿ôÃͤʤé¤Ó¤ËÊÑ´¹(R1,R2). ³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø¤òɽ¼¨¤¹¤ë(_À°¿ô¤Ê¤é¤Ó_1,_À°¿ô¤Ê¤é¤Ó_2) :- reverse(_À°¿ô¤Ê¤é¤Ó_1,_ȿž¤·¤¿À°¿ô¤Ê¤é¤Ó_1), reverse(_À°¿ô¤Ê¤é¤Ó_2,_ȿž¤·¤¿À°¿ô¤Ê¤é¤Ó_2), '³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø(²¼¤Î·å¤«¤é³Ý¤±¤ë)¤òɽ¼¨¤¹¤ë'(0,_ȿž¤·¤¿À°¿ô¤Ê¤é¤Ó_1,_ȿž¤·¤¿À°¿ô¤Ê¤é¤Ó_2,_Á°Ãʤοô¤Ê¤é¤Ó), ³Æ·å¤Î²Ã»»¤òɽ¼¨¤¹¤ë(_Á´Ãʤοô¤Ê¤é¤Ó). '³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø(²¼¤Î·å¤«¤é³Ý¤±¤ë)¤òɽ¼¨¤¹¤ë'(_,_,[],[]). '³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø(²¼¤Î·å¤«¤é³Ý¤±¤ë)¤òɽ¼¨¤¹¤ë'(_n,L1,[_m|R2],[L2|R4]) :- ¾è¿ô¤¬n·åÌܤγݻ»(_n,_m,L1,L2), '³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø¤Îɽ¼¨'(_n,_m,L1,L2), _n_2 is _n + 1, '³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø(²¼¤Î·å¤«¤é³Ý¤±¤ë)¤òɽ¼¨¤¹¤ë'(_n_2,L1,R2,R4). '³Ý¤±»»¤ÎÉ®»»¤Î·×»»²áÄø¤Îɽ¼¨'(_n,_m,L1,L2) :- reverse(L1,L1_2), atomic_list_concat(L1_2,S1), reverse(L2,L2_2), atomic_list_concat(L2_2,S2), writef('%t¡ß%t=% t ... (%t)\n',[S1,_m,S,_n2]). ¾è¿ô¤¬n·åÌܤγݻ»(_n,_m,L1,L2) :- length(L4,_n), all(L4,0), append(L4,L1,L1_2), Ãʤγݻ»(_m,L1_2,0,[],L2),!. Ãʤγݻ»(_,[],0,L,L) :- !. Ãʤγݻ»(_,[],C,L1,[C|L1]) :- !. Ãʤγݻ»(M,[N|R2],C,L3,L) :- ¶å¶å³Ý»»(M,N,N1,N2), D is (N1 * 10 + C + N2) // 10, M2 is (C + N2) mod 10, Ãʤγݻ»(M,R2,D,[M2|L3],L). ³Æ·å¤Î²Ã»»¤òɽ¼¨¤¹¤ë(_Á´Ãʤοô¤Ê¤é¤Ó) :- Á´ÃʤòµÕ½ç¤ËÊ¤Ùľ¤¹(_Á´Ãʤοô¤Ê¤é¤Ó,_µÕ½ç¤ÎÁ´Ãʤοô¤Ê¤é¤Ó), length(_Á´Ãʤοô¤Ê¤é¤Ó,Len), ³Æ·å¤Î²Ã»»¤òɽ¼¨¤¹¤ë(_µÕ½ç¤ÎÁ´Ãʤοô¤Ê¤é¤Ó,Len,0). ³Æ·å¤Î²Ã»»¤òɽ¼¨¤¹¤ë([],Len,S) :- findall(S,( between(1,Len,N), swritef(S,'(%w)',[N])), L), atomic_list_concat(L,'+',S1), writef('%w=%w\n',[S1,S]),!. ³Æ·å¤Î²Ã»»¤òɽ¼¨¤¹¤ë(_µÕ½ç¤ÎÁ´Ãʤοô¤Ê¤é¤Ó,Len,S) :- ²¼¤Î·å¤«¤é²Ã»»¤¹¤ë(_µÕ½ç¤ÎÁ°Ãʤοô¤Ê¤é¤Ó,0,S1,R2), ³Æ·å¤Î²Ã»»¤òɽ¼¨¤¹¤ë(R2,Len,S1). Á´ÃʤòµÕ½ç¤ËÊ¤Ùľ¤¹([],[]). Á´ÃʤòµÕ½ç¤ËÊ¤Ùľ¤¹([L1|R1],[L2|R2]) :- reverse(L1,L2), Á´ÃʤòµÕ½ç¤ËÊ¤Ùľ¤¹(R1,R2). ²¼¤Î·å¤«¤é²Ã»»¤¹¤ë([],S,S,[]). ²¼¤Î·å¤«¤é²Ã»»¤¹¤ë([[M|R1_1]|R1],S1,S,[R1_1|R2]) :- S2 is S1 + M, ²¼¤Î·å¤«¤é²Ã»»¤¹¤ë(R,S2,S,R2),!. ²¼¤Î·å¤«¤é²Ã»»¤¹¤ë([[]|R1],S1,S,R2) :- ²¼¤Î·å¤«¤é²Ã»»¤¹¤ë(R,S1,S,R2). ¶å¶å³Ý»»(M,N,X_1,X_2) :- length(L1,M), length(L2,N), append(L1,L2,L3), ¤Ê¤é¤Ó¤Î³ä¤ê»»(L3,[_,_,_,_,_,_,_,_,_,_],L4,L5), length(L4,X_1), length(L5,X_2). ¶å¶å³Ý»»(0,0,0,0). ¶å¶å³Ý»»(0,1,0,0). ¶å¶å³Ý»»(0,2,0,0). ¶å¶å³Ý»»(0,3,0,0). ¶å¶å³Ý»»(0,4,0,0). ¶å¶å³Ý»»(0,5,0,0). ¶å¶å³Ý»»(0,6,0,0). ¶å¶å³Ý»»(0,7,0,0). ¶å¶å³Ý»»(0,8,0,0). ¶å¶å³Ý»»(0,9,0,0). ¶å¶å³Ý»»(1,0,0,0). ¶å¶å³Ý»»(1,1,0,1). ¶å¶å³Ý»»(1,2,0,2). ¶å¶å³Ý»»(1,3,0,3). ¶å¶å³Ý»»(1,4,0,4). ¶å¶å³Ý»»(1,5,0,5). ¶å¶å³Ý»»(1,6,0,6). ¶å¶å³Ý»»(1,7,0,7). ¶å¶å³Ý»»(1,8,0,8). ¶å¶å³Ý»»(1,9,0,9). ¶å¶å³Ý»»(2,0,0,0). ¶å¶å³Ý»»(2,1,0,2). ¶å¶å³Ý»»(2,2,0,4). ¶å¶å³Ý»»(2,3,0,6). ¶å¶å³Ý»»(2,4,0,8). ¶å¶å³Ý»»(2,5,1,0). ¶å¶å³Ý»»(2,6,1,2). ¶å¶å³Ý»»(2,7,1,4). ¶å¶å³Ý»»(2,8,1,6). ¶å¶å³Ý»»(2,9,1,8). ¶å¶å³Ý»»(3,0,0,0). ¶å¶å³Ý»»(3,1,0,3). ¶å¶å³Ý»»(3,2,0,6). ¶å¶å³Ý»»(3,3,0,9). ¶å¶å³Ý»»(3,4,1,2). ¶å¶å³Ý»»(3,5,1,5). ¶å¶å³Ý»»(3,6,1,8). ¶å¶å³Ý»»(3,7,2,1). ¶å¶å³Ý»»(3,8,2,4). ¶å¶å³Ý»»(3,9,2,7). ¶å¶å³Ý»»(4,0,0,0). ¶å¶å³Ý»»(4,1,0,4). ¶å¶å³Ý»»(4,2,0,8). ¶å¶å³Ý»»(4,3,1,2). ¶å¶å³Ý»»(4,4,1,6). ¶å¶å³Ý»»(4,5,2,0). ¶å¶å³Ý»»(4,6,2,4). ¶å¶å³Ý»»(4,7,2,8). ¶å¶å³Ý»»(4,8,3,2). ¶å¶å³Ý»»(4,9,3,6). ¶å¶å³Ý»»(5,0,0,0). ¶å¶å³Ý»»(5,1,0,5). ¶å¶å³Ý»»(5,2,1,0). ¶å¶å³Ý»»(5,3,1,5). ¶å¶å³Ý»»(5,4,2,0). ¶å¶å³Ý»»(5,5,2,5). ¶å¶å³Ý»»(5,6,3,0). ¶å¶å³Ý»»(5,7,3,5). ¶å¶å³Ý»»(5,8,4,0). ¶å¶å³Ý»»(5,9,4,5). ¶å¶å³Ý»»(6,0,0,0). ¶å¶å³Ý»»(6,1,0,6). ¶å¶å³Ý»»(6,2,1,2). ¶å¶å³Ý»»(6,3,1,8). ¶å¶å³Ý»»(6,4,2,4). ¶å¶å³Ý»»(6,5,3,0). ¶å¶å³Ý»»(6,6,3,6). ¶å¶å³Ý»»(6,7,4,2). ¶å¶å³Ý»»(6,8,4,8). ¶å¶å³Ý»»(6,9,5,4). ¶å¶å³Ý»»(7,0,0,0). ¶å¶å³Ý»»(7,1,0,7). ¶å¶å³Ý»»(7,2,1,4). ¶å¶å³Ý»»(7,3,2,1). ¶å¶å³Ý»»(7,4,2,8). ¶å¶å³Ý»»(7,5,3,5). ¶å¶å³Ý»»(7,6,4,2). ¶å¶å³Ý»»(7,7,4,9). ¶å¶å³Ý»»(7,8,5,6). ¶å¶å³Ý»»(7,9,6,3). ¶å¶å³Ý»»(8,0,0,0). ¶å¶å³Ý»»(8,1,0,8). ¶å¶å³Ý»»(8,2,1,6). ¶å¶å³Ý»»(8,3,2,4). ¶å¶å³Ý»»(8,4,3,2). ¶å¶å³Ý»»(8,5,4,0). ¶å¶å³Ý»»(8,6,4,8). ¶å¶å³Ý»»(8,7,5,6). ¶å¶å³Ý»»(8,8,6,4). ¶å¶å³Ý»»(8,9,7,2). ¶å¶å³Ý»»(9,0,0,0). ¶å¶å³Ý»»(9,1,0,9). ¶å¶å³Ý»»(9,2,1,8). ¶å¶å³Ý»»(9,3,2,7). ¶å¶å³Ý»»(9,4,3,6). ¶å¶å³Ý»»(9,5,4,5). ¶å¶å³Ý»»(9,6,5,4). ¶å¶å³Ý»»(9,7,6,3). ¶å¶å³Ý»»(9,8,7,2). ¶å¶å³Ý»»(9,9,8,1). all([],0). all([A|R],A) :- all(R,A). ¤Ê¤é¤Ó¤Î³ä¤ê»»([],_,[],[]) :- !. ¤Ê¤é¤Ó¤Î³ä¤ê»»(_Èï½ü»»¹à,_½ü»»¹à,[_|_R3],_¾ê;¹à) :- length(_½ü»»¹à,N), length(_½ü»»¹à_2,N), append(_½ü»»¹à_2,R,_Èï½ü»»¹à), ¤Ê¤é¤Ó¤Î³ä¤ê»»(R,_½ü»»¹à_2,_R3,_¾ê;¹à),!. ¤Ê¤é¤Ó¤Î³ä¤ê»»(L,_,[],_¾ê;¹à) :- length(L,N), length(_¾ê;¹à,N),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¤ªÂê¡§100°Ê²¼¤Î¼«Á³¿ô¤Ç¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # '100°Ê²¼¤Î¼«Á³¿ô¤Ç¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤ò¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£' :- '100¤Þ¤Ç¤ÎÁÇ¿ô¤ò¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ¤Çµá¤á¤ë'(_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó), '100°Ê²¼¤Î¼«Á³¿ô¤Ç¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤ò'(_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó,_¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó), '¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£'(_¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó). '100°Ê²¼¤Î¼«Á³¿ô¤Ç¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤ò'(_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó,_¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó) :- findall(_100¤Þ¤Ç¤Î¼«Á³¿ô,( '100°Ê²¼¤Î¼«Á³¿ô¤Ç'(_100°Ê²¼¤Î¼«Á³¿ô), ¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô(_100¤Þ¤Ç¤Î¼«Á³¿ô,_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó)), _¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó). '100°Ê²¼¤Î¼«Á³¿ô¤Ç'(_100°Ê²¼¤Î¼«Á³¿ô) :- between(1,100,_100°Ê²¼¤Î¼«Á³¿ô). ¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô(_100°Ê²¼¤Î¼«Á³¿ô,_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- Áȹ礻(_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó,2,[_ÁÇ¿ô_1,_ÁÇ¿ô_2]), _100°Ê²¼¤Î¼«Á³¿ô is _ÁÇ¿ô_1 * _ÁÇ¿ô_2,!. '¾º½ç¤Ë¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£'(_¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó) :- sort(_¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó,_À°Îó¤·¤¿¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó), atomic_list_concat(_À°Îó¤·¤¿¤Õ¤¿¤Ä¤ÎÁÇ¿ô¤ÎÀѤÇɽ¤»¤ë¿ô¤Ê¤é¤Ó,' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '100¤Þ¤Ç¤ÎÁÇ¿ô¤ò¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ¤Çµá¤á¤ë'(_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(N,between(2,100,N),L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_100¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ÉÄ»ú¤òn¿Íʬºî¤ë(_n,_ÉÄ»ú¤Ê¤é¤Ó) :- findall([_ÉÄ»ú,_10000¿ÍÃæ¤Î¿Í¿ô],( ÉÄ»ú¤È10000¿ÍÃæ¤Î¿Í¿ô¤òÆÀ¤ë(_ÉÄ»ú,_10000¿ÍÃæ¤Î¿Í¿ô)), LL1). ÉÄ»úʬÉۤʤé¤Ó¤ËÊÑ´¹¤¹¤ë(LL1,0,LL2), length(_ÉÄ»ú¤Ê¤é¤Ó,_n), ÉÄ»ú¤Ê¤é¤Ó¤Ën¿Íʬ¤ÎÉÄ»ú¤òËä¤á¤ë(LL2,_ÉÄ»ú¤Ê¤é¤Ó). ÉÄ»ú¤È10000¿ÍÃæ¤Î¿Í¿ô¤òÆÀ¤ë(_ÉÄ»ú,_10000¿ÍÃæ¤Î¿Í¿ô) :- ÉÄ»ú(_ÉÄ»ú,_½Ð¸½ÈæÎ¨), _10000¿ÍÃæ¤Î¿Í¿ô is truncate(_½Ð¸½ÈæÎ¨ * 10000). ÉÄ»úʬÉۤʤé¤Ó¤ËÊÑ´¹¤¹¤ë([],_,[]). ÉÄ»úʬÉۤʤé¤Ó¤ËÊÑ´¹¤¹¤ë([[_ÉÄ»ú,N]|R1],M,[[_ÉÄ»ú,M,M_2]|R2]) :- M_2 is M + N, ÉÄ»úʬÉۤʤé¤Ó¤ËÊÑ´¹¤¹¤ë(R1,M_2,R2). ÉÄ»ú¤Ê¤é¤Ó¤Ën¿Íʬ¤ÎÉÄ»ú¤òËä¤á¤ë(_,[]). ÉÄ»ú¤Ê¤é¤Ó¤Ën¿Íʬ¤ÎÉÄ»ú¤òËä¤á¤ë(LL2,[A|R]) :- ÉÄ»ú¤òÆÀ¤ë(LL2,_ÉÄ»ú), ÉÄ»ú¤Ê¤é¤Ó¤Ën¿Íʬ¤ÎÉÄ»ú¤òËä¤á¤ë(LL2,R),!. ÉÄ»ú¤Ê¤é¤Ó¤Ën¿Íʬ¤ÎÉÄ»ú¤òËä¤á¤ë(LL2,L) :- ÉÄ»ú¤Ê¤é¤Ó¤Ën¿Íʬ¤ÎÉÄ»ú¤òËä¤á¤ë(LL2,L). ÉÄ»ú¤òÆÀ¤ë(LL2,_ÉÄ»ú) :- _Íð¿ô is random(10000), member([A,B,C],LL2), between(B,C,_Íð¿ô). % *** user: 'ÉÄ»ú' / 2 *** ÉÄ»ú(º´Æ£,0.0227). ÉÄ»ú(¹â¶¶,0.0164). ÉÄ»ú(°ËÆ£,0.0124). ÉÄ»ú(ÅÏÊÕ,0.0121). ÉÄ»ú(¾®ÎÓ,0.0118). ÉÄ»ú(µÈÅÄ,0.0093). ÉÄ»ú(º´¡¹ÌÚ,0.0084). ÉÄ»ú(¾¾ËÜ,0.0071). ÉÄ»ú(ÌÚ¼,0.0065). ÉÄ»ú(ºØÆ£,0.0061). ÉÄ»ú(»³ºê,0.0055). ÉÄ»ú(¿¹,0.0052). ÉÄ»ú(¶¶ËÜ,0.005). ÉÄ»ú(ÀÐÀî,0.0047). ÉÄ»ú(Á°ÅÄ,0.0044). ÉÄ»ú(¸åÆ£,0.0043). ÉÄ»ú(²¬ÅÄ,0.0042). ÉÄ»ú(ĹëÀî,0.0042). ÉÄ»ú(Àаæ,0.004). ÉÄ»ú(ºäËÜ,0.0038). ÉÄ»ú(Æ£°æ,0.0036). ÉÄ»ú(Ê¡ÅÄ,0.0035). ÉÄ»ú(À¾Â¼,0.0035). ÉÄ»ú(ÂÀÅÄ,0.0035). ÉÄ»ú(¸¶ÅÄ,0.0033). ÉÄ»ú(ÃæÌî,0.0033). ÉÄ»ú(¾®Ìî,0.0033). ÉÄ»ú(ÃÝÆâ,0.0032). ÉÄ»ú(Ãæ»³,0.0031). ÉÄ»ú(ÀÐÅÄ,0.003). ÉÄ»ú(¾åÅÄ,0.0028). ÉÄ»ú(¿¹ÅÄ,0.0028). ÉÄ»ú(²£»³,0.0027). ÉÄ»ú(µÜºê,0.0026). ÉÄ»ú(ÆâÅÄ,0.0026). ÉÄ»ú(ë¸ý,0.0025). ÉÄ»ú(´Ý»³,0.0025). ÉÄ»ú(ÂçÌî,0.0024). ÉÄ»ú(¿û¸¶,0.0023). ÉÄ»ú(ÉðÅÄ,0.0023). ÉÄ»ú(¾åÌî,0.0023). ÉÄ»ú(ÀéÍÕ,0.0023). ÉÄ»ú(ÁýÅÄ,0.0022). ÉÄ»ú(¾®»³,0.0022). ÉÄ»ú(Ê¿Ìî,0.0022). ÉÄ»ú(ÅÏÉô,0.0021). ÉÄ»ú(µÆÃÏ,0.0021). ÉÄ»ú(¾¾Èø,0.0021). ÉÄ»ú(ÌÚ²¼,0.0021). ÉÄ»ú(Ìî¼,0.002). ÉÄ»ú(ÎëÌÚ,0.0195). ÉÄ»ú(ÅÄÃæ,0.0149). ÉÄ»ú(»³ËÜ,0.0122). ÉÄ»ú(ÃæÂ¼,0.0119). ÉÄ»ú(²ÃÆ£,0.0097). ÉÄ»ú(»³ÅÄ,0.0092). ÉÄ»ú(»³¸ý,0.0073). ÉÄ»ú(°æ¾å,0.0067). ÉÄ»ú(ÎÓ,0.0061). ÉÄ»ú(À¶¿å,0.0059). ÉÄ»ú(°¤Éô,0.0054). ÉÄ»ú(ÃÓÅÄ,0.0051). ÉÄ»ú(»³²¼,0.0049). ÉÄ»ú(ÃæÅç,0.0045). ÉÄ»ú(Æ£ÅÄ,0.0044). ÉÄ»ú(¾®Àî,0.0043). ÉÄ»ú(¼¾å,0.0042). ÉÄ»ú(¶áÆ£,0.0041). ÉÄ»ú(ÀÆÆ£,0.0038). ÉÄ»ú(±óÆ£,0.0038). ÉÄ»ú(ÀÄÌÚ,0.0036). ÉÄ»ú(»°±º,0.0035). ÉÄ»ú(Æ£¸¶,0.0035). ÉÄ»ú(¾¾ÅÄ,0.0034). ÉÄ»ú(²¬ËÜ,0.0033). ÉÄ»ú(ÃæÀî,0.0033). ÉÄ»ú(Åļ,0.0032). ÉÄ»ú(¶â»Ò,0.0031). ÉÄ»ú(ÏÂÅÄ,0.003). ÉÄ»ú(¹©Æ£,0.0028). ÉÄ»ú(¸¶,0.0028). ÉÄ»ú(¼ò°æ,0.0027). ÉÄ»ú(¼ÆÅÄ,0.0027). ÉÄ»ú(µÜËÜ,0.0026). ÉÄ»ú(¹âÌÚ,0.0026). ÉÄ»ú(°ÂÆ£,0.0025). ÉÄ»ú(º£°æ,0.0024). ÉÄ»ú(¹âÅÄ,0.0024). ÉÄ»ú(²ÏÌî,0.0023). ÉÄ»ú(Æ£ËÜ,0.0023). ÉÄ»ú(¿ù»³,0.0023). ÉÄ»ú(¼ÅÄ,0.0022). ÉÄ»ú(¾®Åç,0.0022). ÉÄ»ú(ÂçÄÍ,0.0022). ÉÄ»ú(µ×ÊÝ,0.0022). ÉÄ»ú(¾¾°æ,0.0021). ÉÄ»ú(´äºê,0.0021). ÉÄ»ú(º´Ìî,0.0021). ÉÄ»ú(Ìî¸ý,0.0021). ÉÄ»ú(¿·°æ,0.002). ÉÄ»ú(¸ÅÀî,0.002). ÉÄ»ú(¿ùËÜ,0.002). ÉÄ»ú(µÆÃÓ,0.0019). ÉÄ»ú(»ÔÀî,0.0019). ÉÄ»ú(ÅçÅÄ,0.0019). ÉÄ»ú(»³Æâ,0.0018). ÉÄ»ú(µÈÀî,0.0018). ÉÄ»ú(Åì,0.0018). ÉÄ»ú(ÃæÅÄ,0.0017). ÉÄ»ú(Àî¸ý,0.0017). ÉÄ»ú(°ÂÅÄ,0.0017). ÉÄ»ú(Àîºê,0.0017). ÉÄ»ú(ËÜÅÄ,0.0017). ÉÄ»ú(Àî¾å,0.0016). ÉÄ»ú(Åĸý,0.0016). ÉÄ»ú(µÈ¼,0.0016). ÉÄ»ú(Ê¡Åç,0.0016). ÉÄ»ú(ÃæÀ¾,0.0016). ÉÄ»ú(¾¾²¬,0.0016). ÉÄ»ú(´äÅÄ,0.0016). ÉÄ»ú(¿¹ËÜ,0.0016). ÉÄ»ú(½©»³,0.0016). ÉÄ»ú(¾¾²¼,0.0016). ÉÄ»ú(Âç¶¶,0.0015). ÉÄ»ú(¾®ÃÓ,0.0015). ÉÄ»ú(µÈ²¬,0.0015). ÉÄ»ú(Âçµ×ÊÝ,0.0015). ÉÄ»ú(ÌîÅÄ,0.0015). ÉÄ»ú(À±Ìî,0.0015). ÉÄ»ú(ËÙ,0.0014). ÉÄ»ú(Èøºê,0.0014). ÉÄ»ú(¹õÅÄ,0.0014). ÉÄ»ú(¾¾Â¼,0.0014). ÉÄ»ú(À¾»³,0.0014). ÉÄ»ú(ÅÄÊÕ,0.0013). ÉÄ»ú(ÊÒ»³,0.0013). ÉÄ»ú(´äËÜ,0.0013). ÉÄ»ú(¹­À¥,0.0013). ÉÄ»ú(²¬ºê,0.0013). ÉÄ»ú(ÁáÀî,0.0013). ÉÄ»ú(²£ÅÄ,0.0013). ÉÄ»ú(¹Ó°æ,0.0013). ÉÄ»ú(¼Ä¸¶,0.0012). ÉÄ»ú(¹â»³,0.0012). ÉÄ»ú(·ª¸¶,0.0012). ÉÄ»ú(¾¾¸¶,0.0012). ÉÄ»ú(»°Âð,0.0012). ÉÄ»ú(°ËÅì,0.0012). ÉÄ»ú(²¬,0.0012). ÉÄ»ú(Ê¡°æ,0.0011). ÉÄ»ú(ÂçÀ¾,0.002). ÉÄ»ú(¾®¾¾,0.002). ÉÄ»ú(¹âÌî,0.0019). ÉÄ»ú(¸Þ½½Íò,0.0019). ÉÄ»ú(¿åÌî,0.0019). ÉÄ»ú(ºù°æ,0.0018). ÉÄ»ú(À¾ÅÄ,0.0018). ÉÄ»ú(Ë̼,0.0018). ÉÄ»ú(À¾Àî,0.0017). ÉÄ»ú(µ×ÊÝÅÄ,0.0017). ÉÄ»ú(Ê¿ÅÄ,0.0017). ÉÄ»ú(´Ø,0.0017). ÉÄ»ú(ÈÓÅÄ,0.0016). ÉÄ»ú(ÅÚ²°,0.0016). ÉÄ»ú(Èõ¸ý,0.0016). ÉÄ»ú(ÄÔ,0.0016). ÉÄ»ú(ÉÍÅÄ,0.0016). ÉÄ»ú(±Ê°æ,0.0016). ÉÄ»ú(»³Ãæ,0.0016). ÉÄ»ú(ÌðÌî,0.0016). ÉÄ»ú(ÉþÉô,0.0016). ÉÄ»ú(Àи¶,0.0016). ÉÄ»ú(·§Ã«,0.0016). ÉÄ»ú(ÇϾì,0.0015). ÉÄ»ú(¾¾±º,0.0015). ÉÄ»ú(¹ÓÌÚ,0.0015). ÉÄ»ú(ÀõÌî,0.0015). ÉÄ»ú(Àî¼,0.0015). ÉÄ»ú(Âçë,0.0014). ÉÄ»ú(˾·î,0.0014). ÉÄ»ú(¿ûÌî,0.0014). ÉÄ»ú(±ÊÅÄ,0.0014). ÉÄ»ú(ÆâÆ£,0.0014). ÉÄ»ú(ËÜ´Ö,0.0013). ÉÄ»ú(ÂçÅç,0.0013). ÉÄ»ú(ÂçÀÐ,0.0013). ÉÄ»ú(À®ÅÄ,0.0013). ÉÄ»ú(Ê¿°æ,0.0013). ÉÄ»ú(³ùÅÄ,0.0013). ÉÄ»ú(¾®ÅÄ,0.0013). ÉÄ»ú(¿ÜÆ£,0.0013). ÉÄ»ú(µÜÅÄ,0.0012). ÉÄ»ú(Àж¶,0.0012). ÉÄ»ú(Ç븶,0.0012). ÉÄ»ú(Æî,0.0012). ÉÄ»ú(Â翹,0.0012). ÉÄ»ú(·¬¸¶,0.0012). ÉÄ»ú(¾®À¾,0.0012). ÉÄ»ú(Æâ»³,0.0012). ÉÄ»ú(¾¾±Ê,0.0011). ÉÄ»ú(±ü¼,0.0011). ÉÄ»ú(´Ø¸ý,0.0011). ÉÄ»ú(¾å¸¶,0.0011). ÉÄ»ú(ËÌÀî,0.0011). ÉÄ»ú(ÇòÀÐ,0.0011). ÉÄ»ú(µÈÌî,0.0011). ÉÄ»ú(º£Â¼,0.0011). ÉÄ»ú(ȬÌÚ,0.0011). ÉÄ»ú(ºä¸ý,0.0011). ÉÄ»ú(²¬Â¼,0.0011). ÉÄ»ú(ÃæÈø,0.0011). ÉÄ»ú(ÀÄ»³,0.001). ÉÄ»ú(²Ï¹ç,0.001). ÉÄ»ú(À¾,0.001). ÉÄ»ú(ÀîÅç,0.001). ÉÄ»ú(ÃÝÅÄ,0.001). ÉÄ»ú(¾®Âô,0.001). ÉÄ»ú(ºä°æ,0.001). ÉÄ»ú(­Ω,0.001). ÉÄ»ú(¾®¸¶,0.001). ÉÄ»ú(º¬ËÜ,0.001). ÉÄ»ú(²Ï¼,0.001). ÉÄ»ú(ã·Æ£,0.001). ÉÄ»ú(Ë­ÅÄ,0.001). ÉÄ»ú(ÉðÆ£,0.001). ÉÄ»ú(»³º¬,0.0009). ÉÄ»ú(´Øº¬,0.0009). ÉÄ»ú(°ÂÉô,0.0009). ÉÄ»ú(Á°Àî,0.0009). ÉÄ»ú(¿¢ÅÄ,0.0009). ÉÄ»ú(µÜÀî,0.0009). ÉÄ»ú(ĹÅÄ,0.0009). ÉÄ»ú(Ãæ°æ,0.0009). ÉÄ»ú(µÚÀî,0.0009). ÉÄ»ú(ÂçÀî,0.0009). ÉÄ»ú(ÃæÅè,0.0009). ÉÄ»ú(ºÙÀî,0.0009). ÉÄ»ú(ë,0.0009). ÉÄ»ú(Àõ°æ,0.0009). ÉÄ»ú(»°¾å,0.0008). ÉÄ»ú(¹¾¸ý,0.0008). ÉÄ»ú(ÅÄÂå,0.0008). ÉÄ»ú(¿Àë,0.0008). ÉÄ»ú(ÂçÂô,0.0008). ÉÄ»ú(Ä¹Èø,0.0008). ÉÄ»ú(¼¾¾,0.0008). ÉÄ»ú(ÅÚ°æ,0.0008). ÉÄ»ú(ÈÓÅç,0.0008). ÉÄ»ú(°ðÍÕ,0.0008). ÉÄ»ú(±ÝËÜ,0.0008). ÉÄ»ú(ÊÒ²¬,0.0011). ÉÄ»ú(ÂôÅÄ,0.0011). ÉÄ»ú(¾å¼,0.0011). ÉÄ»ú(¾®Ìî»û,0.0011). ÉÄ»ú(¸Å²ì,0.0011). ÉÄ»ú(±üÅÄ,0.0011). ÉÄ»ú(Ê¿»³,0.0011). ÉÄ»ú(µÜ²¼,0.0011). ÉÄ»ú(ËÒÌî,0.0011). ÉÄ»ú(¾®Àô,0.0011). ÉÄ»ú(ÉÙÅÄ,0.0011). ÉÄ»ú(»ûÅÄ,0.001). ÉÄ»ú(»ù¶Ì,0.001). ÉÄ»ú(Â绳,0.001). ÉÄ»ú(¿ÅÄ,0.001). ÉÄ»ú(¾®³Þ¸¶,0.001). ÉÄ»ú(¾®ÁÒ,0.001). ÉÄ»ú(½Âë,0.001). ÉÄ»ú(¼»³,0.001). ÉÄ»ú(ºäÅÄ,0.001). ÉÄ»ú(¿¹²¼,0.001). ÉÄ»ú(¿ù±º,0.001). ÉÄ»ú(³ÑÅÄ,0.001). ÉÄ»ú(ÈÓÄÍ,0.001). ÉÄ»ú(Å·Ìî,0.0009). ÉÄ»ú(¿ÀÅÄ,0.0009). ÉÄ»ú(¿åë,0.0009). ÉÄ»ú(ÄÍËÜ,0.0009). ÉÄ»ú(È«»³,0.0009). ÉÄ»ú(ÅÄÅç,0.0009). ÉÄ»ú(º´µ×´Ö,0.0009). ÉÄ»ú(ËÙÆâ,0.0009). ÉÄ»ú(²¬Éô,0.0009). ÉÄ»ú(Çò°æ,0.0009). ÉÄ»ú(º£Ìî,0.0009). ÉÄ»ú(¿¹»³,0.0009). ÉÄ»ú(¼ãÎÓ,0.0009). ÉÄ»ú(¾¾ºê,0.0009). ÉÄ»ú(ÃæÃ«,0.0008). ÉÄ»ú(°Âã,0.0008). ÉÄ»ú(À¾Èø,0.0008). ÉÄ»ú(°ð³À,0.0008). ÉÄ»ú(ÀÐÄÍ,0.0008). ÉÄ»ú(À±,0.0008). ÉÄ»ú(¸ÍÅÄ,0.0008). ÉÄ»ú(¹ÓÀî,0.0008). ÉÄ»ú(Ãæ¸¶,0.0008). ÉÄ»ú(ËÜ¿,0.0008). ÉÄ»ú(´ßËÜ,0.0008). ÉÄ»ú(¿¹Àî,0.0008). ÉÄ»ú(²¬Ìî,0.0008). ÉÄ»ú(»°¹¥,0.0008). ÉÄ»ú(ÊÆÅÄ,0.0008). ÉÄ»ú(¹õÌÚ,0.0008). ÉÄ»ú(ÄÅÅÄ,0.0008). ÉÄ»ú(¾¾»³,0.0008). ÉÄ»ú(Íî¹ç,0.0008). ÉÄ»ú(ËÙÅÄ,0.0007). ÉÄ»ú(Ìîºê,0.0007). ÉÄ»ú(´ä°æ,0.0007). ÉÄ»ú(ÅÚÅÄ,0.0007). ÉÄ»ú(¸ÅÅÄ,0.0007). ÉÄ»ú(À¾Ìî,0.0007). ÉÄ»ú(±ü»³,0.0007). ÉÄ»ú(¿ÜÅÄ,0.0007). ÉÄ»ú(ÀîÅÄ,0.0007). ÉÄ»ú(ÂçÃÝ,0.0007). ÉÄ»ú(ÌîÃæ,0.0007). ÉÄ»ú(ÇßÅÄ,0.0007). ÉÄ»ú(³á¸¶,0.0006). ÉÄ»ú(»°ÌÚ,0.0006). ÉÄ»ú(Æü¹â,0.0006). ÉÄ»ú(Âç¾ì,0.0006). ÉÄ»ú(ÂçÌÚ,0.0006). ÉÄ»ú(ÄÍÅÄ,0.0006). ÉÄ»ú(À¾ËÜ,0.0006). ÉÄ»ú(Æ£Àî,0.0006). ÉÄ»ú(¶âÂô,0.0006). ÉÄ»ú(ÃÝÃæ,0.0006). ÉÄ»ú(Ãݲ¼,0.0006). ÉÄ»ú(µÜÆâ,0.0006). ÉÄ»ú(µÈËÜ,0.0006). ÉÄ»ú(ƣ¼,0.0006). ÉÄ»ú(ëÀî,0.0006). ÉÄ»ú(·¦ÅÄ,0.0006). ÉÄ»ú(ÃÝËÜ,0.0006). ÉÄ»ú(Àйõ,0.0006). ÉÄ»ú(¾®Ã«,0.0006). ÉÄ»ú(Ê¡ËÜ,0.0006). ÉÄ»ú(½ïÊý,0.0006). ÉÄ»ú(µÜ¸¶,0.0006). ÉÄ»ú(¹­ÅÄ,0.0006). ÉÄ»ú(ËÌÌî,0.0005). ÉÄ»ú(µÜÂô,0.0005). ÉÄ»ú(¹â°æ,0.0005). ÉÄ»ú(½Ð¸ý,0.0005). ÉÄ»ú(¾®¿¹,0.0005). ÉÄ»ú(µµ°æ,0.0005). ÉÄ»ú(ÀÄÌø,0.0005). ÉÄ»ú(¸Åë,0.0005). ÉÄ»ú(¶â°æ,0.0008). ÉÄ»ú(ÃæÂô,0.0008). ÉÄ»ú(¹ÃÈå,0.0008). ÉÄ»ú(º´Çì,0.0008). ÉÄ»ú(»³´ß,0.0008). ÉÄ»ú(¶âÅÄ,0.0008). ÉÄ»ú(Äé,0.0008). ÉÄ»ú(À¾²¬,0.0007). ÉÄ»ú(Àô,0.0007). ÉÄ»ú(Ä®ÅÄ,0.0007). ÉÄ»ú(¿·ÅÄ,0.0007). ÉÄ»ú(ÆÁ±Ê,0.0007). ÉÄ»ú(³Þ¸¶,0.0007). ÉÄ»ú(ÂìÂô,0.0007). ÉÄ»ú(¹õÀî,0.0007). ÉÄ»ú(»³Àî,0.0007). ÉÄ»ú(¿ùÅÄ,0.0007). ÉÄ»ú(ËÙ¹¾,0.0007). ÉÄ»ú(¼°æ,0.0007). ÉÄ»ú(Àîü,0.0006). ÉÄ»ú(Âç¼,0.0006). ÉÄ»ú(´ß,0.0006). ÉÄ»ú(°æ¸ý,0.0006). ÉÄ»ú(¾±»Ê,0.0006). ÉÄ»ú(¸þ°æ,0.0006). ÉÄ»ú(À,0.0006). ÉÄ»ú(ÂçÆâ,0.0006). ÉÄ»ú(µÈ¸¶,0.0006). ÉÄ»ú(ºç¸¶,0.0006). ÉÄ»ú(¾¾Åç,0.0006). ÉÄ»ú(ÌÐÌÚ,0.0006). ÉÄ»ú(Æ£²¬,0.0006). ÉÄ»ú(²¼ÅÄ,0.0006). ÉÄ»ú(Æ£Âô,0.0006). ÉÄ»ú(·ªÅÄ,0.0006). ÉÄ»ú(ÌøÂô,0.0006). ÉÄ»ú(ÅèÅÄ,0.0006). ÉÄ»ú(°Â°æ,0.0006). ÉÄ»ú(±§Ìî,0.0006). ÉÄ»ú(Ê¿Àî,0.0006). ÉÄ»ú(¹âÅç,0.0006). ÉÄ»ú(±üÌî,0.0006). ÉÄ»ú(»°ÎØ,0.0005). ÉÄ»ú(²¼Â¼,0.0005). ÉÄ»ú(»³Â¼,0.0005). ÉÄ»ú(Âç¾ë,0.0005). ÉÄ»ú(Æ£Ìî,0.0005). ÉÄ»ú(ĹÌî,0.0005). ÉÄ»ú(ÀîËÜ,0.0005). ÉÄ»ú(ð±©,0.0005). ÉÄ»ú(²®Ìî,0.0005). ÉÄ»ú(Åĸ¶,0.0005). ÉÄ»ú(ÂçÊ¿,0.0005). ÉÄ»ú(¹âÀ¥,0.0005). ÉÄ»ú(ÁêÇÏ,0.0005). ÉÄ»ú(¶â¾ë,0.0005). ÉÄ»ú(Ë̸¶,0.0005). ÉÄ»ú(¹õÂô,0.0005). ÉÄ»ú(¾®ß·,0.0005). ÉÄ»ú(Åû°æ,0.0005). ÉÄ»ú(µÈÂô,0.0005). ÉÄ»ú(Ê¿¾¾,0.0005). ÉÄ»ú(»³²¬,0.0005). ÉÄ»ú(Àл³,0.0005). ÉÄ»ú(¼Äºê,0.0005). ÉÄ»ú(ÉÚÅÄ,0.0005). ÉÄ»ú(ÄáÅÄ,0.0005). ÉÄ»ú(ß·ÅÄ,0.0005). ÉÄ»ú(±ÊÌî,0.0005). ÉÄ»ú(ÆóµÜ,0.0005). ÉÄ»ú(ÀîÌî,0.0005). ÉÄ»ú(ÉÙ±Ê,0.0005). ÉÄ»ú(Æþ¹¾,0.0005). ÉÄ»ú(±±°æ,0.0005). ÉÄ»ú(¿ù¸¶,0.0005). ÉÄ»ú(À¥¸Í,0.0005). ÉÄ»ú(ÅÄȪ,0.0005). ÉÄ»ú(ÀéÅÄ,0.0005). ÉÄ»ú(ÀõÅÄ,0.0005). ÉÄ»ú(²ÖÅÄ,0.0005). ÉÄ»ú(¼ÄÅÄ,0.0005). ÉÄ»ú(ÃÓ¾å,0.0004). ÉÄ»ú(ÆüÌî,0.0004). ÉÄ»ú(²ÃǼ,0.0004). ÉÄ»ú(¿·Ã«,0.0004). ÉÄ»ú(ËÙ¸ý,0.0004). ÉÄ»ú(ÁÒÅÄ,0.0004). ÉÄ»ú(¿¼Âô,0.0004). ÉÄ»ú(Ê¡¸¶,0.0004). ÉÄ»ú(²Ï¸¶,0.0004). ÉÄ»ú(ÌîÂô,0.0004). ÉÄ»ú(»Ö¼,0.0004). ÉÄ»ú(ÈªÃæ,0.0004). ÉÄ»ú(ÇòÀî,0.0004). ÉÄ»ú(ÇðÌÚ,0.0004). ÉÄ»ú(ÌðÅç,0.0004). ÉÄ»ú(´äÀ¥,0.0004). ÉÄ»ú(¸¶¸ý,0.0004). ÉÄ»ú(Âçºê,0.0004). ÉÄ»ú(ÆñÇÈ,0.0004). ÉÄ»ú(Ãݼ,0.0005). ÉÄ»ú(°ðÅÄ,0.0005). ÉÄ»ú(ĹÅç,0.0005). ÉÄ»ú(Ĺ²¬,0.0005). ÉÄ»ú(µÜ¾ë,0.0005). ÉÄ»ú(ÎÓÅÄ,0.0005). ÉÄ»ú(ÂçÅÄ,0.0005). ÉÄ»ú(±ÛÃÒ,0.0005). ÉÄ»ú(Ê¡²¬,0.0005). ÉÄ»ú(Ê¡±Ê,0.0005). ÉÄ»ú(²£°æ,0.0005). ÉÄ»ú(¹Â¸ý,0.0005). ÉÄ»ú(ÌøÅÄ,0.0005). ÉÄ»ú(¼êÄÍ,0.0005). ÉÄ»ú(Éð°æ,0.0005). ÉÄ»ú(ËÙÀî,0.0005). ÉÄ»ú(Â縶,0.0005). ÉÄ»ú(¹â¾¾,0.0005). ÉÄ»ú(±àÅÄ,0.0005). ÉÄ»ú(ÊÒ¶Í,0.0005). ÉÄ»ú(Èæ²Å,0.0005). ÉÄ»ú(Àкê,0.0005). ÉÄ»ú(ÅòÀõ,0.0005). ÉÄ»ú(ÅÏîµ,0.0005). ÉÄ»ú(¾ÂÅÄ,0.0005). ÉÄ»ú(ÅÏî´,0.0005). ÉÄ»ú(º¬´ß,0.0005). ÉÄ»ú(ëËÜ,0.0005). ÉÄ»ú(¾®½Ð,0.0005). ÉÄ»ú(Ê¿²¬,0.0005). ÉÄ»ú(ÂçÄÐ,0.0005). ÉÄ»ú(¾®ºä,0.0004). ÉÄ»ú(³Þ°æ,0.0004). ÉÄ»ú(¿û,0.0004). ÉÄ»ú(Åľå,0.0004). ÉÄ»ú(À¾Âô,0.0004). ÉÄ»ú(À¾¸¶,0.0004). ÉÄ»ú(ĹÂô,0.0004). ÉÄ»ú(¾¾Ìî,0.0004). ÉÄ»ú(¿¹²¬,0.0004). ÉÄ»ú(ÆÁÅÄ,0.0004). ÉÄ»ú(¼À¥,0.0004). ÉÄ»ú(¾®Ìø,0.0004). ÉÄ»ú(ÃæËÜ,0.0004). ÉÄ»ú(µÈ°æ,0.0004). ÉÄ»ú(É͸ý,0.0004). ÉÄ»ú(»°Ã«,0.0004). ÉÄ»ú(˧²ì,0.0004). ÉÄ»ú(Æâ³¤,0.0004). ÉÄ»ú(ÊÆ»³,0.0004). ÉÄ»ú(Åçºê,0.0004). ÉÄ»ú(²®¸¶,0.0004). ÉÄ»ú(ÌÚ¸¶,0.0004). ÉÄ»ú(Âçͧ,0.0004). ÉÄ»ú(ËÌÅç,0.0004). ÉÄ»ú(º£Àô,0.0004). ÉÄ»ú(½©¸µ,0.0004). ÉÄ»ú(Ê¡»³,0.0004). ÉÄ»ú(°ëÉô,0.0004). ÉÄ»ú(²ÏÆâ,0.0004). ÉÄ»ú(ÀîÀ¥,0.0004). ÉÄ»ú(¾®Åè,0.0004). ÉÄ»ú(º´ÃÝ,0.0004). ÉÄ»ú(Űæ,0.0004). ÉÄ»ú(»°Â¼,0.0004). ÉÄ»ú(±ó»³,0.0004). ÉÄ»ú(°æ½Ð,0.0004). ÉÄ»ú(°æ¼ê,0.0004). ÉÄ»ú(±öÅÄ,0.0004). ÉÄ»ú(Ê¿ÎÓ,0.0004). ÉÄ»ú(ÉÍÌî,0.0004). ÉÄ»ú(¼²¬,0.0004). ÉÄ»ú(³ëÀ¾,0.0004). ÉÄ»ú(ÆàÎÉ,0.0004). ÉÄ»ú(»°Åç,0.0004). ÉÄ»ú(¿¿Æé,0.0004). ÉÄ»ú(ÁðÌî,0.0004). ÉÄ»ú(µÌ,0.0004). ÉÄ»ú(ÄÔËÜ,0.0004). ÉÄ»ú(·ª»³,0.0004). ÉÄ»ú(¿å¸ý,0.0004). ÉÄ»ú(ȾÅÄ,0.0004). ÉÄ»ú(Âçß·,0.0004). ÉÄ»ú(¼íÌî,0.0004). ÉÄ»ú(À¥Àî,0.0004). ÉÄ»ú(Èø·Á,0.0004). ÉÄ»ú(ºä²¼,0.0004). ÉÄ»ú(Âç¾Â,0.0003). ÉÄ»ú(ΩÀÐ,0.0003). ÉÄ»ú(»Ö²ì,0.0003). ÉÄ»ú(ÃæÎ¤,0.0003). ÉÄ»ú(Ìø,0.0003). ÉÄ»ú(Ä«ÁÒ,0.0003). ÉÄ»ú(Í­ÇÏ,0.0003). ÉÄ»ú(¿À»³,0.0003). ÉÄ»ú(Âç¹¾,0.0003). ÉÄ»ú(¹â¸«,0.0003). ÉÄ»ú(¿¢¾¾,0.0003). ÉÄ»ú(¹¾Æ£,0.0003). ÉÄ»ú(µÜÃÏ,0.0003). ÉÄ»ú(Âç°æ,0.0004). ÉÄ»ú(ÀîȪ,0.0004). ÉÄ»ú(ÁêÂô,0.0004). ÉÄ»ú(¿¢ÌÚ,0.0004). ÉÄ»ú(³§Àî,0.0004). ÉÄ»ú(´ä²¼,0.0004). ÉÄ»ú(ÄÚ°æ,0.0004). ÉÄ»ú(ÂçÄÚ,0.0004). ÉÄ»ú(½©ÅÄ,0.0004). ÉÄ»ú(µÈ±Ê,0.0004). ÉÄ»ú(»°°æ,0.0004). ÉÄ»ú(Ȫ,0.0004). ÉÄ»ú(ºÙë,0.0004). ÉÄ»ú(ºÙÅÄ,0.0004). ÉÄ»ú(óîÆ£,0.0004). ÉÄ»ú(Éͺê,0.0004). ÉÄ»ú(Ááºä,0.0004). ÉÄ»ú(¸Å²°,0.0004). ÉÄ»ú(À¶Ìî,0.0004). ÉÄ»ú(¼ã¾¾,0.0004). ÉÄ»ú(µµ»³,0.0004). ÉÄ»ú(²ÏÅÄ,0.0004). ÉÄ»ú(Êݺä,0.0004). ÉÄ»ú(¶¶¸ý,0.0004). ÉÄ»ú(¾¾Àî,0.0004). ÉÄ»ú(¿¢Â¼,0.0004). ÉÄ»ú(¿å¾å,0.0004). ÉÄ»ú(¹â¼,0.0004). ÉÄ»ú(ÈijÀ,0.0004). ÉÄ»ú(ËÙ°æ,0.0004). ÉÄ»ú(´ßÅÄ,0.0004). ÉÄ»ú(Æ£¿¹,0.0004). ÉÄ»ú(¶Ì°æ,0.0004). ÉÄ»ú(Á긶,0.0004). ÉÄ»ú(Ê¿,0.0004). ÉÄ»ú(¿ÊÆ£,0.0004). ÉÄ»ú(Æá¿Ü,0.0004). ÉÄ»ú(µµÅÄ,0.0003). ÉÄ»ú(Àî¹ç,0.0003). ÉÄ»ú(ÌçÏÆ,0.0003). ÉÄ»ú(¹â²¬,0.0003). ÉÄ»ú(»ûÅç,0.0003). ÉÄ»ú(²¼»³,0.0003). ÉÄ»ú(»Ô¼,0.0003). ÉÄ»ú(µÜÅç,0.0003). ÉÄ»ú(²ÏËÜ,0.0003). ÉÄ»ú(¹âÌø,0.0003). ÉÄ»ú(¿¥ÅÄ,0.0003). ÉÄ»ú(ÉðÆâ,0.0003). ÉÄ»ú(Æ£ºê,0.0003). ÉÄ»ú(ËÌ»³,0.0003). ÉÄ»ú(ÌÚÆâ,0.0003). ÉÄ»ú(¾¾ÌÚ,0.0003). ÉÄ»ú(¹â¸¶,0.0003). ÉÄ»ú(Ìî¾å,0.0003). ÉÄ»ú(»°¸¶,0.0003). ÉÄ»ú(ÉÙ³ß,0.0003). ÉÄ»ú(ÅÚµï,0.0003). ÉÄ»ú(Ω²Ö,0.0003). ÉÄ»ú(º£ÅÄ,0.0003). ÉÄ»ú(¼Æºê,0.0003). ÉÄ»ú(Ê¿Èø,0.0003). ÉÄ»ú(¼é²°,0.0003). ÉÄ»ú(³¤Ìî,0.0003). ÉÄ»ú(µ×Ìî,0.0003). ÉÄ»ú(ĹëÉô,0.0003). ÉÄ»ú(¿¼Ã«,0.0003). ÉÄ»ú(´ØÃ«,0.0003). ÉÄ»ú(ĹÀ¥,0.0003). ÉÄ»ú(ÀдÝ,0.0003). ÉÄ»ú(Ĺë,0.0003). ÉÄ»ú(¿ûë,0.0003). ÉÄ»ú(¹õ´ä,0.0003). ÉÄ»ú(ÂçÁÒ,0.0003). ÉÄ»ú(ÆâÌî,0.0003). ÉÄ»ú(¾å»³,0.0003). ÉÄ»ú(¾®»û,0.0003). ÉÄ»ú(À¾Ã«,0.0003). ÉÄ»ú(Åç,0.0003). ÉÄ»ú(ÅÄÀî,0.0003). ÉÄ»ú(Ëö±Ê,0.0003). ÉÄ»ú(ßÀÅÄ,0.0003). ÉÄ»ú(µÜÏÆ,0.0003). ÉÄ»ú(Âì¸ý,0.0003). ÉÄ»ú(À®À¥,0.0003). ÉÄ»ú(¹âºê,0.0003). ÉÄ»ú(¾®¼¼,0.0003). ÉÄ»ú(ÌçÅÄ,0.0003). ÉÄ»ú(¼µ¸Í,0.0003). ÉÄ»ú(Ä»µï,0.0003). ÉÄ»ú(¿¹Ã«,0.0003). ÉÄ»ú(¾®Èª,0.0003). ÉÄ»ú(¿ù¼,0.0003). ÉÄ»ú(ÈÄÁÒ,0.0003). ÉÄ»ú(Ê¿ÄÍ,0.0003). ÉÄ»ú(ÌÚÅÄ,0.0003). ÉÄ»ú(ºåËÜ,0.0003). ÉÄ»ú(°¤µ×ÄÅ,0.0003). ÉÄ»ú(»³¾å,0.0003). ÉÄ»ú(°æÀî,0.0003). ÉÄ»ú(»ûËÜ,0.0003). ÉÄ»ú(ÂçÄÅ,0.0003). ÉÄ»ú(Í­ÅÄ,0.0003). ÉÄ»ú(ºä¾å,0.0003). ÉÄ»ú(ÌÓÍø,0.0003). ÉÄ»ú(¾¾Âô,0.0003). ÉÄ»ú(Á°¸¶,0.0003). ÉÄ»ú(Åç¼,0.0003). ÉÄ»ú(Åĺê,0.0003). ÉÄ»ú(»°¶¶,0.0003). ÉÄ»ú(ËÒ,0.0003). ÉÄ»ú(´ä±Ê,0.0003). ÉÄ»ú(Àõ¸«,0.0003). ÉÄ»ú(Àî°æ,0.0003). ÉÄ»ú(Ãæß·,0.0003). ÉÄ»ú(¹âÈø,0.0003). ÉÄ»ú(´äº´,0.0003). ÉÄ»ú(ÈÓÌî,0.0003). ÉÄ»ú(Ãæº¬,0.0003). ÉÄ»ú(ÏÂÀô,0.0003). ÉÄ»ú(Ä͸¶,0.0003). ÉÄ»ú(³°»³,0.0003). ÉÄ»ú(ÂìËÜ,0.0003). ÉÄ»ú(»Ô¸¶,0.0003). ÉÄ»ú(¶â»³,0.0003). ÉÄ»ú(¶â¿¹,0.0003). ÉÄ»ú(¾®´Ø,0.0003). ÉÄ»ú(¶âë,0.0003). ÉÄ»ú(¿Á,0.0003). ÉÄ»ú(ÀгÀ,0.0003). ÉÄ»ú(ÀÐËÜ,0.0003). ÉÄ»ú(°æÅÄ,0.0003). ÉÄ»ú(±ü,0.0003). ÉÄ»ú(´äÞ¼,0.0003). ÉÄ»ú(ÊÆÂô,0.0003). ÉÄ»ú(ÀµÌÚ,0.0003). ÉÄ»ú(±§º´Èþ,0.0003). ÉÄ»ú(ÌðÉô,0.0003). ÉÄ»ú(±Ê»³,0.0003). ÉÄ»ú(ºä¸µ,0.0003). ÉÄ»ú(»³Ìî,0.0003). ÉÄ»ú(ÌîËÜ,0.0003). ÉÄ»ú(¹¾ºê,0.0003). ÉÄ»ú(¿Ûˬ,0.0003). ÉÄ»ú(Æ£ÌÚ,0.0003). ÉÄ»ú(¿¹ÏÆ,0.0003). ÉÄ»ú(¹¾Àî,0.0003). ÉÄ»ú(¾®µÜ,0.0003). ÉÄ»ú(½©ÍÕ,0.0003). ÉÄ»ú(ÂçÂì,0.0003). ÉÄ»ú(¾®¿ù,0.0003). ÉÄ»ú(»°ÅÄ,0.0003). ÉÄ»ú(¿·³À,0.0003). ÉÄ»ú(ÀÖ¾¾,0.0003). ÉÄ»ú(É÷´Ö,0.0003). ÉÄ»ú(ÉÛ»Ü,0.0003). ÉÄ»ú(Á¾º¬,0.0003). ÉÄ»ú(¿åÅÄ,0.0003). ÉÄ»ú(ËÙ±Û,0.0003). ÉÄ»ú(¶â´Ý,0.0003). ÉÄ»ú(º´Àî,0.0003). ÉÄ»ú(¾¾¸µ,0.0002). ÉÄ»ú(ÄÇ̾,0.0002). ÉÄ»ú(¾®Ìº,0.0002). ÉÄ»ú(´ä´Ö,0.0002). ÉÄ»ú(±©ÅÄ,0.0002). ÉÄ»ú(ÅÚ¶¶,0.0002). ÉÄ»ú(À¸ÅÄ,0.0002). ÉÄ»ú(ÃçÅÄ,0.0002). ÉÄ»ú(¾®ÌîÅÄ,0.0002). ÉÄ»ú(Ãç¼,0.0002). ÉÄ»ú(Ĺºê,0.0002). ÉÄ»ú(°ÍÅÄ,0.0002). ÉÄ»ú(µÜÌî,0.0002). ÉÄ»ú(À÷ë,0.0002). ÉÄ»ú(ºÙÌî,0.0002). ÉÄ»ú(Ìð¸ý,0.0002). ÉÄ»ú(Æü²¼,0.0002). ÉÄ»ú(»³¸µ,0.0002). ÉÄ»ú(ÀÖÌÚ,0.0002). ÉÄ»ú(ÌðÅÄ,0.0002). ÉÄ»ú(ÌÚ¸Í,0.0002). ÉÄ»ú(ÀõÀî,0.0002). ÉÄ»ú(¾¡Ëô,0.0002). ÉÄ»ú(¹âÍü,0.0002). ÉÄ»ú(ÁÒ»ý,0.0002). ÉÄ»ú(¾®¾Â,0.0002). ÉÄ»ú(»ûÈø,0.0002). ÉÄ»ú(¿û¾Â,0.0002). ÉÄ»ú(¹âÁÒ,0.0002). ÉÄ»ú(ÉÙ²¬,0.0002). ÉÄ»ú(¿¿ÅÄ,0.0002). ÉÄ»ú(¶¶ÄÞ,0.0002). ÉÄ»ú(±«µÜ,0.0002). ÉÄ»ú(ÇòÄ»,0.0002). ÉÄ»ú(´ä¾ë,0.0002). ÉÄ»ú(Àкä,0.0002). ÉÄ»ú(ðÌî,0.0002). ÉÄ»ú(ÃÓÆâ,0.0002). ÉÄ»ú(¿ÀÌî,0.0002). ÉÄ»ú(Ë­Åç,0.0003). ÉÄ»ú(Ç߸¶,0.0003). ÉÄ»ú(¶Ì¾ë,0.0003). ÉÄ»ú(²¼Àî,0.0003). ÉÄ»ú(Ì,0.0003). ÉÄ»ú(¹áÀî,0.0003). ÉÄ»ú(ÁêÀî,0.0003). ÉÄ»ú(ÉÍËÜ,0.0003). ÉÄ»ú(¸ÅÂô,0.0003). ÉÄ»ú(ËÌÂô,0.0003). ÉÄ»ú(»³¾ë,0.0003). ÉÄ»ú(±öë,0.0002). ÉÄ»ú(ݯ°æ,0.0002). ÉÄ»ú(±ºÅÄ,0.0002). ÉÄ»ú(ÃæÎÓ,0.0002). ÉÄ»ú(´î¿,0.0002). ÉÄ»ú(¾®È¨,0.0002). ÉÄ»ú(Ìܹõ,0.0002). ÉÄ»ú(±§ÅÔµÜ,0.0002). ÉÄ»ú(ÂçÏÂÅÄ,0.0002). ÉÄ»ú(»³·Á,0.0002). ÉÄ»ú(ÂçȪ,0.0002). ÉÄ»ú(Ê¿Âô,0.0002). ÉÄ»ú(ËãÀ¸,0.0002). ÉÄ»ú(´¥,0.0002). ÉÄ»ú(ºÙ°æ,0.0002). ÉÄ»ú(º£À¾,0.0002). ÉÄ»ú(ÇßËÜ,0.0002). ÉÄ»ú(¾®¶Ì,0.0002). ÉÄ»ú(ÂçÌð,0.0002). ÉÄ»ú(ÇßÄÅ,0.0002). ÉÄ»ú(ËÌÅÄ,0.0002). ÉÄ»ú(¿ùÌî,0.0002). ÉÄ»ú(ÌÚËÜ,0.0002). ÉÄ»ú(ÂçÄí,0.0002). ÉÄ»ú(ÅÔÃÛ,0.0002). ÉÄ»ú(³Ñ,0.0002). ÉÄ»ú(±Æ»³,0.0002). ÉÄ»ú(ÇÈ¿Ìî,0.0002). ÉÄ»ú(¿¼ÅÄ,0.0002). ÉÄ»ú(ÊÂÌÚ,0.0002). ÉÄ»ú(À¾¸ý,0.0002). ÉÄ»ú(ÀîÊÕ,0.0002). ÉÄ»ú(Ìø¸¶,0.0002). ÉÄ»ú(·ªÎÓ,0.0002). ÉÄ»ú(¼óÆ£,0.0002). ÉÄ»ú(À¥Èø,0.0002). ÉÄ»ú(µÜºä,0.0002). ÉÄ»ú(ÀÖºä,0.0002). ÉÄ»ú(·ë¾ë,0.0002). ÉÄ»ú(¹çÅÄ,0.0002). ÉÄ»ú(Èø¾å,0.0002). ÉÄ»ú(ΩÀî,0.0002). ÉÄ»ú(³¤Ï·¸¶,0.0002). ÉÄ»ú(Âç´Ó,0.0002). ÉÄ»ú(ÀÄÌî,0.0002). ÉÄ»ú(º£,0.0002). ÉÄ»ú(ÀÐÅÏ,0.0002). ÉÄ»ú(Âç²¼,0.0002). ÉÄ»ú(ÀîÀ¾,0.0002). ÉÄ»ú(±ÊÅç,0.0002). ÉÄ»ú(²£Èø,0.0002). ÉÄ»ú(µ×ÊÆ,0.0002). ÉÄ»ú(Å쳤ÎÓ,0.0002). ÉÄ»ú(»°Âô,0.0002). ÉÄ»ú(ÈôÅÄ,0.0002). ÉÄ»ú(¶ÌÃÖ,0.0002). ÉÄ»ú(¿¹¸ý,0.0002). ÉÄ»ú(·¬ÅÄ,0.0002). ÉÄ»ú(×¢À¥,0.0002). ÉÄ»ú(»°»Þ,0.0002). ÉÄ»ú(ÀÐÁÒ,0.0002). ÉÄ»ú(ÂçÎÓ,0.0002). ÉÄ»ú(Çð¸¶,0.0002). ÉÄ»ú(¾®ËÙ,0.0002). ÉÄ»ú(¹¾¸¶,0.0002). ÉÄ»ú(°²ÅÄ,0.0002). ÉÄ»ú(¿åÅç,0.0002). ÉÄ»ú(º½Àî,0.0002). ÉÄ»ú(ÅçÂÞ,0.0002). ÉÄ»ú(ºäÅì,0.0002). ÉÄ»ú(¹âȪ,0.0002). ÉÄ»ú(²Ö²¬,0.0002). ÉÄ»ú(¼êÅç,0.0002). ÉÄ»ú(Çß¼,0.0002). ÉÄ»ú(¶ÌÌÚ,0.0002). ÉÄ»ú(µÈß·,0.0002). ÉÄ»ú(Á°Ìî,0.0002). ÉÄ»ú(ÇòÌÚ,0.0002). ÉÄ»ú(ÌîϤ,0.0002). ÉÄ»ú(ÃæÄÍ,0.0002). ÉÄ»ú(¼Æ»³,0.0002). ÉÄ»ú(¶âß·,0.0002). ÉÄ»ú(²­,0.0002). ÉÄ»ú(Á°Åç,0.0002). ÉÄ»ú(É´À¥,0.0002). ÉÄ»ú(ÉÙ»³,0.0002). ÉÄ»ú(¿û°æ,0.0002). ÉÄ»ú(Àõ¾Â,0.0002). ÉÄ»ú(¹âë,0.0002). ÉÄ»ú(Á¾²æ,0.0002). ÉÄ»ú(¾®µ×ÊÝ,0.0002). ÉÄ»ú(ËåÈø,0.0002). ÉÄ»ú(ËÌ,0.0002). ÉÄ»ú(ÈͶ,0.0002). ÉÄ»ú(»ÖÅÄ,0.0002). ÉÄ»ú(¾å¿ù,0.0002). ÉÄ»ú(¿Àºê,0.0002). ÉÄ»ú(Í­²ì,0.0002). ÉÄ»ú(Âç·§,0.0002). ÉÄ»ú(Ãݸ¶,0.0002). ÉÄ»ú(°æ¸¶,0.0002). ÉÄ»ú(ÂçÅè,0.0002). ÉÄ»ú(ÃÓËÜ,0.0002). ÉÄ»ú(À¾Åç,0.0002). ÉÄ»ú(ÅÄü,0.0002). ÉÄ»ú(À¶ÅÄ,0.0002). ÉÄ»ú(À¾ÏÆ,0.0002). ÉÄ»ú(¿Ü²ì,0.0002). ÉÄ»ú(ºäÌî,0.0002). ÉÄ»ú(²£Àî,0.0002). ÉÄ»ú(Àî±Û,0.0002). ÉÄ»ú(Ëܼ,0.0002). ÉÄ»ú(½ÕÆü,0.0002). ÉÄ»ú(ºûÀî,0.0002). ÉÄ»ú(Æâ¼,0.0002). ÉÄ»ú(ÆüÈæÌî,0.0002). ÉÄ»ú(Æï,0.0002). ÉÄ»ú(ë¼,0.0002). ÉÄ»ú(ÏÆÅÄ,0.0002). ÉÄ»ú(±ºÌî,0.0002). ÉÄ»ú(¾®·ª,0.0002). ÉÄ»ú(Ê¿ÎÉ,0.0002). ÉÄ»ú(²¬»³,0.0002). ÉÄ»ú(³Ñë,0.0002). ÉÄ»ú(²­ÅÄ,0.0002). ÉÄ»ú(ÆïËÜ,0.0002). ÉÄ»ú(ÉÍ,0.0002). ÉÄ»ú(ÂçÏÂ,0.0002). ÉÄ»ú(¿¹±Ê,0.0002). ÉÄ»ú(ÌÀÀÐ,0.0002). ÉÄ»ú(µÈºê,0.0002). ÉÄ»ú(ÌøÀî,0.0002). ÉÄ»ú(ÅçÄÅ,0.0002). ÉÄ»ú(Âç¹â,0.0002). ÉÄ»ú(´äë,0.0002). ÉÄ»ú(°æËÜ,0.0002). ÉÄ»ú(ºû¸¶,0.0002). ÉÄ»ú(ÂìÀî,0.0002). ÉÄ»ú(¾®¿û,0.0002). ÉÄ»ú(¹õºê,0.0002). ÉÄ»ú(ÁÒËÜ,0.0002). ÉÄ»ú(¸ÍÄÍ,0.0002). ÉÄ»ú(ºùÅÄ,0.0002). ÉÄ»ú(Ëܶ¶,0.0002). ÉÄ»ú(È«Ãæ,0.0002). ÉÄ»ú(¾¡ÅÄ,0.0002). ÉÄ»ú(±×ÅÄ,0.0002). ÉÄ»ú(Ãæ,0.0002). ÉÄ»ú(·§ÅÄ,0.0002). ÉÄ»ú(Ãö¸Ô,0.0002). ÉÄ»ú(²¸ÅÄ,0.0002). ÉÄ»ú(ȬÅÄ,0.0002). ÉÄ»ú(¼ÌÚ,0.0002). ÉÄ»ú(±ö¸«,0.0002). ÉÄ»ú(²ñÅÄ,0.0002). ÉÄ»ú(¿·Â¼,0.0002). ÉÄ»ú(Ê¡ÃÏ,0.0002). ÉÄ»ú(ÉÚ±Ê,0.0002). ÉÄ»ú(Âì,0.0002). ÉÄ»ú(ÅĽê,0.0002). ÉÄ»ú(¿À¸Í,0.0002). ÉÄ»ú(Àîź,0.0002). ÉÄ»ú(ËöµÈ,0.0002). ÉÄ»ú(¾È°æ,0.0002). ÉÄ»ú(º°Ìî,0.0002). ÉÄ»ú(¾ë¸Í,0.0002). ÉÄ»ú(»û²¬,0.0002). ÉÄ»ú(°ëÌî,0.0002). ÉÄ»ú(²ÆÌÜ,0.0002). ÉÄ»ú(Â¼Ãæ,0.0002). ÉÄ»ú(¿¹°æ,0.0002). ÉÄ»ú(µÆÅÄ,0.0002). ÉÄ»ú(Ĺͧ,0.0002). ÉÄ»ú(ÀÐÂô,0.0002). ÉÄ»ú(ÊÆÁÒ,0.0002). ÉÄ»ú(Àв¬,0.0002). ÉÄ»ú(º£Àî,0.0002). ÉÄ»ú(¿À¸¶,0.0002). ÉÄ»ú(³Á¾Â,0.0002). ÉÄ»ú(²ÏÀ¾,0.0002). ÉÄ»ú(»ûºê,0.0002). ÉÄ»ú(»ýÅÄ,0.0002). ÉÄ»ú(ÀîÅè,0.0002). ÉÄ»ú(¶ÌÅÄ,0.0002). ÉÄ»ú(Ãæ²¬,0.0002). ÉÄ»ú(Ĺ¾Â,0.0002). ÉÄ»ú(ÉÊÀî,0.0002). ÉÄ»ú(ÌøÀ¥,0.0002). ÉÄ»ú(Áý°æ,0.0002). ÉÄ»ú(ÅÄÞ¼,0.0002). ÉÄ»ú(Â籺,0.0002). ÉÄ»ú(ÃÓë,0.0002). ÉÄ»ú(¹ñʬ,0.0002). ÉÄ»ú(¹âÅè,0.0002). ÉÄ»ú(·§ÁÒ,0.0002). ÉÄ»ú(ËÜ»³,0.0002). ÉÄ»ú(¸Å»³,0.0002). ÉÄ»ú(¾®¸ý,0.0002). ÉÄ»ú(ÅÄ¿¬,0.0002). ÉÄ»ú(ÀÐÌî,0.0002). ÉÄ»ú(°æÂ¼,0.0002). ÉÄ»ú(¾®Ê¿,0.0002). ÉÄ»ú(ÆîÉô,0.0002). ÉÄ»ú(Ê¿²ì,0.0002). ÉÄ»ú(»ûÂô,0.0002). ÉÄ»ú(¸ÞÌ£,0.0002). ÉÄ»ú(ÀÖ±©,0.0002). ÉÄ»ú(ÇßÂô,0.0002). ÉÄ»ú(´ÝÅÄ,0.0002). ÉÄ»ú(¾¾¶¶,0.0002). ÉÄ»ú(Æü²¼Éô,0.0002). ÉÄ»ú(½Å¾¾,0.0002). ÉÄ»ú(¼ã»³,0.0002). ÉÄ»ú(Ê¡»Î,0.0002). ÉÄ»ú(»ùÅç,0.0002). ÉÄ»ú(ÄᲬ,0.0002). ÉÄ»ú(Ì«,0.0002). ÉÄ»ú(ÌîÅç,0.0002). ÉÄ»ú(ºå¸ý,0.0002). ÉÄ»ú(ÅÚë,0.0002). ÉÄ»ú(¿·ÊÝ,0.0002). ÉÄ»ú(Æ£Åç,0.0002). ÉÄ»ú(À¾¿¹,0.0002). ÉÄ»ú(ËÒÅÄ,0.0002). ÉÄ»ú(Âç´Ø,0.0002). ÉÄ»ú(½ÅÅÄ,0.0002). ÉÄ»ú(µÜß·,0.0002). ÉÄ»ú(¸Å»Ô,0.0002). ÉÄ»ú(ͭ¼,0.0002). ÉÄ»ú(´ä¼,0.0002). ÉÄ»ú(±º,0.0002). ÉÄ»ú(»á²È,0.0002). ÉÄ»ú(¶­,0.0002). ÉÄ»ú(Âô°æ,0.0002). ÉÄ»ú(Æ£»³,0.0002). ÉÄ»ú(¾®¹â,0.0002). ÉÄ»ú(À¾°æ,0.0002). ÉÄ»ú(¾®Â¼,0.0002). ÉÄ»ú(»û°æ,0.0002). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # (p) http://cp1.nintendo.co.jp/2012 ǤŷƲ¥µ¥¤¥È¤ÎÌäÂê¤Ç¤¹¤¬ # # $ python SimpleBarsTest.py # test_loop (__main__.testSimpleBars) ... ok # test_simple_rule (__main__.testSimpleBars) ... ok # # ---------------------------------------------------------------------- # Ran 2 tests in 0.000s # # OK # # ¥Æ¥¹¥È¥³¡¼¥É¤Þ¤Ç£Ï£Ë¤Ê¤ó¤Ç¤¹¤¬¡¢ # answer¤ò½Ð¤·¤¿¤Î¤Ç¤¹¤¬°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¤ó¤Ç¤¹¡£ # ¤³¤ÎÌäÂê¤ò²ò¤¤¤¿Êý¤¬¤¤¤Þ¤·¤¿¤é¾¯¤·¶µ¤¨¤Æ¤â¤é¤¨¤Þ¤»¤ó¤Ç¤·¤ç¤¦¤«¡£ 'iT¥Ô¥é¥ß¥Ã¥É' :- 'iT¥Ô¥é¥ß¥Ã¥É'(1,12,[i,'T']), 'iT¥Ô¥é¥ß¥Ã¥É'(12,1,['T',i]). 'iT¥Ô¥é¥ß¥Ã¥É'(1,6,[i,'T']). 'iT¥Ô¥é¥ß¥Ã¥É'(_³«»ÏÃÊ¿ô,_ÃÊ¿ô,_µ­¹æÊ¤ӽç) :- for(_³«»ÏÃÊ¿ô,N,_ÃÊ¿ô), ¥Ô¥é¥ß¥Ã¥É¤ÎÃʤòÀ¸À®(N,_µ­¹æÊ¤ӽç,L), ºÇ½é¤Î3ʸ»úʬ¤òËöÈø¤Ë°Üư¤·¤ÆÃÊʸ»úÎó¤È¤¹¤ë(L,_ÃÊʸ»úÎó), writef('%t\n',[_ÃÊʸ»úÎó]), N = _ÃÊ¿ô. ¥Ô¥é¥ß¥Ã¥É¤ÎÃʤòÀ¸À®(N,_µ­¹æÊ¤ӽç,L) :- Ãʤε­¹æÉôʬ¤òÀ¸À®(_µ­¹æÊ¤ӽç,L2), length(L,25), append(L1,L2,L1,L), all(L1,' '). Ãʤε­¹æÉôʬ¤òÀ¸À®(_µ­¹æÊ¤ӽç,L2) :- _length is (N - 1) * 2 + 1, length(L2,_length), 'µ­¹æÊ¤ӽç¤ËÊÑ¿ô¤òËä¤á¤ë'(_µ­¹æÊ¤ӽç,L2). 'µ­¹æÊ¤ӽç¤ËÊÑ¿ô¤òËä¤á¤ë'(_,[]). 'µ­¹æÊ¤ӽç¤ËÊÑ¿ô¤òËä¤á¤ë'([A|R1],[A|R2]) :- append(R1,[A],L1), 'µ­¹æÊ¤ӽç¤ËÊÑ¿ô¤òËä¤á¤ë'(L1,R2). ºÇ½é¤Î3ʸ»úʬ¤òËöÈø¤Ë°Üư¤·¤ÆÃÊʸ»úÎó¤È¤¹¤ë([_1,_2,_3|R],_ÃÊʸ»úÎó) :- append(R,[_1,_2,_3],_µá¤á¤ëµ­¹æ¤Ê¤é¤Ó), atomic_list_concat(_µá¤á¤ëµ­¹æ¤Ê¤é¤Ó,_ÃÊʸ»úÎó). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% all([],_). all([V|R],V) :- all(R,V). for(S,N,E) :- for_2(S,N,E). for(S,N,E) :- for_1(S,N,E). for_1(S,_,E) :- S < E,!,fail. for_1(S,N,E) :- N is S. for_1(S,N,E) :- S1 is S - 1, for_1(S1,N,E). for_2(S,_,E) :- S > E,!,fail. for_2(S,N,E) :- N is S. for_2(S,N,E) :- S1 is S + 1, for_2(S1,N,E). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/777 # # [1] ¼ø¶Èñ¸µ¡§É¸½àÆþÎϤ«¤é N ¤òÆþÎϤ·¡¢N ¸Ä¤Î¥µ¥¤¥³¥í¤Î½ÐÌܤÎϤγÎΨ¤Î°ìÍ÷¤òºîÀ®¤»¤è¡£ # [2] ÌäÂêʸ¡§³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£ # N = 2 # 1 : 0.00% # 2 : 2.78% # 3 : 5.56% # 4 : 8.33% # 5 : 11.11% # 6 : 13.89% # 7 : 16.17% # 8 : 13.89% # 9 : 11.11% # 10 : 8.33% # 11 : 5.56% # 12 : 2.78% # [3.3] ¸À¸ì¡§C # [4] ´ü¸Â¡§2013-08-04 22¡§00 # # 'ɸ½àÆþÎϤ«¤é N ¤òÆþÎϤ·¡¢N ¸Ä¤Î¥µ¥¤¥³¥í¤Î½ÐÌܤÎϤγÎΨ¤Î°ìÍ÷¤òºîÀ®¤»¤è¡£ ³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£' :- 'ɸ½àÆþÎϤ«¤é N ¤òÆþÎϤ·¡¢'(_N), 'N ¸Ä¤Î¥µ¥¤¥³¥í¤Î½ÐÌܤÎϤγÎΨ¤Î°ìÍ÷¤òºîÀ®¤»¤è¡£³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£'(_N). 'ɸ½àÆþÎϤ«¤é N ¤òÆþÎϤ·¡¢'(_N) :- À°¿ô¤òÆÀ¤ë('¥µ¥¤¥³¥í¤Î¸Ä¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤',_N > 0,_N). 'N ¸Ä¤Î¥µ¥¤¥³¥í¤Î½ÐÌܤÎϤγÎΨ¤Î°ìÍ÷¤òºîÀ®¤»¤è¡£³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£'(_N) :- 'N ¸Ä¤Î¥µ¥¤¥³¥í¤Î½ÐÌܤÎÏÂ'(_N,_N_6,_½ÐÌܤÎϤʤé¤Ó), between(1,_N_6,_M), '¥µ¥¤¥³¥í¤Î½ÐÌܤÎϤγÎΨ¤òɽ¼¨¤¹¤ë¡£³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£'(_½ÐÌܤÎϤʤé¤Ó,_M,_N_6,_³ÎΨ), 'ɽ¼¨¤¹¤ë¡£³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£'(_M,_³ÎΨ), _M = _N. 'N ¸Ä¤Î¥µ¥¤¥³¥í¤Î½ÐÌܤÎÏÂ'(_N,_N_6,_½ÐÌܤÎϤʤé¤Ó) :- _N_6 is 6 * _N, findall(Sum,( ½ÅÊ£½çÎó([1,2,3,4,5,6],_N,L), sum(L,Sum)), _½ÐÌܤÎϤʤé¤Ó). '¥µ¥¤¥³¥í¤Î½ÐÌܤÎϤγÎΨ¡£³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£'(_½ÐÌܤÎϤʤé¤Ó,_½ÐÌܤÎÏÂ,_N_6,_³ÎΨ) :- count(member(_½ÐÌܤÎÏÂ,_½ÐÌܤÎϤʤé¤Ó),Count), _³ÎΨ is ((Count / _N_6) * 1000 + 5) / 1000. 'ɽ¼¨¤¹¤ë¡£³ÎΨ¤Ï¾®¿ô»°°Ì¤ò»Í¼Î¸ÞÆþ¤¹¤ë¤³¤È¡£'(_M,_³ÎΨ) :- writef('%t : ',[_M]), format('~2f%\n',[_³ÎΨ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/751 # # (sum, kosu)¤ËÂФ·¤Æ¡¢ # sum = a1 + ¡¦¡¦¡¦¡¡ +¡¡an ( n <= kosu , 1 <= ai <= 4 ) # ¤òËþ¤¿¤¹¡¢¿ôÎó¡¡(a1,¡¦¡¦¡¦ ,an)¤Ï²¿Ä̤ꤢ¤ë¤«? # # '(sum, kosu)¤ËÂФ·¤Æ¡¢sum = a1 + ¡¦¡¦¡¦¡¡ +¡¡an ( n <= kosu , 1 <= ai <= 4 ) ¤òËþ¤¿¤¹¡¢¿ôÎó¡¡(a1,¡¦¡¦¡¦ ,an)¤Ï²¿Ä̤ꤢ¤ë¤«? '(_sum,_kosu,_²¿Ä̤ê) :- findall(_n,between(1,_n,_kosu),_1¤«¤é¤Î_kosu¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), count('(sum, kosu)¤ËÂФ·¤Æ¡¢sum = a1 + ¡¦¡¦¡¦¡¡ +¡¡an ( n <= kosu , 1 <= ai <= 4 ) ¤òËþ¤¿¤¹¡¢¿ôÎó¡¡(a1,¡¦¡¦¡¦ ,an)'(_1¤«¤é¤Î_kosu¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_sum,_kosu,L),_²¿Ä̤ê). '(sum, kosu)¤ËÂФ·¤Æ¡¢sum = a1 + ¡¦¡¦¡¦¡¡ +¡¡an ( n <= kosu , 1 <= ai <= 4 ) ¤òËþ¤¿¤¹¡¢¿ôÎó¡¡(a1,¡¦¡¦¡¦ ,an)'(_1¤«¤é¤Î_kosu¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_sum,_kosu,L) :- between(1,_n,_kosu), ÁȤ߹ç¤ï¤»(_1¤«¤é¤Î_kosu¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_n,L), sum(L,_sum). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢Sum = 1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤òɽ¼¨¤·¤Ê¤µ¤¤ # '¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢Sum = 1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤òɽ¼¨¤·¤Ê¤µ¤¤' :- '¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢'(_N), 'Sum = 1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤òɽ¼¨¤·¤Ê¤µ¤¤'(_N). '¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢'(_N) :- À°¿ô¤òÆÀ¤ë('N',_N > 2,_N). 'Sum = 1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤ò·×»»¤·¤Æ¡¢É½¼¨¤·¤Ê¤µ¤¤'(_N) :- 'Sum = 1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤ò·×»»¤·¤Æ¡¢'(_N,_¼°É½¼¨Ê¸»úÎó,_Sum), ɽ¼¨¤·¤Ê¤µ¤¤(_Sum,_¼°É½¼¨Ê¸»úÎó). 'Sum = 1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤ò·×»»¤·¤Æ¡¢'(_N,_¼°É½¼¨Ê¸»úÎó,_Sum) :- '1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤ò'(_N,_¼°Ê¸»úÎó,_¼°É½¼¨Ê¸»úÎó), ·×»»¤·¤Æ(_¼°Ê¸»úÎó,_Sum). '1¤Î4¾è + 2¤Î4¾è + ... + N¤Î4¾è ¤ò'(_N,_¼°Ê¸»úÎó,_¼°É½¼¨Ê¸»úÎó) :- findall([_4¾è¹àʸ»úÎó,_4¾èɽ¼¨Ê¸»úÎó],( between(1,_M,_N), atomic_list_concat([_M,¤Î4¾è],_4¾èɽ¼¨Ê¸»úÎó), atomic_list_concat([_M,' ^ ',4],_4¾è¹àʸ»úÎó)), LL), ¼°Ê¸»úÎó¤È¼°É½¼¨Ê¸»úÎó¤òʬΥ(LL,_¼°Ê¸»úÎó,_¼°É½¼¨Ê¸»úÎó). ¼°Ê¸»úÎó¤È¼°É½¼¨Ê¸»úÎó¤òʬΥ(LL,_¼°Ê¸»úÎó,_¼°É½¼¨Ê¸»úÎó) :- žÃÖ(LL,[L1,L2]), atomic_list_concat(L1,' + ',_¼°Ê¸»úÎó), atomic_list_concat(L2,' + ',_¼°É½¼¨Ê¸»úÎó). ·×»»¤·¤Æ(_¼°Ê¸»úÎó,_Sum) :- atom_to_term(_¼°Ê¸»úÎó,_¼°,_), _Sum is _¼°. ɽ¼¨¤·¤Ê¤µ¤¤(_Sum,_¼°É½¼¨Ê¸»úÎó) :- writef('%t = %t\n',[_Sum,_¼°Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢Sum = 14 + 24 + ... + N4 ¤òɽ¼¨¤·¤Ê¤µ¤¤ # '¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢Sum = 14 + 24 + ... + N4 ¤òɽ¼¨¤·¤Ê¤µ¤¤' :- '¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢'(_N), 'Sum = 14 + 24 + ... + N4 ¤òɽ¼¨¤·¤Ê¤µ¤¤'(_N). '¥­¡¼¥Ü¡¼¥É¤«¤éN¤òÆþÎϤ·¡¢'(_N) :- À°¿ô¤òÆÀ¤ë('N',_N > 2,_N). 'Sum = 14 + 24 + ... + N4 ¤ò·×»»¤·¤Æ¡¢É½¼¨¤·¤Ê¤µ¤¤'(_N) :- 'Sum = 14 + 24 + ... + N4 ¤ò·×»»¤·¤Æ¡¢'(_N,_¼°Ê¸»úÎó,_Sum), ɽ¼¨¤·¤Ê¤µ¤¤(_Sum,_¼°Ê¸»úÎó). 'Sum = 14 + 24 + ... + N4 ¤ò·×»»¤·¤Æ¡¢'(_N,_¼°Ê¸»úÎó,_Sum) :- '14 + 24 + ... + N4 ¤ò'(_N,_¼°Ê¸»úÎó), ·×»»¤·¤Æ(_¼°Ê¸»úÎó,_Sum). '14 + 24 + ... + N4 ¤ò'(_N,_¼°Ê¸»úÎó) :- findall(_·×»»¤ÎÂоݤȤʤëÀ°¿ô,( between(1,_M,_N), _·×»»¤ÎÂоݤȤʤëÀ°¿ô is 10 * _M + 4), _·×»»¤ÎÂоݤȤʤëÀ°¿ô¤Ê¤é¤Ó), atomic_list_concat(_·×»»¤ÎÂоݤȤʤëÀ°¿ô¤Ê¤é¤Ó,' + ',_¼°Ê¸»úÎó). ·×»»¤·¤Æ(_¼°Ê¸»úÎó,_Sum) :- atom_to_term(_¼°Ê¸»úÎó,_¼°,_), _Sum is _¼°. ɽ¼¨¤·¤Ê¤µ¤¤(_Sum,_¼°Ê¸»úÎó) :- writef('%t = %t\n',[_Sum,_¼°Ê¸»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/744 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°¼Â½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&amp;¥ê¥ó¥¯)¡§ # ¼¡¤Î¼°¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì¡£ # Sum = 14 + 24 + ... + N4 # (Ãí°Õ)¡¡¡¦ N¤ÎÃͤϡ¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ # ¡¡¡¡¡¡¡¡¡¦scanf¤Ç¤Ï¤Ê¤¯getchar¤òÍѤ¤¤ë¤³¤È # '¼¡¤Î¼°¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì Sum = 14 + 24 + ... + N4 (Ãí°Õ)¡¡¡¦ N¤ÎÃͤϡ¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ ¡¡¡¡¡¡¡¡¡¦scanf¤Ç¤Ï¤Ê¤¯getchar¤òÍѤ¤¤ë¤³¤È' :- 'N¤ÎÃͤϡ¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£¡¦scanf¤Ç¤Ï¤Ê¤¯getchar¤òÍѤ¤¤ë¤³¤È'(_N), 'Sum = 14 + 24 + ... + N4 ¤Î¼°¤ò'(_N,L), ·×»»¤¹¤ë(L,Sum), atomic_list_concat(L,' + ',S1), write('%t = %t\n',[Sum,S1]). 'N¤ÎÃͤϡ¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£¡¦scanf¤Ç¤Ï¤Ê¤¯getchar¤òÍѤ¤¤ë¤³¤È'(_N) :- write('À°¿ôN[3-9]¤òÆþÎϤ·¤Æ²¼¤µ¤¤ : '), get_line(Line), '¿ÇÃÇ : N¤ÎÃͤϥ­¡¼¥Ü¡¼¥É¤«¤éÆþÎÏ'(Line,_N),!. 'N¤ÎÃͤϡ¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£¡¦scanf¤Ç¤Ï¤Ê¤¯getchar¤òÍѤ¤¤ë¤³¤È'(_N) :- 'N¤ÎÃͤϡ¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£¡¦scanf¤Ç¤Ï¤Ê¤¯getchar¤òÍѤ¤¤ë¤³¤È'(_N). '¿ÇÃÇ : N¤ÎÃͤϥ­¡¼¥Ü¡¼¥É¤«¤éÆþÎÏ'(Line,_N) :- atom_number(Line,_N), integer(_N), _N > 2,!. '¿ÇÃÇ : N¤ÎÃͤϥ­¡¼¥Ü¡¼¥É¤«¤éÆþÎÏ'(Line,_N) :- writef('ÆþÎϤµ¤ì¤¿ÃÍ%t¤Ï3°Ê¾å9°Ê²¼¤ÎÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. 'Sum = 14 + 24 + ... + N4 ¤Î¼°¤ò'(_N,L) :- findall(_m_1,( between(1,_m,_N), _m_1 is _m * 10 + 4), L). ·×»»¤¹¤ë(L,Sum) :- sum(L,Sum). sum([],0). sum([N|R],Sum) :- sum(R,Sum_1), Sum is Sum_1 + N. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤Èsum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤòɽ¼¨¤»¤è¡£ # 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤Èsum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤòɽ¼¨¤»¤è¡£' :- 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤È'(_sum¤Î·×»»·ë²Ì), sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(1,0,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ), 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤Èsum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤòɽ¼¨¤¹¤ë¡£'(_sum¤Î·×»»·ë²Ì,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ). 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤È'(_sum¤Î·×»»·ë²Ì) :- findsum(S,( between(1,100,_n), S is _n ^ 2), _sum¤Î·×»»·ë²Ì). sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n,_sum,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- sum_2 is _sum + _n ^ 2, _n_2 is _n + 1, sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n,_n_2,_sum,_sum_2,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ). sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ,_,_sum,_,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- _sum >= 100,!. sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n,_n_2,_sum,_sum_2,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n_2,_sum_2,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ). 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤Èsum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤòɽ¼¨¤¹¤ë¡£'(_sum¤Î·×»»·ë²Ì,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- writef('sum¤Î·×»»·ë²Ì %t, sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ %t\n',[_sum¤Î·×»»·ë²Ì,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤Èsum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤòɽ¼¨¤»¤è¡£ # 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤Èsum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤòɽ¼¨¤»¤è¡£' :- 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤È'(_sum¤Î·×»»·ë²Ì), sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(1,0,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ), 'ɽ¼¨¤»¤è¡£'(_sum¤Î·×»»·ë²Ì,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ). 'sum=¦²(n=1~100)n^2¤Î·×»»·ë²Ì¤È'(_sum¤Î·×»»·ë²Ì) :- findsum(S,( between(1,100,_n), S is _n ^ 2), _sum¤Î·×»»·ë²Ì). sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n,_sum,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- sum_2 is _sum + _n ^ 2, _n_2 is _n + 1, sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n,_n_2,_sum,_sum_2,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ). sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ,_,_sum,_,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- _sum >= 100,!. sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n,_n_2,_sum,_sum_2,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃͤò(_n_2,_sum_2,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ). 'ɽ¼¨¤»¤è¡£'(_sum¤Î·×»»·ë²Ì,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ) :- writef('sum¤Î·×»»·ë²Ì %t, sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ %t\n',[_sum¤Î·×»»·ë²Ì,_sum¤¬½é¤á¤Æ100°Ê¾å¤Ë¤Ê¤ën¤ÎÃÍ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ºÇÂçÉôʬÎóÏÂ(_¿ôÃͤʤé¤Ó,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó) :- length(_¿ôÃͤʤé¤Ó,_Ťµ), 'Á´¤Æ¤ÎÉôʬÎó¡¦ÉôʬÎóϤòÆÀ¤ë'(_¿ôÃͤʤé¤Ó,_Ťµ,_Á´¤Æ¤ÎÉôʬÎó_ÉôʬÎóÏÂ), Á´¤Æ¤ÎÉôʬÎóϤ«¤éºÇÂçÉôʬÎóϤȤ½¤ÎÉôʬÎó¤òÁªÊ̤¹¤ë(_Á´¤Æ¤ÎÉôʬÎóÏÂ,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó). 'Á´¤Æ¤ÎÉôʬÎó¡¦ÉôʬÎóϤòÆÀ¤ë'(_¿ôÃͤʤé¤Ó,_Ťµ,_Á´¤Æ¤ÎÉôʬÎó_ÉôʬÎóÏÂ) :- findall([_ÉôʬÎó,_¹ç·×],( between(1,_Ťµ,_n), ÁȤ߹ç¤ï¤»(_¿ôÃͤʤé¤Ó,_n,_ÉôʬÎó), sum(_ÉôʬÎó,_¹ç·×)), _Á´¤Æ¤ÎÉôʬÎó_ÉôʬÎóÏÂ). Á´¤Æ¤ÎÉôʬÎóϤ«¤éºÇÂçÉôʬÎóϤȤ½¤ÎÉôʬÎó¤òÁªÊ̤¹¤ë(LL,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó) :- LL = [[_ÉôʬÎó_1,_¹ç·×_1]|R], ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ(R,_¹ç·×_1,[_ÉôʬÎó_1],_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó). ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ([],_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó). ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ([[_ÉôʬÎó,_¹ç·×]|R],_¹ç·×,LL_1,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó) :- ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ(R,_¹ç·×,[_ÉôʬÎó|LL_1],_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó). ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ([[_ÉôʬÎó,_¹ç·×]|R],_¹ç·×_1,LL_1,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó) :- _¹ç·× > _¹ç·×_1, ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ(R,_¹ç·×,[_ÉôʬÎó],_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó). ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ([[_ÉôʬÎó,_¹ç·×]|R],_¹ç·×_1,LL_1,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó) :- _¹ç·× < _¹ç·×_1, ºÇÂçÉôʬÎó_ÉôʬÎóÏÂ(R,_¹ç·×_1,LL_1,_ºÇÂçÉôʬÎóÏÂ,_ºÇÂçÉôʬÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 165ÂåÌÜ #32 # ÁíÅö¤ê¤ò¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤Æ²¼¤µ¤¤ # # VC++2010 # Windows Vista Home SP2 # # Îã # Âè1°ú¿ô ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú # Âè2°ú¿ô ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú # Âè3°ú¿ô ÁíÅö¤ê¤¹¤ë·å¿ô # func('a', 'z', 3); # ¤È¤·¤¿»þ¤Îưºî¤Ï # aaa¡Ázzz¡¢aa¡Ázz¡¢a¡Áz # ¤ÎÁ´¤Æ¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤·¤¿¤¤¤Ç¤¹ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ # # ÁíÅö¤ê(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ÁíÅö¤ê¤¹¤ë·å¿ô,_ÁíÅö¤ê) :- ʸ»ú¤Ê¤é¤Ó¤ò³ÎÄꤹ¤ë(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ʸ»ú¤Ê¤é¤Ó), ÁíÅö¤ê(_ÁíÅö¤ê¤¹¤ë·å¿ô,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê). ÁíÅö¤ê(1,_ʸ»ú¤Ê¤é¤Ó,_ʸ»ú¤Ê¤é¤Ó). ÁíÅö¤ê(_·å¿ô,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê) :- _·å¿ô > 1, _·å¿ô_1 is _·å¿ô - 1, ÁíÅö¤ê(_·å¿ô_1,_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2), ÁíÅö¤ê_2(_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2,_ÁíÅö¤ê). ÁíÅö¤ê_2(_ʸ»ú¤Ê¤é¤Ó,_ÁíÅö¤ê_2,_ÁíÅö¤ê) :- findall(_ʸ»úÎó,( member(_ʸ»ú_1,_ʸ»ú¤Ê¤é¤Ó), member(_ʸ»úÎó_2,_ÁíÅö¤ê_2), atom_concat(_ʸ»ú_1,_ʸ»úÎó_2,_ʸ»úÎó)), _ÁíÅö¤ê_1), append(_ÁíÅö¤ê_1,_ÁíÅö¤ê_2,_ÁíÅö¤ê). ʸ»ú¤Ê¤é¤Ó¤ò³ÎÄꤹ¤ë(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ʸ»ú¤Ê¤é¤Ó) :- char_code(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú,_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É), char_code(_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É), findall(_ʸ»ú,( between(_ÁíÅö¤ê¤Î½é¤á¤Îʸ»ú¥³¡¼¥É,_ÁíÅö¤ê¤ÎºÇ¸å¤Îʸ»ú¥³¡¼¥É,_ʸ»ú¥³¡¼¥É), char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É)), _ʸ»ú¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_¹à) :- '¹à¤¬ÊÑ¿ô¤Î»þ¤Ïµ¶¡¢atomic¤Î»þ¤Ï¿¿¤Ç¤¢¤ë'(_¹à),!. ¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_¹à) :- '¹à¤¬Ê£¹ç¹à¤Î»þ¤ÏÁ´¤Æ¤Î°ú¿ô¤Ë¤Ä¤¤¤Æ¡Ö¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤¡×¤³¤È¤ò¸¡ºº¤¹¤ë'(_¹à). '¹à¤¬ÊÑ¿ô¤Î»þ¤Ïµ¶¡¢atomic¤Î»þ¤Ï¿¿¤Ç¤¢¤ë'(_¹à) :- '¹à¤¬ÊÑ¿ô¤Î»þ¤Ïµ¶¡¢'(_¹à). '¹à¤¬ÊÑ¿ô¤Î»þ¤Ïµ¶¡¢atomic¤Î»þ¤Ï¿¿¤Ç¤¢¤ë'(_¹à) :- '¹à¤¬atomic¤Î»þ¤Ï¿¿¤Ç¤¢¤ë'(_¹à). '¹à¤¬ÊÑ¿ô¤Î»þ¤Ïµ¶¡¢'(_¹à) :- var(_¹à),!, fail. '¹à¤¬atomic¤Î»þ¤Ï¿¿¤Ç¤¢¤ë'(_¹à) :- atomic(_¹à). '¹à¤¬Ê£¹ç¹à¤Î»þ¤ÏÁ´¤Æ¤Î°ú¿ô¤Ë¤Ä¤¤¤Æ¡Ö¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤¡×¤³¤È¤ò¸¡ºº¤¹¤ë'(_¹à) :- forall(¹à¤¬Ê£¹ç¹à¤Î»þ¤ÏÁ´¤Æ¤Î°ú¿ô¤Ë¤Ä¤¤¤Æ(_¹à,_°ú¿ô),¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_°ú¿ô)). ¹à¤¬Ê£¹ç¹à¤Î»þ¤ÏÁ´¤Æ¤Î°ú¿ô¤Ë¤Ä¤¤¤Æ(_¹à,_°ú¿ô) :- functor(_¹à,_´Ø¿ô̾,_°ú¿ô¤Î¿ô), between(1,_°ú¿ô¤Î¿ô,_nÈÖÌÜ), arg(_nÈÖÌÜ,_¹à,_°ú¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_¹à) :- var(_¹à),!,fail. ¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_¹à) :- atom(_¹à),!. ¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_¹à) :- forall((functor(_¹à,_´Ø¿ô̾,_°ú¿ô¤Î¿ô), between(1,_°ú¿ô¤Î¿ô,_nÈÖÌÜ), arg(_nÈÖÌÜ,_¹à,_°ú¿ô)), ¹à¤ÎÃæ¤ËÊÑ¿ô¤ò´Þ¤Þ¤Ê¤¤(_°ú¿ô)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370620300/140 # # [1] ¼ø¶È¿ô³Ø¤ÎÌäÂê¤òC¸À¸ì¤Ç²ò¤¯ # [2] ÌäÂê # À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é # ¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë # ¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£ # [3.1] 7 # [3.2] gcc # [3.3] C # [4] ´ü¸Â¡§28Æü9:00 # [5] ¤½¤Î¾À©¸Â¡§ ½ã¿èC¥é¥¤¥Ö¥é¥ê¡£ # # º¹¤¬6¤È¤Ê¤ëÁÇ¿ô¥Ú¥¢¤ò¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ë(L) :- À°¿ô¤òÆÀ¤ë(À°¿ôx,_x), findall([_ÁÇ¿ô_1,_ÁÇ¿ô_2],( Æó¤Ä¤ÎÁÇ¿ô¤Îº¹¤¬6¤È¤Ê¤ë(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2)), L). Æó¤Ä¤ÎÁÇ¿ô¤Îº¹¤¬6¤È¤Ê¤ë(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2) :- findall(N,between(2,_x,N),_2¤«¤é_x¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é_x¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_2¤«¤é¹â¡¹_x¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó), Áȹ礻(_2¤«¤é¹â¡¹_x¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó,2,[_ÁÇ¿ô_1,_ÁÇ¿ô_2]), 6 is abs(_ÁÇ¿ô_1 - _ÁÇ¿ô_2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). % À°¿ô¤òÆÀ¤ë/2 % % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/889 # # [1] ¼ø¶È¿ô³Ø¤ÎÌäÂê¤òC¸À¸ì¤Ç²ò¤¯ # [2] ÌäÂê # À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é # ¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë # ¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£ # [3.1] 7 # [3.2] gcc # [3.3] C # [4] ´ü¸Â¡§28Æü9:00 # [5] ¤½¤Î¾À©¸Â¡§ ½ã¿èC¥é¥¤¥Ö¥é¥ê¡£ # # 'À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é ¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£'(_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3) :- À°¿ô¤òÆÀ¤ë(À°¿ôx,(_x >= 2,_x =< 100000),_x), findall([_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô3],( x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3)), _£³¤Ä¤ÎÁÇ¿ô¤Î¤Ê¤é¤Ó), '¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£'(_x,_£³¤Ä¤ÎÁÇ¿ô¤Î¤Ê¤é¤Ó). x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3) :- findall(N,between(2,_x,N),_2¤«¤é_x¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é_x¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_2¤«¤é¹â¡¹_x¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó), Áȹ礻(_2¤«¤é¹â¡¹_x¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó,3,[_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3]), _x is _ÁÇ¿ô_1 + _ÁÇ¿ô_2 + _ÁÇ¿ô_3. '¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£'(_x,_£³¤Ä¤ÎÁÇ¿ô¤Î¤Ê¤é¤Ó) :- member([_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3],_£³¤Ä¤ÎÁÇ¿ô¤Î¤Ê¤é¤Ó), '¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ»¤è¡£'(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3),!. '¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ»¤è¡£'(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3) :- writef('%t+%t+%t = %t\n',[_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3,_x). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). % À°¿ô¤òÆÀ¤ë/3 % % Ãí°Õ % % ¤³¤³¤Ç¤Ï¡¢findall/3¤òÍѤ¤¤Æ¡¢x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë/4¤ÎÁ´²ò¤ò % °ìö¤Ê¤é¤Ó¤Ë¼èÆÀ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ % ¤½¤Î¸å¤Î½ÐÎϽҸì¤ò·èÄêÀ­¤Ë¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤·¤Æ¤¤¤ë¡£ % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/889 # # [1] ¼ø¶È¿ô³Ø¤ÎÌäÂê¤òC¸À¸ì¤Ç²ò¤¯ # [2] ÌäÂê # À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é # ¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë # ¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£ # [3.1] 7 # [3.2] gcc # [3.3] C # [4] ´ü¸Â¡§28Æü9:00 # [5] ¤½¤Î¾À©¸Â¡§ ½ã¿èC¥é¥¤¥Ö¥é¥ê¡£ # # 'À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é ¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£'(_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3) :- À°¿ô¤òÆÀ¤ë(À°¿ôx,(_x >= 2,_x =< 100000),_x), x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3), '¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ»¤è¡£'(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3),!. x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3) :- findall(N,between(2,_x,N),_2¤«¤é_x¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é_x¤Þ¤Ç¤ÎÀ°¿ô¤Ê¤é¤Ó,_2¤«¤é¹â¡¹_x¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó), Áȹ礻(_2¤«¤é¹â¡¹_x¤Þ¤Ç¤ÎÁÇ¿ô¤Ê¤é¤Ó,3,[_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3]), _x is _ÁÇ¿ô_1 + _ÁÇ¿ô_2 + _ÁÇ¿ô_3. '¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ»¤è¡£'(_x,_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3) :- writef('%t+%t+%t = %t\n',[_ÁÇ¿ô_1,_ÁÇ¿ô_2,_ÁÇ¿ô_3,_x). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). % À°¿ô¤òÆÀ¤ë/3 % % % Ãí°Õ % % ¡ÖÊ£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£¡×¤Ï½Ò¸ìÄêµÁ¤Ç¤­¤Ê¤¤¡£ % !(¥«¥Ã¥È)¤ò½Ò¸ì¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ % % ºÇ½é¤Î½Ò¸ì¤ÎºÇ¸å¤Î ! ¤¬¡ÖÊ£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£¡×¤Î°ÕÌ£¤Ç¤¢¤ë¡£ % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/119 # # [1] ¼ø¶Èñ¸µ¡§²ÝÂê # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£¤Ç¤­¤¿¿ôÃÍ¤âÆ±Íͤ˷«¤êÊÖ¤·¤Æ¤¤¤­ # ºÇ½ªÅª¤Ë 1 ¼ý«¤¹¤ë¤â¤Î¤ò Happy number ¤È¸Æ¤Ö¡£ # # 28¡Ä¡» # 2^2 + 8^2 = 68 # 6^2 + 8^2 = 100 # 1^2 + 0^2 + 0^2 = 1 # # 89¡Ä¡ß # 8^2 + 9^2 = 145 # 1^2 + 4^2 + 5^2 = 42 # 4^2 + 2^2 = 20 # 2^2 + 0^2 = 4 # # 1 <= n <= 10000 ¤È¤·¤¿»þ¤ÎÁ´¤Æ¤Î Happy number ¤òÎóµó¤»¤è¡£ # '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£¤Ç¤­¤¿¿ôÃÍ¤âÆ±Íͤ˷«¤êÊÖ¤·¤Æ¤¤¤­ ºÇ½ªÅª¤Ë 1 ¼ý«¤¹¤ë¤â¤Î¤ò Happy number ¤È¸Æ¤Ö¡£ 28¡Ä¡» 2^2 + 8^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1 89¡Ä¡ß 8^2 + 9^2 = 145 1^2 + 4^2 + 5^2 = 42 4^2 + 2^2 = 20 2^2 + 0^2 = 4 1 <= n <= 10000 ¤È¤·¤¿»þ¤ÎÁ´¤Æ¤Î Happy number ¤òÎóµó¤»¤è¡£'(_Happy_number¤Ê¤é¤Ó) :- '1 <= n <= 10000 ¤È¤·¤¿»þ¤ÎÁ´¤Æ¤Î Happy number ¤òÎóµó¤»¤è¡£'(_Happy_number¤Ê¤é¤Ó). '1 <= n <= 10000 ¤È¤·¤¿»þ¤ÎÁ´¤Æ¤Î Happy number ¤òÎóµó¤»¤è¡£'(_Happy_number¤Ê¤é¤Ó) :- findall(_n,( between(1,1000,_n), 'Happy number'(_n)), _Happy_number¤Ê¤é¤Ó). 'Happy number'(_n) :- '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£¤Ç¤­¤¿¿ôÃÍ¤âÆ±Íͤ˷«¤êÊÖ¤·¤Æ¤¤¤­ºÇ½ªÅª¤Ë 1 ¼ý«¤¹¤ë¤â¤Î¤ò Happy number ¤È¸Æ¤Ö¡£'(_n,[]). '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£¤Ç¤­¤¿¿ôÃÍ¤âÆ±Íͤ˷«¤êÊÖ¤·¤Æ¤¤¤­ºÇ½ªÅª¤Ë 1 ¼ý«¤¹¤ë¤â¤Î¤ò Happy number ¤È¸Æ¤Ö¡£'(1,_) :- !. '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£¤Ç¤­¤¿¿ôÃÍ¤âÆ±Íͤ˷«¤êÊÖ¤·¤Æ¤¤¤­ºÇ½ªÅª¤Ë 1 ¼ý«¤¹¤ë¤â¤Î¤ò Happy number ¤È¸Æ¤Ö¡£'(_n,L) :- \+(member(_n,L)), '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£'(_n,0,_³Æ·å¤Î¿ô¤Î2¾è¤ÎÏÂ), '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£¤Ç¤­¤¿¿ôÃÍ¤âÆ±Íͤ˷«¤êÊÖ¤·¤Æ¤¤¤­ºÇ½ªÅª¤Ë 1 ¼ý«¤¹¤ë¤â¤Î¤ò Happy number ¤È¸Æ¤Ö¡£'(_³Æ·å¤Î¿ô¤Î2¾è¤ÎÏÂ,[_n|L]). '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£'(0,_³Æ·å¤Î¿ô¤Î2¾è¤ÎÏÂ,_³Æ·å¤Î¿ô¤Î2¾è¤ÎÏÂ) :- !. '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£'(_n,_s_1,_³Æ·å¤Î¿ô¤Î2¾è¤ÎÏÂ) :- _n_1 is _n mod 10, _n_2 is _n // 10, _s_2 is _s_1 + (_n_1 * _n_1), '¼«Á³¿ô n ¤Î³Æ·å¤Î¿ô¤ò2¾è¤·¤½¤ÎϤòµá¤á¤ë¡£'(_n_2,_s_2,_³Æ·å¤Î¿ô¤Î2¾è¤ÎÏÂ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/69 # # # ÇÛÎó¤ò»È¤ï¤º¤Ë printf for while if ¤ò»È¤Ã¤Æ£³¥±¥¿¥«¥ó¥Þ¶èÀÚ¤ê¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤«¡© # 'ÇÛÎó¤ò»È¤ï¤º¤Ë printf for while if ¤ò»È¤Ã¤Æ£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(0) :- write('0'). 'ÇÛÎó¤ò»È¤ï¤º¤Ë printf for while if ¤ò»È¤Ã¤Æ£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N) :- N > 0, '£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N). 'ÇÛÎó¤ò»È¤ï¤º¤Ë printf for while if ¤ò»È¤Ã¤Æ£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N) :- 'Éé¿ô¤Î¾ì¹ç¤Ï¥Þ¥¤¥Ê¥¹µ­¹æ¤òɽ¼¨¤·¤Æ¡¢-1¤ò³Ý¤±¤ÆÀµ¿ô¤È¤¹¤ë'(N,N_1), '£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N_1). 'Éé¿ô¤Î¾ì¹ç¤Ï¥Þ¥¤¥Ê¥¹µ­¹æ¤òɽ¼¨¤·¤Æ¡¢-1¤ò³Ý¤±¤ÆÀµ¿ô¤È¤¹¤ë'(N,N_1) :- N < 0, write('-'), N_1 is N * (-1). '£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(0). '£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N) :- '£³¥±¥¿Ì¤Ëþ¤Ë¤Ê¤Ã¤¿¤é¿ôÃͤò¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹¤Çɽ¼¨¤¹¤ë(¤¿¤À¤·¥¼¥í¤ò½ü³°)'(N). '£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N) :- '£³¥±¥¿°Ê¾åÍ­¤ë»þ¤ÏºÇ¸å¤Î£³¥±¥¿¤È¤½¤ì°Ê¾å¤ËʬΥ¤·¤Æ'(N,N_1,N_2), '£³¥±¥¿¥«¥ó¥Þ¶èÀڤꤷ¤ÆÉ½¼¨¤¹¤ë'(N_2), 'ºÇ¸å¤Î£³¥±¥¿¤Î¿ôÃͤò¥«¥ó¥Þɽ¼¨¸å¤Ë¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨¤¹¤ë'(N_1). '£³¥±¥¿Ì¤Ëþ¤Ë¤Ê¤Ã¤¿¤é¿ôÃͤò¥Ø¥Ã¥É¥¼¥í¥µ¥×¥ì¥¹¤Çɽ¼¨¤¹¤ë(¤¿¤À¤·¥¼¥í¤ò½ü³°)'(N) :- between(1,999,N), writef('%t',[N]). '£³¥±¥¿°Ê¾åÍ­¤ë»þ¤ÏºÇ¸å¤Î£³¥±¥¿¤È¤½¤ì°Ê¾å¤ËʬΥ¤·¤Æ'(N,N_1,N_2) :- N >= 1000, N_1 is N mod 1000, N_2 is N // 1000. 'ºÇ¸å¤Î£³¥±¥¿¤Î¿ôÃͤò¥«¥ó¥Þɽ¼¨¸å¤Ë¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨¤¹¤ë'(N) :- write(','), '£³¥±¥¿¤Î¿ôÃͤò¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨¤¹¤ë'(N). '£³¥±¥¿¤Î¿ôÃͤò¥Ø¥Ã¥É¥¼¥í¥µ¥×¥é¥¤¤Çɽ¼¨¤¹¤ë'(N) :- N_1 is N + 1000, atom_number(A,N_1), sub_atom(A,1,3,_,B), writef('%t',[B]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1362913813/370 # # ¡üRegular Expression¤Î»ÈÍѴĶ­ # ActivePerl5.8 # # ¡ü¸¡º÷¤«ÃÖ´¹¤«¡© # ¸¡º÷ # # ¡üÀâÌÀ # Ϣ³¤¹¤ë¿ô¤ò¸¡º÷¤·¤¿¤¤(1965¤«¤é2011¤Þ¤Ç¤Î¿ô) # # ¡üÂоݥǡ¼¥¿(ÇÛÎóÆâ¤Ë³ÊǼ) # 1952 # 1965 # 1986 # 2012 # 1972 # 2011 # ¡¡¡¦ # ¡¡¡¦ # ¡ü´õ˾¤¹¤ë·ë²Ì(ÇÛÎó¤Î³ÆÍ×ÁǤòÀµµ¬É½¸½¤Ç¸¡º÷¤·¤Æ¡¢¥Þ¥Ã¥Á¤¹¤ëÍ×ÁǤÀ¤±Ãê½Ð) # 1965 # 1986 # 1972 # 2011 # ¡¡¡¦ # ¡¡¡¦ # # ÇÛÎó¤Î³ÆÍ×ÁǤ¬1955¤«¤é2011¤Þ¤Ç¤Î¿ô¤Î¾ì¹ç¤Ë¥Þ¥Ã¥Á¤¹¤ëÀµµ¬É½¸½¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤ # # '¡ü¸¡º÷¤«ÃÖ´¹¤«¡© ¸¡º÷ ¡üÀâÌÀ Ϣ³¤¹¤ë¿ô¤ò¸¡º÷¤·¤¿¤¤(1965¤«¤é2011¤Þ¤Ç¤Î¿ô) ¡üÂоݥǡ¼¥¿(ÇÛÎóÆâ¤Ë³ÊǼ) 1952 1965 1986 2012 1972 2011 ¡¡¡¦ ¡¡¡¦ ¡ü´õ˾¤¹¤ë·ë²Ì(ÇÛÎó¤Î³ÆÍ×ÁǤòÀµµ¬É½¸½¤Ç¸¡º÷¤·¤Æ¡¢¥Þ¥Ã¥Á¤¹¤ëÍ×ÁǤÀ¤±Ãê½Ð) 1965 1986 1972 2011 ¡¡¡¦ ¡¡¡¦'(_ʸ»úÎó,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó,_¸åʸ»úÎó) :- 'Ϣ³¤¹¤ë¿ô¤ò¸¡º÷¤·¤¿¤¤(1965¤«¤é2011¤Þ¤Ç¤Î¿ô)'(_ʸ»úÎó,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó,_¸åʸ»úÎó). 'Ϣ³¤¹¤ë¿ô¤ò¸¡º÷¤·¤¿¤¤(1965¤«¤é2011¤Þ¤Ç¤Î¿ô)'(_ʸ»úÎó,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó,_¸åʸ»úÎó) :- atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), 'ʸ»ú¤Ê¤é¤Ó¤«¤éϢ³¤¹¤ë¿ô¤ò¸¡º÷¤·¤¿¤¤(1965¤«¤é2011¤Þ¤Ç¤Î¿ô)'(_ʸ»ú¤Ê¤é¤Ó,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó,_¸åʸ»úÎó). 'ʸ»ú¤Ê¤é¤Ó¤«¤éϢ³¤¹¤ë¿ô¤ò¸¡º÷¤·¤¿¤¤(1965¤«¤é2011¤Þ¤Ç¤Î¿ô)'(_ʸ»ú¤Ê¤é¤Ó,_Á°Ê¸»úÎó,_Ŭ¹çʸ»úÎó,_¸åʸ»úÎó) :- '¿ôÃͤòÀÚ¤ê½Ð¤¹(1965¤«¤é2011¤Þ¤Ç¤Î¿ô)'(_ʸ»ú¤Ê¤é¤Ó,L1,L2,L3,N), atom_chars(_Á°Ê¸»úÎó,L1), atom_chars(_¸åʸ»úÎó,L3), atom_chars(_Ŭ¹çʸ»úÎó,L2). '¿ôÃͤòÀÚ¤ê½Ð¤¹(1965¤«¤é2011¤Þ¤Ç¤Î¿ô)'(_ʸ»ú¤Ê¤é¤Ó,L1,L2,L3,N) :- append(L1,L2,L3,_ʸ»ú¤Ê¤é¤Ó), Á´¤Æ¤¬¿ô»ú(L2), 'L1¤ÎºÇ¸å¤Îʸ»ú¤ÈL3¤ÎºÇ½é¤Îʸ»ú¤Ï¿ô»ú¤Ç¤Ï¤Ê¤¤'(L1,L3), number_chars(_¿ô,L2), '1965¤«¤é2011¤Þ¤Ç¤Î¿ô'(_¿ô). Á´¤Æ¤¬¿ô»ú(_¤Ê¤é¤Ó) :- forall(member(_¿ô»ú,_¤Ê¤é¤Ó),¿ô»ú(_¿ô»ú)). ¿ô»ú(_¿ô»ú) :- _¿ô»ú @>= '0', _¿ô»ú @=< '9'. 'L1¤ÎºÇ¸å¤Îʸ»ú¤ÈL3¤ÎºÇ½é¤Îʸ»ú¤Ï¿ô»ú¤Ç¤Ï¤Ê¤¤'(L1,L3) :- 'L1¤ÎºÇ¸å¤Îʸ»ú¤Ï¿ô»ú¤Ç¤Ï¤Ê¤¤'(L1), 'L3¤ÎºÇ½é¤Îʸ»ú¤Ï¿ô»ú¤Ç¤Ï̵¤¤'(L3). 'L1¤ÎºÇ¸å¤Îʸ»ú¤Ï¿ô»ú¤Ç¤Ï¤Ê¤¤'(L1) :- \+((last(L1,A),¿ô»ú(A))). 'L3¤ÎºÇ½é¤Îʸ»ú¤Ï¿ô»ú¤Ç¤Ï̵¤¤'(L3) :- \+(([B|_]=L3,¿ô»ú(B))). '1965¤«¤é2011¤Þ¤Ç¤Î¿ô'(_¿ô) :- between(1965,2011,_¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/35 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°­µ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§É¸½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·¡¢£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¡¢¼Â¹Ô¤»¤è¡£ # ¼Â¹Ô»þ¤Ë¤ÏX = 50¤È¤Ê¤ë¤è¤¦¤Ë¿ô»ú¤òÆþÎϤ¹¤ë¡£ # :- dynamic(ÁÇ¿ô¸õÊä/1). :- dynamic(ÁÇ¿ô/1). 'ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·¡¢£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¡¢¼Â¹Ô¤»¤è¡£¼Â¹Ô»þ¤Ë¤ÏX = 50¤È¤Ê¤ë¤è¤¦¤Ë¿ô»ú¤òÆþÎϤ¹¤ë¡£' :- ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·(X), '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë'(X). ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·(X) :- À°¿ô¤òÆÀ¤ë(Àµ¤ÎÀ°¿ôX,X > 0,X). '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë'(X) :- ÁÇ¿ô¤À¤±ÁªÊ̤¹¤ë(X,_ÁÇ¿ô¤Ê¤é¤Ó), '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á'(X,_À°¿ô), ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_À°¿ô,_ÁÇ¿ô¤Ê¤é¤Ó), X = _À°¿ô. ÁÇ¿ô¤À¤±ÁªÊ̤¹¤ë(X,_ÁÇ¿ô¤Ê¤é¤Ó) :- '2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó'(X), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ. '2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó'(X) :- between(2,X,N), assertz(ÁÇ¿ô¸õÊä(N)), X = N. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ :- retract(ÁÇ¿ô¸õÊä(M)), assertz(ÁÇ¿ô(M)), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ_1(M). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ_1(M) :- ÁÇ¿ô¸õÊä(N), 0 is N mod M, retract(ÁÇ¿ô¸õÊä(N)), fail. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ_1(M) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ. '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á'(X,_À°¿ô) :- between(1,X,_À°¿ô). ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó) :- ÁÇ¿ô(_ÁÇ¿ô), writef('%t ',[_ÁÇ¿ô]),!. ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_,_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1370255305/35 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°­µ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§É¸½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·¡¢£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¡¢¼Â¹Ô¤»¤è¡£ # ¼Â¹Ô»þ¤Ë¤ÏX = 50¤È¤Ê¤ë¤è¤¦¤Ë¿ô»ú¤òÆþÎϤ¹¤ë¡£ # 'ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·¡¢£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¡¢¼Â¹Ô¤»¤è¡£ ¼Â¹Ô»þ¤Ë¤ÏX = 50¤È¤Ê¤ë¤è¤¦¤Ë¿ô»ú¤òÆþÎϤ¹¤ë¡£' :- ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·(X), '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë'(X). ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·(X) :- À°¿ô¤òÆÀ¤ë(Àµ¤ÎÀ°¿ôX,X > 0,X). '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë'(X) :- ÁÇ¿ô¤À¤±ÁªÊ̤¹¤ë(X,_ÁÇ¿ô¤Ê¤é¤Ó), '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á'(_À°¿ô), ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_À°¿ô,_ÁÇ¿ô¤Ê¤é¤Ó), X = _À°¿ô. ÁÇ¿ô¤À¤±ÁªÊ̤¹¤ë(X,_ÁÇ¿ô¤Ê¤é¤Ó) :- '2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó'(_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó,_ÁÇ¿ô¤Ê¤é¤Ó). '2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó'(_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó) :- findall(N,between(2,X,N),_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á'(_À°¿ô) :- between(1,X,_À°¿ô). ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó) :- member(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó), writef('%t ',[_ÁÇ¿ô]),!. ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_,_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://stackoverflow.com/questions/17029097/prolog-creating-list-with-consecutive-numbers # # I'm newbie in Prolog and I've tried to create a list. # For example when I write mazeCreator(3,List). # I want to push every number like 1/1,1/2,1/3,2/1,2/2,2/3,3/1,3/2,3/3 in a list.To do this, # I wrote a predicate but It does not work, # Is there anyone who can help me ? Thanks in advance!. mazeCreater(M,L) :- findall(J/K,( between(1,M,J), between(1,M,K)),L). ?- nojiri('stackoverflow_17029097.html'). yes. ?- % °Ê²¼¤Î¥µ¥¤¥È¤Ï Ñѽ¸¹çÏÂ(_Âоݽ¸¹ç,_Ñѽ¸¹çÏÂ) :- findall(_Éôʬ½¸¹çÏÂ,( Éôʬ½¸¹çÏÂ(_Âоݽ¸¹ç,_Éôʬ½¸¹çÏÂ)), _Ñѽ¸¹çÏÂ). Éôʬ½¸¹çÏÂ([], 0). Éôʬ½¸¹çÏÂ([_|R1],_Éôʬ½¸¹çÏÂ) :- Éôʬ½¸¹çÏÂ(R1,_Éôʬ½¸¹çÏÂ). Éôʬ½¸¹çÏÂ([N|R1], _Éôʬ½¸¹çÏÂ) :- Éôʬ½¸¹çÏÂ(R1,_Éôʬ½¸¹çÏÂ_2), _Éôʬ½¸¹çÏ is _Éôʬ½¸¹çÏÂ_2 + N. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ñѽ¸¹çÏÂ(_½¸¹ç,_Ñѽ¸¹çÏÂ) :- length(_½¸¹ç,Len), findall(S,( between(1,Len,N), Áȹ礻ÏÂ(_½¸¹ç,N,L,S)), LS), _Ñѽ¸¹çÏ = [0|LS]. Áȹ礻ÏÂ(X,1,[A],A) :- member(A,X). Áȹ礻ÏÂ([A|Y],N,[A|X],S) :- N > 1, M is N - 1, Áȹ礻ÏÂ(Y,M,X,S1), S is S1 + A. Áȹ礻ÏÂ([_|Y],N,A,S) :- N > 1, Áȹ礻ÏÂ(Y,N,A,S). % °Ê²¼¤Î¥µ¥¤¥È¤Ï Ñѽ¸¹ç(_Âоݽ¸¹ç,_Ñѽ¸¹ç) :- findall(_Éôʬ½¸¹ç,( Éôʬ½¸¹ç(_Âоݽ¸¹ç,_Éôʬ½¸¹ç)), _Ñѽ¸¹ç). Éôʬ½¸¹ç([], []). Éôʬ½¸¹ç([_|R1], LL) :- Éôʬ½¸¹ç(R1,LL). Éôʬ½¸¹ç([L|R1], [L|R2]) :- Éôʬ½¸¹ç(R1,R2). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ñѽ¸¹ç(_½¸¹ç,_Ñѽ¸¹ç) :- length(_½¸¹ç,Len), findall(L,( between(1,Len,N), Áȹ礻(_½¸¹ç,N,L)), _Ñѽ¸¹ç_0), _Ñѽ¸¹ç = [[]|_Ñѽ¸¹ç_0]. Áȹ礻(X,1,[A]) :- member(A,X). Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X). Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ñѽ¸¹ç(_½¸¹ç,_Ñѽ¸¹ç) :- findall(L,Éôʬ½¸¹ç(_½¸¹ç,L),_Ñѽ¸¹ç) . Éôʬ½¸¹ç(_,[]). Éôʬ½¸¹ç(LL,L) :- length(LL,Len), between(1,Len,N), Áȹ礻(LL,N,L). Áȹ礻(L,1,[A]):- member(A,L). Áȹ礻([A|R1],N,[A|R2]):- N > 1, succ(M,N), Áȹ礻(R1,M,R2). Áȹ礻([_|R],N,A):- N > 1, Áȹ礻(R,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/961 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§c¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§±¦¤Ë¼¨¤¹¤è¤¦¤Ë1234567890¤ò·«¤êÊÖ¤·É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Ê¤ª¡¢É½¼¨¤¹¤ë¿ô»ú¤ÏÆÉ¤ß¹þ¤Þ¤ì¤¿À°¿ôÃͤθĿô¤È¤¹¤ë¡£ # ±¦¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë¿Þ # À°¿ô¤ÎÆþÎϤ·¤Æ¤¯¤À¤µ¤¤:25 # 1234567890123456789012345 # '1234567890¤ò·«¤êÊÖ¤·É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Ê¤ª¡¢É½¼¨¤¹¤ë¿ô»ú¤ÏÆÉ¤ß¹þ¤Þ¤ì¤¿À°¿ôÃͤθĿô¤È¤¹¤ë¡£' :- À°¿ô¤òÆÀ¤ë(À°¿ôÃÍ,true,_¸Ä¿ô), _¸Ä¿ô_1 is _¸Ä¿ô - 1, between(0,_¸Ä¿ô_1,N), M is N mod 10, sub_atom('1234567890',M,1,_,A), writef('%t',[A]), N = _¸Ä¿ô_1,!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/961 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§c¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§±¦¤Ë¼¨¤¹¤è¤¦¤Ë1234567890¤ò·«¤êÊÖ¤·É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Ê¤ª¡¢É½¼¨¤¹¤ë¿ô»ú¤ÏÆÉ¤ß¹þ¤Þ¤ì¤¿À°¿ôÃͤθĿô¤È¤¹¤ë¡£ # ±¦¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë¿Þ # À°¿ô¤ÎÆþÎϤ·¤Æ¤¯¤À¤µ¤¤:25 # 1234567890123456789012345 # '1234567890¤ò·«¤êÊÖ¤·É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Ê¤ª¡¢É½¼¨¤¹¤ë¿ô»ú¤ÏÆÉ¤ß¹þ¤Þ¤ì¤¿À°¿ôÃͤθĿô¤È¤¹¤ë¡£' :- À°¿ô¤òÆÀ¤ë(À°¿ôÃÍ,true,_¸Ä¿ô), between(1,_¸Ä¿ô,N), M is N mod 10, ɽ¼¨¤¹¤ë(M), N = _À°¿ôÃͤθĿô. ɽ¼¨¤¹¤ë(0) :- ɽ¼¨¤¹¤ë(10). ɽ¼¨¤¹¤ë(M) :- M_1 is M - 1, sub_atom('1234567890',M_1,1,_,A), writef('%t',[A]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/833 # # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # [1] ¾ðÊó½èÍý±é½¬­µ # [2] ¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ, ¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºî # À®¤»¤è. # ¡¡[3.1] Linux # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§visual studio¡¡2010 # ¡¡[3.3] C¸À¸ì # [4] »ØÄê¤Ê¤· # [5] ÆÃ¤Ë¤Ê¤· # # '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ, ¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë' :- '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ'(_n), '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë'(_n),!. '¼«Á³¿ôn > 0 ¤òÆþÎϤȤ·¤Æ'(_n) :- À°¿ô¤òÆÀ¤ë('¼«Á³¿ôn > 0',_n > 0,_n). '¤½¤Î¼«ÌÀ¤Ç¤Ê¤¤Ìó¿ô¡Ê£±¤È¤½¤Î¿ô°Ê³°¤ÎÌó¿ô¡Ë¤ò°ì¤Ä½ÐÎϤ¹¤ë'(_n) :- _n_1 is _n - 1, between(2,_n_1,_m), 0 is _n mod _m, writef('%t\n',[_m]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/835 # # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # [1] ¼ø¶Èñ¸µ¡§¾ðÊó½èÍý±é½¬ # [2] ÌäÂêʸ¡§3 ¤Ä¤ÎÀ°¿ôa, b, s ¤òÆþÎϤȤ·¤Æ, ax + by = s ¤òËþ¤¿¤¹À°¿ôx, y ¤ò°ìÁȵá¤á¤Æ¤½¤ì¤é¤òɽ # ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è. ¤¿¤À¤·, ˾¤ß¤ÎÀ°¿ôx, y ¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ï, ¤½¤Î»Ý¤òɽ # ¼¨¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È. # '3 ¤Ä¤ÎÀ°¿ôa, b, s ¤òÆþÎϤȤ·¤Æ, ax + by = s ¤òËþ¤¿¤¹À°¿ôx, y ¤ò°ìÁȵá¤á¤Æ¤½¤ì¤é¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è. ¤¿¤À¤·, ˾¤ß¤ÎÀ°¿ôx, y ¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ï, ¤½¤Î»Ý¤òɽ¼¨¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È.' :- '3 ¤Ä¤ÎÀ°¿ôa, b, s ¤òÆþÎϤȤ·¤Æ'(_a,_b,_s), 'ax + by = s ¤òËþ¤¿¤¹À°¿ôx, y ¤ò°ìÁȵá¤á¤Æ'(_a,_b,_s,_x,_y), ¤½¤ì¤é¤òɽ¼¨¤¹¤ë(_a,_b,_s,_x,_y),!. '3 ¤Ä¤ÎÀ°¿ôa, b, s ¤òÆþÎϤȤ·¤Æ, ax + by = s ¤òËþ¤¿¤¹À°¿ôx, y ¤ò°ìÁȵá¤á¤Æ¤½¤ì¤é¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è. ¤¿¤À¤·, ˾¤ß¤ÎÀ°¿ôx, y ¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ï, ¤½¤Î»Ý¤òɽ¼¨¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È.'(_a,_b,_s) :- '¤¿¤À¤·¡¢Ë¾¤ß¤ÎÀ°¿ôx, y ¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ï, ¤½¤Î»Ý¤òɽ¼¨¤¹¤ë'. '3 ¤Ä¤ÎÀ°¿ôa, b, s ¤òÆþÎϤȤ·¤Æ'(_a,_b,_s) :- À°¿ô¤òÆÀ¤ë('ax+by=s ¤Îa',true,_a), À°¿ô¤òÆÀ¤ë('ax+by=s ¤Îb',true,_b), À°¿ô¤òÆÀ¤ë('ax+by=s ¤Îs',true,_s). 'ax + by = s ¤òËþ¤¿¤¹À°¿ôx, y ¤ò°ìÁȵá¤á¤Æ'(_a,_b,_s,_x,_y) :- _a_1 is _a * -1, _b_1 is _b * -1, for(_a_1,_x,_a), for(_b_1,_y,_b), _s is _a * _x + _b * _y. ¤½¤ì¤é¤òɽ¼¨¤¹¤ë(_a,_b,_s,_x,_y) :- write(' ax + by = s\n'), writef('%t*%t + %t*%t = %t\n',[_a,_x,_b,_y,_s]). '¤¿¤À¤·, ˾¤ß¤ÎÀ°¿ôx, y ¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ï, ¤½¤Î»Ý¤òɽ¼¨¤¹¤ë' :- writef('˾¤ß¤Îx,y¤¬Â¸ºß¤·¤Þ¤»¤ó¡£\n'). for(S,N,E) :- E >= S, for_2(S,N,E). for(S,N,E) :- E < S, for_1(S,N,E). for_1(S,_,E) :- S < E,!,fail. for_1(S,N,E) :- N is S. for_1(S,N,E) :- S1 is S - 1, for_1(S1,N,E). for_2(S,_,E) :- S > E,!,fail. for_2(S,N,E) :- N is S. for_2(S,N,E) :- S1 is S + 1, for_2(S1,N,E). À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ¤Ê¤é¤Ó,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô¤Ê¤é¤Ó) :- list(_ºÅ¥ʸ¤Ê¤é¤Ó), findall(_À°¿ô,( member(_ºÅ¥ʸ,_ºÅ¥ʸ¤Ê¤é¤Ó), À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ), get_line(Instream,Line), '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(Instream,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,_À°¿ô¤ò´Þ¤à¾ò·ï,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_,_) :- !,fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- atom_to_term(Line,_À°¿ô,_), integer(_À°¿ô), '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(Line,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- \+((atom_to_term(Line,_À°¿ô,_),integer(_À°¿ô))), writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¤Ï¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'(end_of_file,end_of_file) :- !. '¿ÇÃÇ: À°¿ô¤òÆÀ¤ë'('',_) :- !,fail. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- call(_À°¿ô¤ò´Þ¤à¾ò·ï),!. '¿ÇÃÇ: À°¿ô¤ò´Þ¤à¾ò·ï'(_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤Ï %t ¤¬µ¶¤È¤Ê¤ê¤Þ¤¹¡£\n',[_À°¿ô,_À°¿ô¤ò´Þ¤à¾ò·ï]), fail. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,_À°¿ô¤ò´Þ¤à¾ò·ï,_À°¿ô). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,_ºÅ¥ʸ,true,_À°¿ô). À°¿ô¤òÆÀ¤ë(_À°¿ô) :- À°¿ô¤òÆÀ¤ë(user_input,'',true,_À°¿ô). ºÅ¥ʸ¤Î½ÐÎÏ('') :- !. ºÅ¥ʸ¤Î½ÐÎÏ(_ºÅ¥ʸ) :- writef('%t¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : ',[_ºÅ¥ʸ]). n¸Ä¤ÎÀ°¿ô¤òÆÀ¤ë(_n,_ºÅ¥ʸ,_À°¿ô¤Ê¤é¤Ó) :- length(_À°¿ô¤Ê¤é¤Ó,_n), findall(_À°¿ô,( Éôʬ¤Ê¤é¤Ó(_À°¿ô¤Ê¤é¤Ó,_,_,_²¿ÈÖÌÜ,_,_,_,L3), writef('[%t/%t]ÈÖÌܤÎ',[_²¿ÈÖÌÜ,_n]), À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_À°¿ô)), _À°¿ô¤Ê¤é¤Ó). °ì¹ÔÆÉ¤ß¹þ¤à(_¹Ô) :- get_line(_¹Ô). get_line(Stream,X) :- get_char(Stream,C), get_line_1(Stream,C,Chars), atom_chars(X,Chars). get_line_1(Stream,'\n',[]) :- !. get_line_1(Stream,end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(Stream,C,[C|R]) :- get_char(Stream,C2), get_line_1(Stream,C2,R). get_line(X) :- get_char(C), get_line_1(C,Chars), atom_chars(X,Chars). get_line_1('\n',[]) :- !. get_line_1(end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(C,[C|R]) :- get_char(C2), get_line_1(C2,R). list([_|_]) :- !. list([]. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/827 # # [1] ¼ø¶Èñ¸µ¡§À°¿ô±é»» # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§°Ê²¼¤ÎÌäÂê¤ËÅú¤¨¤Ê¤µ¤¤ # # 50 # ¦²((3*i)/2) = A ¤Î·×»»¼°¤ò·×»»¤Ç¤­¤ë¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤Ê¤µ¤¤¡£ # i=0 # # :- op(300,xfx,(..)). '50 ¦²((3*i)/2) = A ¤Î·×»»¼°¤ò·×»»¤Ç¤­¤ë¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤Ê¤µ¤¤¡£ i=0'(_A) :- '¦²'([_k = 0 .. 50],((3 * _k) / 2),_A). '¦²'([_k = A .. B],_¼°,_Îß·×ÃÍ) :- findsum(Y,( between(A,B,_k), Y is _¼°), _Îß·×ÃÍ). findsum(A,P,S) :- findall(A,P,L), sum(L,S). sum([],0). sum([A|R],S) :- sum(R,S2), S is S2 + A. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/825 # # [1] ¼ø¶Èñ¸µ¡§²èÁü½èÍý # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¥¢¥¹¥­¡¼¥³¡¼¥É(0x21~0x7e¤Þ¤Ç)ɽ¤ò½ÐÎϤò¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ # '¥¢¥¹¥­¡¼¥³¡¼¥É(0x21~0x7e¤Þ¤Ç)ɽ¤ò½ÐÎϤò¤¹¤ë' :- ¸«½Ð¤·Âè°ì¹Ô, ¹Ô¤òÀ©¸æ¤¹¤ë. ¹Ô¤òÀ©¸æ¤¹¤ë :- between(2,7,M), Îó¤òÀ©¸æ¤¹¤ë(M), M = 7. Îó¤òÀ©¸æ¤¹¤ë(M) :- writef('%t |',[M]), between(1,14,N), °ìʸ»úɽ¼¨(M,N), N = 14, write('\n'). ¸«½Ð¤·Âè°ì¹Ô :- write(' | '), between(1,14,N), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(N,A), writef(' %t',[A]), N = 14. °ìʸ»úɽ¼¨(M,N) :- Char_code is 16 * M + N, char_code(A,Char_code), write(' %t',[A]). '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(0,'0'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(1,'1'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(2,'2'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(3,'3'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(4,'4'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(5,'5'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(7,'6'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(7,'7'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(8,'8'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(9,'9'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(10,'A'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(11,'B'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(12,'C'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(13,'D'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(14,'E'), '0¤«¤é15¤Þ¤Ç¤ÎÀ°¿ô¤È16¿Ê¿ôʸ»úɽµ­¤ÎÂбþ'(15,'F'), % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/825 # # [1] ¼ø¶Èñ¸µ¡§²èÁü½èÍý # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¥¢¥¹¥­¡¼¥³¡¼¥É(0x21~0x7e¤Þ¤Ç)ɽ¤ò½ÐÎϤò¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ # '¥¢¥¹¥­¡¼¥³¡¼¥É(0x21~0x7e¤Þ¤Ç)ɽ¤ò½ÐÎϤò¤¹¤ë' :- ¸«½Ð¤·Âè°ì¹Ô, between(2,7,M), writef('% |',[M]), between(1,14,N), °ìʸ»úɽ¼¨(M,N), N = 14, write('\n'), M = 7. ¸«½Ð¤·Âè°ì¹Ô :- write(' | '), between(1,14,N), '16¿Êɽµ­'(N,A), writef(' %t',[A]), N = 14. °ìʸ»úɽ¼¨(M,N) :- Char_code is 16 * M + N, char_code(A,Char_code), write(' %t',[A]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/821 # # [1] ¼ø¶È¿ô³Ø¤ÎÌäÂê¤òC¸À¸ì¤Ç²ò¤¯ # [2] ÌäÂê # À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é # ¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë # ¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£ # [3.1] 7 # [3.2] gcc # [3.3] C # [4] ´ü¸Â¡§25Æü # [5] ¤½¤Î¾À©¸Â¡§ ½ã¿èC¥é¥¤¥Ö¥é¥ê¡£ # 'À°¿ôx¤ò0¤«¤é100000¤Þ¤Ç¤ÎÀ°¿ô¤È¤·¤Æ,x¤¬£³¤Ä¤ÎÁÇ¿ô¤ÎϤÇɽ¸½¤Ç¤­¤ë¤Ê¤é¤½¤Î»°ÁÇ¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£Ê£¿ôÁȤ߹ç¤ï¤»¤Î¾ì¹çºÇ½é¤Ë¸«¤Ä¤±¤¿¤â¤Î¤ò½ÐÎϤ»¤è¡£'(_x) :- findall(N,between(1,100000,N),L1), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L1,_100000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), Áȹ礻(_100000°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,3,[N1,N2,N3]), _x is N1 + N2 + N3, writef('%t,%t,%t\n',[N1,N2,N3]),!. Áȹ礻(X,1,[A]) :- member(A,X) . Áȹ礻([A|Y],N,[A|X]) :- N > 1, M is N - 1, Áȹ礻(Y,M,X) . Áȹ礻([_|Y],N,A) :- N > 1, Áȹ礻(Y,N,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1364700745/818 # # ¤¹¤ß¤Þ¤»¤ó¤â¤¦1Ì䤪´ê¤¤¤·¤Þ¤¹¡¨ # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # forʸ¤ÎÆó½Å¥ë¡¼¥×¤òÍѤ¤¤Æ¡¢²¼¤Î¼Â¹Ô·ë²Ì¤Î¤è¤¦¤Ë0¡Á9¤Þ¤Ç¤Î¿ô»ú¤ò # ¡¡¡¡0¤«¤é1¸Ä¤º¤ÄÁý¤ä¤·¤Ê¤¬¤é10¹Ôɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # ¡¡¡¡ # ¡¡¡¡0 # ¡¡¡¡01 # ¡¡¡¡012 # ¡¡¡¡0123 # ¡¡¡¡01234 # ¡¡¡¡012345 # ¡¡¡¡0123456 # ¡¡¡¡01234567 # ¡¡¡¡012345678 # ¡¡¡¡0123456789 # # 'forʸ¤ÎÆó½Å¥ë¡¼¥×¤òÍѤ¤¤Æ¡¢²¼¤Î¼Â¹Ô·ë²Ì¤Î¤è¤¦¤Ë0¡Á9¤Þ¤Ç¤Î¿ô»ú¤ò0¤«¤é1¸Ä¤º¤ÄÁý¤ä¤·¤Ê¤¬¤é10¹Ôɽ¼¨¤¹¤ë'(N) :- for(0,M,9), for(0,N,M), write('%t',[N]), N = M, write('\n'), M = 9. for(S,N,E) :- E < S, for_1(S,N,E). for_1(S,_,E) :- S < E,!,fail. for_1(S,N,E) :- N is S. for_1(S,N,E) :- S1 is S - 1, for_1(S1,N,E). for_2(S,_,E) :- S > E,!,fail. for_2(S,N,E) :- N is S. for_2(S,N,E) :- S1 is S + 1, for_2(S1,N,E). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1232627790/958 # # ¡Ú¡¡²ÝÂê¡¡¡Û¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó5¹Ô¤òÆÉ¤ß¹þ¤ß¡¢Ê̤Υƥ­¥¹¥È¤Ø±¦½Ä½ñ¤­¤Ç½ñ¤­½Ð¤¹ # ¡Ú¡¡·ÁÂÖ¡¡¡Û1. Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(main()¤Ç³«»Ï) # ¡Ú¡¡´ü¸Â¡¡¡Û7/14 am6:00 # ¡Ú¡¡Ver¡¡ ¡ÛEclipse Version: 3.4.2 # ¡Ú¡¡Êä­¡¡¡Û # ¤¢¤¤¤¦ # ¤«¤­¤¯ # ¤µ¤·¤¹ # ¾åµ­¤Î¤è¤¦¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢ # ¤µ¤«¤¢ # ¤·¤­¤¤ # ¤¹¤¯¤¦ # ¤Î¤è¤¦¤ËÊ̤Υƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹´¶¤¸¤Ç¤¹¡£ '¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó5¹Ô¤òÆÉ¤ß¹þ¤ß¡¢Ê̤Υƥ­¥¹¥È¤Ø±¦½Ä½ñ¤­¤Ç½ñ¤­½Ð¤¹'(InFile,OutFile) :- ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó5¹Ô¤òÆÉ¤ß¹þ¤ß(Infile,_ʸ»úÎó5¹Ô), Ê̤Υƥ­¥¹¥È¤Ø±¦½Ä½ñ¤­¤Ç(_ʸ»úÎó5¹Ô,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó), ½ñ¤­½Ð¤¹(OutFile,_±¦½ñ¤­¤è¤¦¤ËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó), ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó5¹Ô¤òÆÉ¤ß¹þ¤ß(Infile,_ʸ»úÎó5¹Ô) :- open(InFile,read,Instream), findall(_¹Ô,( between(1,5,N), get_line(Instream,_¹Ô)), _ʸ»úÎó5¹Ô), close(InFile). Ê̤Υƥ­¥¹¥È¤Ø±¦½Ä½ñ¤­¤Ç(_ʸ»úÎó5¹Ô,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó) :- findmax(_¹Ô¤ÎŤµ,( member(_¹Ô,_ʸ»úÎó5¹Ô), atom_length(_¹Ô,_¹Ô¤ÎŤµ), _ºÇĹʸ»ú¿ô), ¶õÇòʸ»ú¤òÉղä·¤ÆÊ¸»ú¿ô°ìÃפµ¤»¤ë(_ºÇĹʸ»ú¿ô,_ʸ»úÎó5¹Ô,_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô), ±¦½ñ¤­ÍѤËÃÖ´¹¤¹¤ë(_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó). ±¦½ñ¤­ÍѤËÃÖ´¹¤¹¤ë(_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó) :- ¹Ô¤òȿž¤·¤Ê¤¬¤éžÃÖ¤¹¤ë(_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó). ¹Ô¤òȿž¤·¤Ê¤¬¤éžÃÖ¤¹¤ë(_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó) :- '°ìöʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤·¤Æ¡¢¹Ô¤òȿž¤·¤ÆÅ¾ÃÖ¤¹¤ë'(_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô,LL2), ʸ»úÎó¤ËÌ᤹(LL2,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó). '°ìöʸ»ú¤Ê¤é¤Ó¤ËÊÑ´¹¤·¤Æ¡¢¹Ô¤òȿž¤·¤ÆÅ¾ÃÖ¤¹¤ë'(_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô,LL2) :- findall(L,( member(_¹Ô,_¶õÇòʸ»ú¤òÉղ䷤ƶë·Á¤Ë¤·¤¿Ê¸»úÎó5¹Ô), atom_chars(_¹Ô,Chars), reverse(Chars,L)), LL1), žÃÖ(LL1,LL2). ʸ»úÎó¤ËÌ᤹(LL2,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó) :- findall(_ʸ»úÎó,( member(Chars,LL2), atom_chars(_ʸ»úÎó,Chars)), _±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó). ¶õÇòʸ»ú¤òÉղä·¤ÆÊ¸»ú¿ô¤ò°ìÃפµ¤»¤ë(_ºÇÂçʸ»ú¿ô,_ʸ»úÎó5¹Ô,_¶õÇò¤òÉղä·¤¿Ê¸»úÎó5¹Ô) :- findall(_¶õÇò¤òÉղ䵤줿ʸ»úÎó,( member(_ʸ»úÎó,_ʸ»úÎó5¹Ô), atom_length(_ʸ»úÎó,_ʸ»úÎóŤµ), ¶õÇòʸ»ú¤òÉղ乤ë(_ºÇÂçʸ»ú¿ô,_ʸ»úÎó¤ÎŤµ,_ʸ»úÎó,_¶õÇò¤òÉղ䵤줿ʸ»úÎó)), _¶õÇò¤òÉղ䵤줿ʸ»úÎó5¹Ô). ¶õÇòʸ»ú¤òÉղ乤ë(_ºÇÂçʸ»ú¿ô,_ʸ»úÎó¤ÎŤµ,_ʸ»úÎó,_¶õÇò¤òÉղ䵤줿ʸ»úÎó) :- _¶õÇòʸ»ú¿ô is _ºÇÂçʸ»ú¿ô - _ʸ»úÎó¤ÎŤµ, findall(' ',between(1,_¶õÇòʸ»ú¿ô,_),_¶õÇòʸ»ú¤Ê¤é¤Ó), atomic_list_concat([_ʸ»úÎó|_¶õÇòʸ»ú¤Ê¤é¤Ó],_¶õÇò¤òÉղ䵤줿ʸ»úÎó). ½ñ¤­½Ð¤¹(OutFile,_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó) :- open(OutFile,write,Outstream), append(_,[_¹Ô|R],_±¦½ñ¤­ÍѤËÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Ê¤é¤Ó), writef(Outstream,'%t\n',[_¹Ô]), R = [], close(Outstream). % % ¤³¤ÎÉä¤Ë¤Ïfindall/3¤À¤±¤Çɽ¸½¤¹¤ë¤È¤¤¤¦¼çÂ꤬¤¢¤ë¡£ % % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¸æÂê # # 1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ # ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë 'Fib' ¤È¡¢ # ÁÇ¿ô¤Î¤È¤­¤Ï 'Prime' ¤È½ÐÎϤ·¡¢ # ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï 'FibPrime' ¤È½ÐÎϤ¹¤ë¤³¤È¡£ # ¤Þ¤¿½ÐÎÏÀè¤Ï'fibprime.bz2'¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Îbzip2°µ½Ì·Á¼°¥Õ¥¡¥¤¥ë¤È¤¹¤ë¡£ '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£' :- '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(1,0,1). '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô,_,_) :- _¿ô > 100,!. '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô_1,_fib_1,_fib_2) :- '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô_1,_fib_1,_fib_2,_fib_1_2,_fib_2_2), _¿ô_2 is _¿ô_1 + 1, '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô_2,_fib_1_2,_fib_2_2). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô_1,_fib_1,_fib_2,_fib_1_2,_fib_2_2) :- '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô_1,_fib_1,_fib_2,_fib_2_2,_fib_2_2,Fib), 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_¿ô,Prime), '½ÐÎϤ¹¤ë'(_¿ô_1,Fib,Prime),!. '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô_1,_fib_1,_fib_2,_fib_2_2,_¿ô_1,'Fib') :- _¿ô_1 is _fib_1 + _fib_2,!. '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô_1,_fib_1,_fib_2,_fib_1,_fib_2,''). 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_¿ô,'Prime') :- ÁÇ¿ô¤Ç¤¢¤ë(_¿ô),!. 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_,''). '½ÐÎϤ¹¤ë'(_¿ô_1,'','') :- write('%t ',[_¿ô_1]),!. '½ÐÎϤ¹¤ë'(_¿ô_1,Fib,Prime) :- write('%t%t ',[Fib,Prime]). % ¤³¤Î¥×¥í¥°¥é¥à¤Î¹üÁÈ¤ß¤Ï %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ÁÇ¿ô¤Ç¤¢¤ë(1) :- !. ÁÇ¿ô¤Ç¤¢¤ë(X) :- X > 0, Y is X - 1, ³¬¾è(Y,Z), 0 is (Z + 1) mod X. ³¬¾è(_n,X) :- findall(M,between(1,_n,M),L), atomic_list_concat(L,*,S), atom_to_term(S,_¼°,_), X is _¼°. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¸æÂê # # 1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ # ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë 'Fib' ¤È¡¢ # ÁÇ¿ô¤Î¤È¤­¤Ï 'Prime' ¤È½ÐÎϤ·¡¢ # ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï 'FibPrime' ¤È½ÐÎϤ¹¤ë¤³¤È¡£ # ¤Þ¤¿½ÐÎÏÀè¤Ï'fibprime.bz2'¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Îbzip2°µ½Ì·Á¼°¥Õ¥¡¥¤¥ë¤È¤¹¤ë¡£ '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£' '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤òÆÀ¤ë'(_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó), '100°Ê²¼¤ÎÁÇ¿ô¤òÆÀ¤ë'(_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), between(1,100,_¿ô), '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,L), 'N¤¬100¤Ë¤Ê¤ë¤Þ¤Ç½ÐÎϤ¹¤ë'(N,L). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,L) :- '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,L), 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_¿ô,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,L), ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¿ô¤ò(_¿ô,L). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,['Fib',_,_]) :- member(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó),!. '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_,_,['',_,_]). 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_¿ô,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,[_,'Prime',_]) :- member(_¿ô,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó),!. 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_,_,[_,'',_]). ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¿ô¤ò(_¿ô,['','',_¿ô]) :- !. ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¿ô¤ò(_,[_,_,'']). '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤òÆÀ¤ë'(L) :- '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'([1,0],L). '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'([B,A|R],L) :- C is A + B, C =< 100, '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'([C,B,A|R],L),!. '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'(L,L). '100°Ê²¼¤ÎÁÇ¿ô¤òÆÀ¤ë'(_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- findall(N,( between(1,100,N)), _1¤«¤é100¤Þ¤Ç¤Î¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_1¤«¤é100¤Þ¤Ç¤Î¤Ê¤é¤Ó,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). 'N¤¬100¤Ë¤Ê¤ë¤Þ¤Ç½ÐÎϤ¹¤ë'(N,L) :- atomic_list_concat(L,_ɽ¼¨Ê¸»úÎó), writef('%t ',[_ɽ¼¨Ê¸»úÎó]), N = 100. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¸æÂê # # 1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ # ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë 'Fib' ¤È¡¢ # ÁÇ¿ô¤Î¤È¤­¤Ï 'Prime' ¤È½ÐÎϤ·¡¢ # ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï 'FibPrime' ¤È½ÐÎϤ¹¤ë¤³¤È¡£ # ¤Þ¤¿½ÐÎÏÀè¤Ï'fibprime.bz2'¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Îbzip2°µ½Ì·Á¼°¥Õ¥¡¥¤¥ë¤È¤¹¤ë¡£ '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£ ¤¿¤À¤·¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£' '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤òÆÀ¤ë'(_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó), '100°Ê²¼¤ÎÁÇ¿ô¤òÆÀ¤ë'(_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), between(1,100,_¿ô), '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,L), 'N¤¬100¤Ë¤Ê¤ë¤Þ¤Ç½ÐÎϤ¹¤ë'(N,L). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È¡¢ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È½ÐÎϤ·¡¢¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤Æ³î¤ÄÁÇ¿ô¤Î¾ì¹ç¤Ë¤Ï ''FibPrime'' ¤È½ÐÎϤ¹¤ë¤³¤È¡£'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,L) :- '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,L), 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_¿ô,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,L), ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¿ô¤ò(_¿ô,L). '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó,['Fib',_,_]) :- member(_¿ô,_100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ê¤é¤Ó),!. '¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤Ë¸½¤ì¤ë¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë ''Fib'' ¤È'(_,_,['',_,_]). 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_¿ô,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,[_,'Prime',_]) :- member(_¿ô,_100°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó),!. 'ÁÇ¿ô¤Î¤È¤­¤Ï ''Prime'' ¤È'(_,_,[_,'',_]). ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¿ô¤ò(_¿ô,['','',_¿ô]) :- !. ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¿ô¤ò(_,[_,_,'']). '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó¤òÆÀ¤ë'(L) :- '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'([1,0],L). '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'([B,A|R],L) :- C is A + B, C =< 100, '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'([C,B,A|R],L),!. '100°Ê²¼¤Î¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ôÎó'(L,L). '100°Ê²¼¤ÎÁÇ¿ô¤òÆÀ¤ë'(L) :- findall(N,( between(1,100,N), ÁÇ¿ô¤Ç¤¢¤ë(N)), L). ÁÇ¿ô¤Ç¤¢¤ë(1) :- !. ÁÇ¿ô¤Ç¤¢¤ë(X) :- X > 0, Y is X - 1, ³¬¾è(Y,Z), 0 is (Z + 1) mod X. ³¬¾è(_n,X) :- findall(M,between(1,_n,M),L), atomic_list_concat(L,*,S), atom_to_term(S,_¼°,_), X is _¼°. 'N¤¬100¤Ë¤Ê¤ë¤Þ¤Ç½ÐÎϤ¹¤ë'(N,L) :- atomic_list_concat(L,_ɽ¼¨Ê¸»úÎó), writef('%t ',[_ɽ¼¨Ê¸»úÎó]), N = 100. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # 1)À¾Îñǯ¤«¤é11¤ò°ú¤­¡¢¤½¤ÎÃͤò19¤Ç³ä¤Ã¤¿Í¾¤ê¤òµá¤á¡¢11¤ò³Ý¤±¤ë¡£ # 2)·î¤ÎÃͤ«¤é¡¢°Ê²¼¤Îɽ¤Ë½¾¤Ã¤ÆÃͤòµá¤á¤ë¡£ # ·î 1·î 2·î 3·î 4·î 5·î 6·î 7·î 8·î 9·î 10·î 11·î 12·î # ÃÍ 0 2 0 2 2 4 5 6 7 8 9 10 # ¤³¤Î¤¦¤Á6·î¤Þ¤Ç¤ÎÃͤò¡Ö¤ª¤Ë¤ª¤Ë¤Ë¤·¡×¤È³Ð¤¨¤ë¡¢¤È¡¢Â¿¤¯¤ÎÎñ²òÀâ½ñ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ # ¾åµ­1),2)¤ÎÃÍ¤ÈÆü¤ÎÃͤò¤½¤ì¤¾¤ì²Ã¤¨¤ë¡£ # µá¤á¤¿Ãͤò30¤Ç³ä¤Ã¤¿Í¾¤ê¤¬¡¢¤½¤ÎÆü¤Î¤ª¤ª¤è¤½¤Î·îÎð¤Ç¤¢¤ë¡£ # ⤷¡¢ºÇÂç2ÄøÅÙ¤Î¸íº¹¤¬¤¢¤ë¡£ °Ê²¼¤Ï¤³¤ì¤ò¿ô¼°²½¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ # yǯm·îdÆü¤Î·îÎðaÆü¤òµá¤á¤ë¡£ # ⤷¡¢%¤Ï¾ê;±é»»»Ò¤È¤·¡¢c(m)¤Ï¾å¤Îɽ¤Ë½¾¤Ã¤¿Äê¿ô¤È¤¹¤ë¡£Îã¡¢62%30=2¡¢c(5)=2¡£ ·îÎð(_ǯÀ°¿ô,_·îÀ°¿ô,_ÆüÀ°¿ô,_·îÎð) :- ǯ·îÆüÈϰϸ¡ºº(_ǯÀ°¿ô,_·îÀ°¿ô,_ÆüÀ°¿ô), ·îÎð¤Î·î·¸¿ô(_·îÀ°¿ô,_·î·¸¿ô), _·îÎð is (((_ǯÀ°¿ô - 11) mod 19) * 11 + _·î·¸¿ô + _ÆüÀ°¿ô) mod 30. ǯ·îÆüÈϰϸ¡ºº(_ǯÀ°¿ô,_·îÀ°¿ô,_ÆüÀ°¿ô) :- between(1900,2099,_ǯÀ°¿ô), between(1,12,_·îÀ°¿ô), ·îËöÆüÀ°¿ô(_ǯÀ°¿ô,_·îÀ°¿ô,_·îËöÆüÀ°¿ô), between(1,_·îËöÆüÀ°¿ô,_ÆüÀ°¿ô). ·îÎð¤Î·î·¸¿ô(1,0). ·îÎð¤Î·î·¸¿ô(2,2). ·îÎð¤Î·î·¸¿ô(3,0). ·îÎð¤Î·î·¸¿ô(4,2). ·îÎð¤Î·î·¸¿ô(5,2). ·îÎð¤Î·î·¸¿ô(6,4). ·îÎð¤Î·î·¸¿ô(7,5). ·îÎð¤Î·î·¸¿ô(8,6). ·îÎð¤Î·î·¸¿ô(9,7). ·îÎð¤Î·î·¸¿ô(10,8), ·îÎð¤Î·î·¸¿ô(11,9). ·îÎð¤Î·î·¸¿ô(12,10). '·îÎ𡦷î̾'(1,ºó). '·îÎ𡦷î̾'(1,¿··î). '·îÎ𡦷î̾'(2,´ûºó). '·îÎ𡦷î̾'(3,»°Æü·î). '·îÎ𡦷î̾'(7,¾å¸¹). '·îÎ𡦷î̾'(8,¾å¸¹). '·îÎ𡦷î̾'(13,½½»°Ìë). '·îÎ𡦷î̾'(14,¾®Ë¾·î). '·îÎ𡦷î̾'(15,˾). '·îÎ𡦷î̾'(15,Ëþ·î). '·îÎ𡦷î̾'(15,˾·î). '·îÎ𡦷î̾'(16,½½Ï»Ìë). '·îÎ𡦷î̾'(16,´û˾). '·îÎ𡦷î̾'(17,ΩÂÔ·î). '·îÎ𡦷î̾'(18,µïÂÔ·î). '·îÎ𡦷î̾'(19,¿²ÂÔ·î). '·îÎ𡦷î̾'(19,²éÂÔ·î). '·îÎ𡦷î̾'(20,¹¹ÂÔ·î). '·îÎ𡦷î̾'(22,²¼¸Â). '·îÎ𡦷î̾'(23,²¼¸Â). '·îÎ𡦷î̾'(29,³¢). '·îÎ𡦷î̾'(30,³¢). ·îËöÆüÀ°¿ô(_ǯÀ°¿ô,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô). ·îËöÆüÀ°¿ô(_ǯÀ°¿ô,2,28) :- \+(¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô)). ·îËöÆüÀ°¿ô(_ǯÀ°¿ô,_·îÀ°¿ô,30) :- member(_·îÀ°¿ô,[4,6,8,10]). ·îËöÆüÀ°¿ô(_ǯÀ°¿ô,_·îÀ°¿ô,31) :- member(_·îÀ°¿ô,[1,3,5,7,8,10,12]). ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô) :- 0 is _ǯÀ°¿ô mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô) :- \+(0 is _ǯÀ°¿ô mod 100), 0 is _ǯÀ°¿ô mod 4. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1244449887/905 # # [1]c++ # [2]2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é¡¢¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£ # ¤Þ¤¿¡¢ÂгÑÍ×ÁǤÀ¤±¤ò1¤òÂåÆþ¤·¡¢¤Û¤«¤Ï¤¹¤Ù¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é¡¢É½¼¨¤·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢ÂгÑÍ×ÁǤϺ¸¾å¶ù¤«¤é±¦²¼¶ù¤Ø¤ÎÂгÑÀþ¾å¤ÎÍ×ÁǤȤ¹¤ë¡£¼¡¤Î¿Þ¤Ï¼Â¹ÔÎã¤Ç¤¢ ¤ë¡£ # --- (2)ÇÛÎón¤ÎÆâÍÆ --- # # 100000000 # 010000000 # 001000000 # 000100000 # 000010000 # 000001000 # 000000100 # 000000010 # 000000001 '2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é¡¢¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£' :- '2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é'(LL), '¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£'(LL). '2¼¡¸µÇÛÎón[10][10]¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ¤·¤Æ¤«¤é'(LL) :- findall(_¹Ô,( '10¹Ô¤¢¤ë', '10Í×ÁǤιԤΤ¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ'(_¹Ô)),LL). '10¹Ô¤¢¤ë' :- between(1,10,_). '10Í×ÁǤιԤΤ¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ'(_¹Ô) :- '10Í×ÁǤιԤÎ'(_¹Ô), ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ(_¹Ô). '10Í×ÁǤιԤÎ'(_¹Ô) :- length(_¹Ô,10). ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ([]). ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ([1|R]) :- ¤¹¤Ù¤Æ¤ÎÍ×ÁǤË1¤òÂåÆþ(R). '¤½¤ÎÆâÍÆ¤òɽ¼¨¤·¤Ê¤µ¤¤¡£'(LL) :- ɽ¼¨¤·¤Ê¤µ¤¤(LL). ɽ¼¨¤·¤Ê¤µ¤¤(LL) :- forall(¹Ô¤òɽ¼¨Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë(LL,_ɽ¼¨Ê¸»úÎó),writef('%w\n',[_ɽ¼¨Ê¸»úÎó])). ¹Ô¤òɽ¼¨Ê¸»úÎó¤ËÊÑ´¹¤¹¤ë(LL,_ɽ¼¨Ê¸»úÎó) :- member(_¹Ô,LL), atomic_list_concat(_¹Ô,' ',_ɽ¼¨Ê¸»úÎó). 'ÂгÑÍ×ÁǤÀ¤±¤ò1¤òÂåÆþ¤·¡¢¤Û¤«¤Ï¤¹¤Ù¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é¡¢É½¼¨¤·¤Ê¤µ¤¤¡£' :- ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é(LL), ɽ¼¨¤·¤Ê¤µ¤¤(LL). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ¤·¤Æ¤«¤é(LL) :- findall(L,( between(1,10,_n), ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ(_n,L)),LL). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·¤Û¤«¤ÏÁ´¤Æ0¤òÂåÆþ(_n,L) :- ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,L), ¾¤ÎÁ´¤Æ¤ÎÊÑ¿ôÍ×ÁǤÏ0¤Ë(L). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,L) :- length(L,10), reverse(L,RL), ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,RL,L). ÂгÑÍ×ÁǤÀ¤±1¤òÂåÆþ¤·(_n,RL,L) :- nth1(_n,L,1), nth1(_n,RL,1). ¾¤ÎÁ´¤Æ¤ÎÊÑ¿ôÍ×ÁǤÏ0¤Ë(L) :- findall(N,( member(N,L), ÊÑ¿ôÍ×ÁǤÏ0¤Ë(N)),L). ÊÑ¿ôÍ×ÁǤÏ0¤Ë(0) :- !. ÊÑ¿ôÍ×ÁǤÏ0¤Ë(N). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ½©Ê¬¤ÎÆü(_ǯ,_·î,_Æü) :- '¡Ö½Õʬ¤ÎÆü¡×¤ª¤è¤Ó¡Ö½©Ê¬¤ÎÆü¡×¤ÎÆüÉդϡ¢Á°Ç¯2·î1Æü¤Î´±Êó¤Çȯɽ¤µ¤ì¤ë¡£'(_ǯ,_·î,_Æü),!. ½©Ê¬¤ÎÆü(_ǯ,9,_Æü) :- '¹ñÎ©Å·Ê¸Âæ¡ÖÎñ¾Ýǯɽ¡×¤Ë´ð¤Å¤­', between(1980,2099,_ǯ), _Æü is truncate(23.2488+0.242194*(_ǯ-1980)-truncate((_ǯ-1980)/4)),!. '¡Ö½Õʬ¤ÎÆü¡×¤ª¤è¤Ó¡Ö½©Ê¬¤ÎÆü¡×¤ÎÆüÉդϡ¢Á°Ç¯2·î1Æü¤Î´±Êó¤Çȯɽ¤µ¤ì¤ë¡£'(2013,9,23) :- true,!. '¹ñÎ©Å·Ê¸Âæ¡ÖÎñ¾Ýǯɽ¡×¤Ë´ð¤Å¤­'. % ¹ñÎ©Å·Ê¸ÂæÈ¯¹Ô¤Î¥á¡¼¥ë¥Ë¥å¡¼¥¹. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ½Õʬ¤ÎÆü(_ǯ,_·î,_Æü) :- '¡Ö½Õʬ¤ÎÆü¡×¤ª¤è¤Ó¡Ö½©Ê¬¤ÎÆü¡×¤ÎÆüÉդϡ¢Á°Ç¯2·î1Æü¤Î´±Êó¤Çȯɽ¤µ¤ì¤ë¡£'(_ǯ,_·î,_Æü),!. ½Õʬ¤ÎÆü(_ǯ,3,_Æü) :- '¹ñÎ©Å·Ê¸Âæ¡ÖÎñ¾Ýǯɽ¡×¤Ë´ð¤Å¤­', between(1980,2099,_ǯ), _Æü is truncate(20.8431+0.242194*(_ǯ-1980)-truncate((_ǯ-1980)/4)),!. '¡Ö½Õʬ¤ÎÆü¡×¤ª¤è¤Ó¡Ö½©Ê¬¤ÎÆü¡×¤ÎÆüÉդϡ¢Á°Ç¯2·î1Æü¤Î´±Êó¤Çȯɽ¤µ¤ì¤ë¡£'(_ǯ,_·î,_Æü) :- fail. '¹ñÎ©Å·Ê¸Âæ¡ÖÎñ¾Ýǯɽ¡×¤Ë´ð¤Å¤­'. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§Ãøºî¸¢ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # # ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢ # ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ # ·ë²Ì¤Îɽ¼¨¤Ï¤·¤Æ¤â¤·¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ # # [3] ´Ä¶­ # ¡¡[3.1] OS¡§ (Windows/Linux/Åù¡¹) # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§ (gcc 3.4 VC 6.0Åù) # ¡¡[3.3] ¸À¸ì¡§ (C/C++/¤É¤Á¤é¤Ç¤â²Ä ¤Î¤¤¤º¤ì¤«) # [4] ´ü¸Â¡§ ([yyyyǯmm·îddÆühh:mm¤Þ¤Ç] ¤Þ¤¿¤Ï [̵´ü¸Â] ¤Î¤¤¤º¤ì¤«) # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ (¤É¤³¤Þ¤Ç½¬¤Ã¤Æ¤¤¤ë¤«¡¢É¸½à¥é¥¤¥Ö¥é¥ê¤Ï»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤Åù¡¹) 'ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢ ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ ·ë²Ì¤Îɽ¼¨¤Ï¤·¤Æ¤â¤·¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£'(_À¾Îñ,_·î,_Æü) :- 'ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢'(_À¾Îñ), 'Metonic cycle¤ò»È¤Ã¤Æ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë'(_À¾Îñ,_·î,_Æü). 'ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢'(_À¾Îñ) :- À°¿ô¤òÆÀ¤ë('À¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë',¥°¥ì¥´¥ê¥ªÎò(_À¾Îñ),_À¾Îñ). 'Metonic cycle¤ò»È¤Ã¤Æ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë'(_À¾Îñ,_·î,_Æü) :- '¤Þ¤ºÄ´¤Ù¤¿¤¤Ç¯¤ÎÀ¾Îñǯ¤ò19¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤·¤Þ¤¹¡£¤½¤Î;¤ê¤Ë11¤ò¤«¤±¤Æ225¤«¤é°ú¤¤¤¿¿ô»ú¤òD¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D), '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2), 'À¾Îñǯ¤È¡¢À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú(¾®¿ôÅÀ°Ê²¼ÀÚ¤ê¼Î¤Æ)¤È¡¢D_2 + 1 ¤È¤ò­¤·¡¢¤½¤ì¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¤òE¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D_2,E), 'D_2¤Ë7¤ò­¤·¤ÆE¤Ç°ú¤­¡¢¤½¤ì¤òQ¤È¤·¤Þ¤¹¡£'(D_2,E,Q), '¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£'(Q,_·î,_Æü). '¤Þ¤ºÄ´¤Ù¤¿¤¤Ç¯¤ÎÀ¾Îñǯ¤ò19¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤·¤Þ¤¹¡£¤½¤Î;¤ê¤Ë11¤ò¤«¤±¤Æ225¤«¤é°ú¤¤¤¿¿ô»ú¤òD¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D) :- _19¤Ç³ä¤Ã¤¿Í¾¤ê is _À¾Îñ mod 19, D is 255 - _19¤Ç³ä¤Ã¤¿Í¾¤ê * 11. '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2) :- '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï'(D), '51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£'(D,D_2). '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2) :- '¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï'(D), '¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2). '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï'(D) :- D >= 51. '51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£'(D,D) :- D < 51. '51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£'(D,D_2) :- D >= 51, D_1 is D - 30, '51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£'(D_1,D_2). '¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï'(D) :- between(48,50,D). '¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2) :- D_2 is D - 1. 'À¾Îñǯ¤È¡¢À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú(¾®¿ôÅÀ°Ê²¼ÀÚ¤ê¼Î¤Æ)¤È¡¢D_2 + 1 ¤È¤ò­¤·¡¢¤½¤ì¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¤òE¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D_2,E) :- _À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú is _À¾Îñ // 4, E is (_À¾Îñ + _À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú + D_2 + 1) mod 7. 'D_2¤Ë7¤ò­¤·¤ÆE¤Ç°ú¤­¡¢¤½¤ì¤òQ¤È¤·¤Þ¤¹¡£'(D_2,E,Q) :- Q is D_2 + 7 - E. '¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£'(Q,3,Q) :- Q =< 31,!. '¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£'(Q,4,_Æü) :- Q >= 32, _Æü is Q - 31. ¥°¥ì¥´¥ê¥ªÎò(_À¾Îñ) :- true. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§Ãøºî¸¢ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # # ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢ # ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ # ·ë²Ì¤Îɽ¼¨¤Ï¤·¤Æ¤â¤·¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ # # [3] ´Ä¶­ # ¡¡[3.1] OS¡§ (Windows/Linux/Åù¡¹) # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§ (gcc 3.4 VC 6.0Åù) # ¡¡[3.3] ¸À¸ì¡§ (C/C++/¤É¤Á¤é¤Ç¤â²Ä ¤Î¤¤¤º¤ì¤«) # [4] ´ü¸Â¡§ ([yyyyǯmm·îddÆühh:mm¤Þ¤Ç] ¤Þ¤¿¤Ï [̵´ü¸Â] ¤Î¤¤¤º¤ì¤«) # # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ (¤É¤³¤Þ¤Ç½¬¤Ã¤Æ¤¤¤ë¤«¡¢É¸½à¥é¥¤¥Ö¥é¥ê¤Ï»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤Åù¡¹) # # # ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤Î·è¤áÊý # # ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤Î·è¤áÊý¤Îñ½ã¤ÊÄêµÁ¤Ï¡Ö½Õʬ¤ÎÆü¤Î¼¡¤ÎËþ·î¤Î¸å¤ÎºÇ½é¤ÎÆüÍËÆü¡×¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ # ¾°¡¢¤½¤ÎËþ·î¤ÎÆü¤¬ÆüÍËÆü¤Î¾ì¹ç¤ÏÍâÆüÍËÆü¤¬¥¤¡¼¥¹¥¿¡¼¤È¤Ê¤ê¤Þ¤¹¡£ # # ¤·¤«¤·¤Ê¤¬¤é¡¢¸·Ì©¤Ë¿½¤·¤Þ¤¹¤È¤³¤ÎÄêµÁ¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ # ¤Þ¤º¡¢¤³¤³¤Ç¤¤¤¦¡Ö½Õʬ¤ÎÆü¡×¤Ïŷʸ³ØÅª¤Ê°ÕÌ£¤Ç¤Î½Õʬ¤ÎÆü¤Ç¤Ï¤Ê¤¯¾ï¤Ë3·î21Æü¤È¤·¤Þ¤¹¡£ # ¡ÖËþ·î¤ÎÆü¡×¤È¤¤¤¦¤Î¤âŷʸ³ØÅª¤Ê°ÕÌ£¤Ç¤ÎËþ·î¤ÎÆü¤Ç¤Ï¤Ê¤¯Metonic cycle¤È¤¤¤¦¼þ´ü¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ê¤Î¤Ç¤¹¡£ # # ¤³¤ÎÍýͳ¤Ï¡¢Ãϵå¾å¤Î·ÐÅ٤ΰ㤤¡¢Â¨¤Á¥¿¥¤¥à¥¾¡¼¥ó¤Î°ã¤¤¤Ë¤è¤Ã¤ÆÃϰè¤Ë¤è¤Ã¤Æ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤¬ÊѤäƤ·¤Þ¤¦¤È¤¤¤¦º®Íð¤òËɤ°¤¿¤á¤Ê¤Î¤Ç¤¹¡£ # ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·è¤á¤ë¤È¤¤¤¦¤³¤È¤Ï¤½¤â¤½¤âÎéÇÒ¼°Åµ¤ÎɬÍפ«¤éÀ¸¤¸¤Æ¤­¤Þ¤·¤¿¡£ # 8À¤µª¤Þ¤Ç¤Ï·è¤áÊý¤Ë´Ø¤¹¤ëÄê¤Þ¤Ã¤¿ÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢ # AD325ǯ¤Î¥Ë¥«¥ä²ñµÄ¤Ë¤è¤ëÊýË¡¤¬½ù¡¹¤Ë¼è¤êÆþ¤ì¤é¤ì¤Æ¤¤¤Ã¤¿¤è¤¦¤Ç¤¹¡£ # ¥°¥ì¥´¥ê¥ªÎñ¤ÎºÎÂò¤Ë¤è¤Ã¤Æ´öʬ¤«¤Î½¤Àµ¤¬É¬ÍפȤʤê¤Þ¤·¤¿¤¬´ðËÜŪ¤Ë¤ÏƱ¤¸¤Ç¤¹¡£ # # µÕ¤Ë¸À¤¦¤È¡¢Metonic cycle¤µ¤¨ÃΤäƤ¤¤ì¤Ð¡¢¾­Íè¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë¤³¤È¤¬²Äǽ¤Ê¤Î¤Ç¤¹¡£ # # »î¤·¤Æ¤ß¤¿¤¤Êý¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥ë¥´¥ê¥º¥à¤Ë¤è¤Ã¤Æ1900ǯ¤«¤é2099ǯ¤Þ¤Ç¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤¬·×»»¤Ç¤­¤Þ¤¹¡£ # # £±¡¥¤Þ¤ºÄ´¤Ù¤¿¤¤Ç¯¤ÎÀ¾Îñǯ¤ò19¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤·¤Þ¤¹¡£ # # ¡ÊÎ㤨¤Ð2006ǯ¤Î¾ì¹ç¤Ï19¤Ç³ä¤Ã¤ÆÍ¾¤ê¤¬11¡Ë # # £²¡¥¤½¤Î;¤ê¤Ë11¤ò¤«¤±¤Æ225¤«¤é°ú¤¤¤¿¿ô»ú¤òD¤È¤·¤Þ¤¹¡£ # # ¡ÊD=225-11¡ß11= 104¡Ë # # £³¡¥¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢²þ¤á¤Æ¤½¤ì¤òD¤È¤·¤Þ¤¹¡£ # # ¡ÊD=104-30-30=44¡Ë # # £´¡¥¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£ # # (D=44¤Ê¤Î¤Ç¤½¤Î¤Þ¤Þ) # # £µ¡¥À¾Îñǯ¤È¡¢À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú(¾®¿ôÅÀ°Ê²¼ÀÚ¤ê¼Î¤Æ)¤È¡¢D+1¤È¤ò­¤·¡¢¤½¤ì¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¤òE¤È¤·¤Þ¤¹¡£ # # (2006+501+44+1=2552¤È¤Ê¤ê7¤Ç³ä¤ë¤È;¤ê¤¬4¤Ê¤Î¤ÇE=4) # # £¶¡¥D¤Ë7¤ò­¤·¤ÆE¤Ç°ú¤­¡¢¤½¤ì¤òQ¤È¤·¤Þ¤¹¡£ # # ¡ÊQ=44+7-4=47¡Ë # # £·¡¥¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£ # # ¡ÊQ¤Ï47¤Ê¤Î¤Ç¡¢¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤½¤·¤ÆÆüÉÕ¤Ï47-31=16Æü¡Ë # # ºæÊ¡²»¶µ²ñÅìµþ¥Á¥ã¥Ú¥ë # tokyo@jec-net.org # TEL.03-3642-5242¡¿FAX.03-3642-5479 # ¢©135-0042 ÅìµþÅÔ¹¾Åì¶èÌÚ¾ì2ÃúÌÜ17-10-301 # ¤Î¥µ¥¤¥È¤«¤é¤Î°úÍÑ '¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤Î·è¤áÊý ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤Î·è¤áÊý¤Îñ½ã¤ÊÄêµÁ¤Ï¡Ö½Õʬ¤ÎÆü¤Î¼¡¤ÎËþ·î¤Î¸å¤ÎºÇ½é¤ÎÆüÍËÆü¡×¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¾°¡¢¤½¤ÎËþ·î¤ÎÆü¤¬ÆüÍËÆü¤Î¾ì¹ç¤ÏÍâÆüÍËÆü¤¬¥¤¡¼¥¹¥¿¡¼¤È¤Ê¤ê¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢¸·Ì©¤Ë¿½¤·¤Þ¤¹¤È¤³¤ÎÄêµÁ¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¤Þ¤º¡¢¤³¤³¤Ç¤¤¤¦¡Ö½Õʬ¤ÎÆü¡×¤Ïŷʸ³ØÅª¤Ê°ÕÌ£¤Ç¤Î½Õʬ¤ÎÆü¤Ç¤Ï¤Ê¤¯¾ï¤Ë3·î21Æü¤È¤·¤Þ¤¹¡£ ¡ÖËþ·î¤ÎÆü¡×¤È¤¤¤¦¤Î¤âŷʸ³ØÅª¤Ê°ÕÌ£¤Ç¤ÎËþ·î¤ÎÆü¤Ç¤Ï¤Ê¤¯Metonic cycle¤È¤¤¤¦¼þ´ü¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ê¤Î¤Ç¤¹¡£ ¤³¤ÎÍýͳ¤Ï¡¢Ãϵå¾å¤Î·ÐÅ٤ΰ㤤¡¢Â¨¤Á¥¿¥¤¥à¥¾¡¼¥ó¤Î°ã¤¤¤Ë¤è¤Ã¤ÆÃϰè¤Ë¤è¤Ã¤Æ ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤¬ÊѤäƤ·¤Þ¤¦¤È¤¤¤¦º®Íð¤òËɤ°¤¿¤á¤Ê¤Î¤Ç¤¹¡£ ¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·è¤á¤ë¤È¤¤¤¦¤³¤È¤Ï¤½¤â¤½¤âÎéÇÒ¼°Åµ¤ÎɬÍפ«¤éÀ¸¤¸¤Æ¤­¤Þ¤·¤¿¡£ 8À¤µª¤Þ¤Ç¤Ï·è¤áÊý¤Ë´Ø¤¹¤ëÄê¤Þ¤Ã¤¿ÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢ AD325ǯ¤Î¥Ë¥«¥ä²ñµÄ¤Ë¤è¤ëÊýË¡¤¬½ù¡¹¤Ë¼è¤êÆþ¤ì¤é¤ì¤Æ¤¤¤Ã¤¿¤è¤¦¤Ç¤¹¡£ ¥°¥ì¥´¥ê¥ªÎñ¤ÎºÎÂò¤Ë¤è¤Ã¤Æ´öʬ¤«¤Î½¤Àµ¤¬É¬ÍפȤʤê¤Þ¤·¤¿¤¬´ðËÜŪ¤Ë¤ÏƱ¤¸¤Ç¤¹¡£ »î¤·¤Æ¤ß¤¿¤¤Êý¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥ë¥´¥ê¥º¥à¤Ë¤è¤Ã¤Æ1900ǯ¤«¤é2099ǯ¤Þ¤Ç¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤¬·×»»¤Ç¤­¤Þ¤¹¡£ £±¡¥¤Þ¤ºÄ´¤Ù¤¿¤¤Ç¯¤ÎÀ¾Îñǯ¤ò19¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤·¤Þ¤¹¡£ ¡ÊÎ㤨¤Ð2006ǯ¤Î¾ì¹ç¤Ï19¤Ç³ä¤Ã¤ÆÍ¾¤ê¤¬11¡Ë £²¡¥¤½¤Î;¤ê¤Ë11¤ò¤«¤±¤Æ225¤«¤é°ú¤¤¤¿¿ô»ú¤òD¤È¤·¤Þ¤¹¡£ ¡ÊD=225-11¡ß11= 104¡Ë £³¡¥¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢²þ¤á¤Æ¤½¤ì¤òD¤È¤·¤Þ¤¹¡£ ¡ÊD=104-30-30=44¡Ë £´¡¥¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£ (D=44¤Ê¤Î¤Ç¤½¤Î¤Þ¤Þ) £µ¡¥À¾Îñǯ¤È¡¢À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú(¾®¿ôÅÀ°Ê²¼ÀÚ¤ê¼Î¤Æ)¤È¡¢D+1¤È¤ò­¤·¡¢¤½¤ì¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¤òE¤È¤·¤Þ¤¹¡£ (2006+501+44+1=2552¤È¤Ê¤ê7¤Ç³ä¤ë¤È;¤ê¤¬4¤Ê¤Î¤ÇE=4) £¶¡¥D¤Ë7¤ò­¤·¤ÆE¤Ç°ú¤­¡¢¤½¤ì¤òQ¤È¤·¤Þ¤¹¡£ ¡ÊQ=44+7-4=47¡Ë £·¡¥¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£ ¡ÊQ¤Ï47¤Ê¤Î¤Ç¡¢¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤½¤·¤ÆÆüÉÕ¤Ï47-31=16Æü¡Ë' :- ºæÊ¡²»¶µ²ñÅìµþ¥Á¥ã¥Ú¥ë¤Î¥µ¥¤¥È¤«¤é¤Î°úÍÑ. 'ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢ ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ ·ë²Ì¤Îɽ¼¨¤Ï¤·¤Æ¤â¤·¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£'(_À¾Îñ,_·î,_Æü) :- 'ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢'(_À¾Îñ), 'Metonic cycle¤ò»È¤Ã¤Æ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë'(_À¾Îñ,_·î,_Æü). 'ɸ½àÆþÎϤ«¤éÀ¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë¤ò¼õ¤±¼è¤ê¡¢'(_À¾Îñ) :- À°¿ô¤òÆÀ¤ë('À¾Îñ¡Ê¥°¥ì¥´¥ê¥ªÎñ¡Ë',¥°¥ì¥´¥ê¥ªÎò(_À¾Îñ),_À¾Îñ). 'Metonic cycle¤ò»È¤Ã¤Æ¤½¤Îǯ¤Î¥¤¡¼¥¹¥¿¡¼¤ÎÆü¤ò·×»»¤¹¤ë'(_À¾Îñ,_·î,_Æü) :- '¤Þ¤ºÄ´¤Ù¤¿¤¤Ç¯¤ÎÀ¾Îñǯ¤ò19¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤·¤Þ¤¹¡£¤½¤Î;¤ê¤Ë11¤ò¤«¤±¤Æ225¤«¤é°ú¤¤¤¿¿ô»ú¤òD¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D), '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2), 'À¾Îñǯ¤È¡¢À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú(¾®¿ôÅÀ°Ê²¼ÀÚ¤ê¼Î¤Æ)¤È¡¢D_2 + 1 ¤È¤ò­¤·¡¢¤½¤ì¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¤òE¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D_2,E), 'D_2¤Ë7¤ò­¤·¤ÆE¤Ç°ú¤­¡¢¤½¤ì¤òQ¤È¤·¤Þ¤¹¡£'(D_2,E,Q), '¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£'(Q,_·î,_Æü). '¤Þ¤ºÄ´¤Ù¤¿¤¤Ç¯¤ÎÀ¾Îñǯ¤ò19¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤·¤Þ¤¹¡£¤½¤Î;¤ê¤Ë11¤ò¤«¤±¤Æ225¤«¤é°ú¤¤¤¿¿ô»ú¤òD¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D) :- _19¤Ç³ä¤Ã¤¿Í¾¤ê is _À¾Îñ mod 19, D is 255 - _19¤Ç³ä¤Ã¤¿Í¾¤ê * 11. '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2) :- '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï'(D), '51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£'(D,D_2). '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2) :- '¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï'(D), '¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2). '¤â¤·D¤¬51°Ê¾å¤Î»þ¤Ï'(D,D_2) :- D >= 51. '51̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç30¤Ç°ú¤­¡¢¤½¤ì¤òD_2¤È¤·¤Þ¤¹¡£'(D,D_2) :- D_2 is ((D - 51) // 30) + 1) * 30. '¤â¤·¡¢D¤¬48¤è¤ê¤âÂ礭¤¤»þ¤Ï'(D) :- between(48,50,D). '¤½¤ì¤«¤é1¤ò°ú¤­¤Þ¤¹¡£'(D,D_2) :- D_2 is D - 1. 'À¾Îñǯ¤È¡¢À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú(¾®¿ôÅÀ°Ê²¼ÀÚ¤ê¼Î¤Æ)¤È¡¢D_2 + 1 ¤È¤ò­¤·¡¢¤½¤ì¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¤òE¤È¤·¤Þ¤¹¡£'(_À¾Îñ,D_2,E) :- _À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú is _À¾Îñ // 4, E is (_À¾Îñǯ¤ò4¤Ç³ä¤Ã¤¿¿ô»ú + D_2 + 1) mod 7. 'D_2¤Ë7¤ò­¤·¤ÆE¤Ç°ú¤­¡¢¤½¤ì¤òQ¤È¤·¤Þ¤¹¡£'(D_2,E,Q) :- Q is D_2 + 7 - E. '¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£'(Q,3,Q) :- Q =< 31,!. '¤â¤·¡¢Q¤¬31°Ê²¼¤Î»þ¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï3·î¤Ç¤½¤Î¿ô»ú¤¬¥¤¡¼¥¹¥¿¡¼ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£Q¤¬32°Ê¾å¤Î¾ì¹ç¤Ï¥¤¡¼¥¹¥¿¡¼¤Ï4·î¤ÇQ¤«¤é31¤ò°ú¤¤¤¿¿ô»ú¤¬ÆüÉÕ¤òɽ¤ï¤·¤Þ¤¹¡£'(Q,4,_Æü) :- Q >= 32, _Æü is Q - 31. ¥°¥ì¥´¥ê¥ªÎò(_À¾Îñ) :- true. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥ª¥¤¥é¡¼ÁÇ¿ô(_¥ª¥¤¥é¡¼ÁÇ¿ô) :- between(0,39,_n), _¥ª¥¤¥é¡¼ÁÇ¿ô is _n * _n + _n + 41. % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô) :- between(0,4,_n), _¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô is truncate(2 ^ (2 ^ _n) + 1). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ # ¡¦1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï # ¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£ # '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£' :- '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥե§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ô¤òÆÀ¤ë'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó), '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥե§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤òÆÀ¤ë'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó), '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó,_n), write(' '), _n = 100. '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥե§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ô¤òÆÀ¤ë'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó) :- '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥե§¥ë¥Þ¡¼ÁÇ¿ô¤òÆÀ¤ë'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó), '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥª¥¤¥é¡¼ÁÇ¿ô¤òÆÀ¤ë'(_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó). '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥե§¥ë¥Þ¡¼ÁÇ¿ô¤òÆÀ¤ë'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó) :- findall(_n,( between(1,100,_n), ¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô(_n)), _¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó). '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥª¥¤¥é¡¼ÁÇ¿ô¤òÆÀ¤ë'(_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó) :- findall(_n,( between(1,100,_n), ¥ª¥¤¥é¡¼ÁÇ¿ô(_n)), _¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó). '1¤«¤é100¤Þ¤Ç¤ÎÈϰϤΥե§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤òÆÀ¤ë'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó) :- findall(_n,( between(1,100,_n), ¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó)), _¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó). ¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó) :- member(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó), member(_¥ª¥¤¥é¡¼ÁÇ¿ô,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó), 0 is _n mod _¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô, 0 is _n mod _¥ª¥¤¥é¡¼ÁÇ¿ô,!. '1¤«¤é100¤Þ¤Ç¤Î¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó,_n) :- '1¤«¤é100¤Þ¤Ç¤Î'(_n), '¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó). '1¤«¤é100¤Þ¤Ç¤Î'(_n) :- between(1,100,_n). '¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_n,_,_,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó) :- '¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È'(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó),!. '¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó,_,_) :- '¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È'(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó),!. '¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_n,_,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó,_) :- '¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È'(_n,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó),!. '¿ô¤ò¥×¥ê¥ó¥È¤¹¤ë¡£¤¿¤À¤·¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È¡¢¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È¥×¥ê¥ó¥È¤·¡¢¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È¥×¥ê¥ó¥È¤¹¤ë¤³¤È¡£'(_n,_,_,_) :- writef('%t',[_n]). '¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Î¾ì¹ç¤Ë¤Ï¡ÖFizzBuzz¡×¤È'(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó) :- member(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤È¥ª¥¤¥é¡¼ÁÇ¿ôξÊý¤ÎÇÜ¿ô¤Ê¤é¤Ó), write('FizzBuzz'),!. '¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¿ô¤ÎÂå¤ï¤ê¤Ë¡ÖFizz¡×¤È'(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó) :- member(_n,_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô¤Ê¤é¤Ó), write('Fizz'). '¥ª¥¤¥é¡¼ÁÇ¿ô¤Î¤È¤­¤Ï¡ÖBuzz¡×¤È'(_n,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó) :- member(_n,_¥ª¥¤¥é¡¼ÁÇ¿ô¤Ê¤é¤Ó), write('Buzz'). ¥ª¥¤¥é¡¼ÁÇ¿ô(_¥ª¥¤¥é¡¼ÁÇ¿ô) :- between(0,39,_n), _¥ª¥¤¥é¡¼ÁÇ¿ô is _n * _n + _n + 41. ¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô(_¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô) :- between(0,4,_n), _¥Õ¥§¥ë¥Þ¡¼ÁÇ¿ô is truncate(2 ^ (2 ^ _n) + 1). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¤Ê¤é¤Ó¤òÀ¸À®¤¹¤ë(_¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¤Ê¤é¤Ó) :- findall(_¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È,( ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îʸ»ú¥³¡¼¥É¤ÎÈϰÏ(_ʸ»ú¥³¡¼¥É), char_code(_¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È,_ʸ»ú¥³¡¼¥É)), _¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¤Ê¤é¤Ó). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îʸ»ú¥³¡¼¥É¤ÎÈϰÏ(_ʸ»ú¥³¡¼¥É) :- ¿ô»úʸ»ú¥³¡¼¥É(_ʸ»ú¥³¡¼¥É). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îʸ»ú¥³¡¼¥É¤ÎÈϰÏ(_ʸ»ú¥³¡¼¥É) :- ±ÑÂçʸ»ú¥³¡¼¥É(_ʸ»ú¥³¡¼¥É). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îʸ»ú¥³¡¼¥É¤ÎÈϰÏ(_ʸ»ú¥³¡¼¥É) :- ±Ñ¾®Ê¸»ú¥³¡¼¥É(_ʸ»ú¥³¡¼¥É). ¿ô»úʸ»ú¥³¡¼¥É(_ʸ»ú¥³¡¼¥É) :- between(48,57,_ʸ»ú¥³¡¼¥É). ±ÑÂçʸ»ú¥³¡¼¥É(_ʸ»ú¥³¡¼¥É) :- between(65,90,_ʸ»ú¥³¡¼¥É). ±Ñ¾®Ê¸»ú¥³¡¼¥É(_ʸ»ú¥³¡¼¥É) :- between(97,122,_ʸ»ú¥³¡¼¥É). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1363522503/91 # # Youtube¤ß¤¿¤¤¤Ê¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»úÎó¤òºî¤ëÊýË¡¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤ 'Youtube¤ß¤¿¤¤¤Ê¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»úÎó¤òºî¤ë'(_n,_ʸ»úÎó) :- '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(_n,[],Chars), atom_codes(_ʸ»úÎó,Code). '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(0,L,L). '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(M,L1,L) :- ¥æ¥Ë¡¼¥¯¤Êʸ»ú¥³¡¼¥É¤òÁªÂò¤¹¤ë(L1,Code), M_1 is M - 1, '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(M_1,[Code|L1],L). ¥æ¥Ë¡¼¥¯¤Êʸ»ú¤òÁªÂò¤¹¤ë(L,Code) :- Code is random(75) + 48, ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code), \+(member(Code,L)),!. ¥æ¥Ë¡¼¥¯¤Êʸ»ú¤òÁªÂò¤¹¤ë(L,Code) :- ¥æ¥Ë¡¼¥¯¤Êʸ»ú¤òÁªÂò¤¹¤ë(L,Code). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code) :- between(48,57,Code). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code) :- between(65,90,Code). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code) :- between(97,122,Code). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1363522503/91 # # Youtube¤ß¤¿¤¤¤Ê¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»úÎó¤òºî¤ëÊýË¡¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤ 'Youtube¤ß¤¿¤¤¤Ê¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»úÎó¤òºî¤ë'(_n,_ʸ»úÎó) :- '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(_n,[],Chars), atom_codes(_ʸ»úÎó,Code). '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(0,L,L). '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(M,L1,L) :- ¥æ¥Ë¡¼¥¯¤Êʸ»ú¥³¡¼¥É¤òÁªÂò¤¹¤ë(L1,Code), M_1 is M - 1, '¥é¥ó¥À¥à¤Ç¥æ¥Ë¡¼¥¯¤Ênʸ»ú¿ô¤Îʸ»ú¥³¡¼¥É¤Ê¤é¤Ó¤òºî¤ë'(M_1,[Code|L1],L). ¥æ¥Ë¡¼¥¯¤Êʸ»ú¤òÁªÂò¤¹¤ë(L,Code) :- Code is random(75) + 48, ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code), \+(member(Code,L)),!. ¥æ¥Ë¡¼¥¯¤Êʸ»ú¤òÁªÂò¤¹¤ë(L,Code) :- ¥æ¥Ë¡¼¥¯¤Êʸ»ú¤òÁªÂò¤¹¤ë(L,Code). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code) :- between(48,57,Code). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code) :- between(65,90,Code). ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÈϰÏ(Code) :- between(97,122,Code). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # 990 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§sage ¡§2013/03/16(ÅÚ) 11:04:28.09 # # ¤ê¤ó¤´¤¬Åö¤¿¤ë³ÎΨ20% # ¤ß¤«¤ó¤¬Åö¤¿¤ë³ÎΨ35% # ¤Ð¤Ê¤Ê¤¬Åö¤¿¤ë³ÎΨ45% # # ¤³¤ì¤ò¥³¡¼¥É¤Ë¤·¤¿¤¤¤ó¤Ç¤¹¤¬¡¢¤³¤Î»ÅÁȤߤϤɤ¦¼ÂÁõ¤·¤Æ¤¤¤¤¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó # ¸À¸ì¤ÏÆÃ¤Ë¤³¤À¤ï¤ê¤Ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¥Ò¥ó¥È¤ò¤¯¤À¤µ¤¤ # # 991 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§sage ¡§2013/03/16(ÅÚ) 11:09:36.39 # [0.0, 1.0)¤ÎÍð¿ô(x)¤òÀ¸À®¤·¡¢ # x < 0.2 ¤Ê¤é ¤ê¤ó¤´ # 0.2 <= x < 0.55 ¤Ê¤é ¤ß¤«¤ó # 0.55 <= x ¤Ê¤é ¤Ð¤Ê¤Ê # # 995 ¡§¥Ç¥Õ¥©¥ë¥È¤Î̵̾¤·¤µ¤ó ¡§2013/03/16(ÅÚ) 12:21:55.33 # >>990 # ¤½¤Î¤¯¤é¤¤¼«Ê¬¤Ç¹Í¤¨¤é¤ì¤Ê¤¤ÃηÃÃ٤줬¥×¥í¥°¥é¥ß¥ó¥°¤Ê¤ó¤«¤Ë¼ê¤ò½Ð¤¹¤Ê # :- op(300,xf,'%'). '¤ê¤ó¤´¤¬Åö¤¿¤ë³ÎΨ20%'(20 '%'). '¤ß¤«¤ó¤¬Åö¤¿¤ë³ÎΨ35%'(35 '%'). '¤Ð¤Ê¤Ê¤¬Åö¤¿¤ë³ÎΨ45%'(45 '%'). Åö¤¿¤ë³ÎΨ(¤ê¤ó¤´,_Åö¤¿¤ë³ÎΨ '%') :- '¤ê¤ó¤´¤¬Åö¤¿¤ë³ÎΨ20%'(_Åö¤¿¤ë³ÎΨ '%'). Åö¤¿¤ë³ÎΨ(¤ß¤«¤ó,_Åö¤¿¤ë³ÎΨ '%') :- '¤ß¤«¤ó¤¬Åö¤¿¤ë³ÎΨ35%'(_Åö¤¿¤ë³ÎΨ '%'). Åö¤¿¤ë³ÎΨ(¤Ð¤Ê¤Ê,_Åö¤¿¤ë³ÎΨ '%') :- '¤Ð¤Ê¤Ê¤¬Åö¤¿¤ë³ÎΨ45%'(_Åö¤¿¤ë³ÎΨ '%'). '¤ê¤ó¤´¡¦¤ß¤«¤ó¡¦¤Ð¤Ê¤Ê¤Î¤É¤ì¤«¤ò¼è¤ê½Ð¤¹'(_¤É¤ì¤«) :- °ì¤«¤éÉ´¤ÎÈϰϤÎÍð¿ô(_Íð¿ô), ³ä¤êÅö¤Æ¤¿¿ôÈϰϤˤ¢¤ë(_¤É¤ì¤«,_Íð¿ô). °ì¤«¤éÉ´¤ÎÈϰϤÎÍð¿ô(_Íð¿ô) :- _Íð¿ô is random(100) + 1. ³ä¤êÅö¤Æ¤¿¿ôÈϰϤˤ¢¤ë(¤ê¤ó¤´,_Íð¿ô) :- between(1,20,_Íð¿ô). ³ä¤êÅö¤Æ¤¿¿ôÈϰϤˤ¢¤ë(¤ß¤«¤ó,_Íð¿ô) :- between(21,55,_Íð¿ô). ³ä¤êÅö¤Æ¤¿¿ôÈϰϤˤ¢¤ë(¤Ð¤Ê¤Ê,_Íð¿ô) :- between(56,100,_Íð¿ô). ɸËܤȤ·¤ÆÍѰդ¹¤Ù¤­¸Ä¿ô(_ʪ,_ÁíɸËÜ¿ô,_ɸËܤȤ·¤ÆÍѰդ¹¤Ù¤­¸Ä¿ô) :- Åö¤¿¤ë³ÎΨ(_ʪ,_Åö¤¿¤ë³ÎΨ '%'), _ɸËܤȤ·¤ÆÍѰդ¹¤Ù¤­¸Ä¿ô is truncate((_ÁíɸËÜ¿ô * _Åö¤¿¤ë³ÎΨ / 100) + 0.5). % ¡Ö³ä¤êÅö¤Æ¤¿¿ôÈϰϤˤ¢¤ë¡×¤È³ÎΨ¤Î´Ø·¸¤¬¤¦¤Þ¤¯ÀâÌÀ¤Ç¤­¤Æ¤¤¤Ê¤¤¡£ % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1362913813/10 # # RegularExpression¤ÇIP¥¢¥É¥ì¥¹¤¬Àµ¤·¤¤¤«¤É¤¦¤«È½ÃǤ¹¤ë¤Î¤Ï̵Íý¤«¤Í¡© # ̵Íý¤Ê¤é³Æ¥ª¥¯¥Æ¥Ã¥ÈÀÚ¤ê½Ð¤·¤Æ0¡Á255¤ÎÈϰϤˤ¢¤ë¤«ÃÏÆ»¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¤±¤É 'RegularExpression¤ÇIP¥¢¥É¥ì¥¹¤¬Àµ¤·¤¤¤«¤É¤¦¤«È½ÃǤ¹¤ë¤Î¤Ï̵Íý¤«¤Í¡© ̵Íý¤Ê¤é³Æ¥ª¥¯¥Æ¥Ã¥ÈÀÚ¤ê½Ð¤·¤Æ0¡Á255¤ÎÈϰϤˤ¢¤ë¤«ÃÏÆ»¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¤±¤É'(_IP¥¢¥É¥ì¥¹Ê¸»úÎó) :- split(_IP¥¢¥É¥ì¥¹Ê¸»úÎó,['.'],L), count((member(N,L),integer(N),between(0,255,N)),4). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¥â¥ó¥Æ¥«¥ë¥íË¡¤Ë¤è¤ê±ß¼þΨ¤òµá¤á¤ë # »î¹Ô¸Â³¦¿ô(10000000). ¥â¥ó¥Æ¥«¥ë¥íË¡¤Ë¤è¤ê±ß¼þΨ¤òµá¤á¤ë(_»î¹Ô¸Â³¦¿ô,_±ß¼þΨ) :- var(_»î¹Ô¸Â³¦¿ô), »î¹Ô¸Â³¦¿ô(_»î¹Ô¸Â³¦¿ô), ¥â¥ó¥Æ¥«¥ë¥íË¡¤Ë¤è¤ê±ß¼þΨ¤òµá¤á¤ë(_»î¹Ô¸Â³¦¿ô,_±ß¼þΨ),!. ¥â¥ó¥Æ¥«¥ë¥íË¡¤Ë¤è¤ê±ß¼þΨ¤òµá¤á¤ë(_»î¹Ô¸Â³¦¿ô,_±ß¼þΨ) :- count('_x,_y¤òÍð¿ô¤«¤éµá¤á¡¢¥Ô¥¿¥´¥é¥¹¤ÎÄêÍý¤ò»È¤Ã¤ÆºÂɸÅÀ(_x,_y)¤¬»Íʬ¤Î°ì±ß¤ÎÆâÉô¤Ç¤¢¤ë¤«È½Äꤹ¤ë'(_»î¹Ô¸Â³¦¿ô), _»Íʬ¤Î°ì±ß¤ÎÆâÉô¤ËÍî¤Á¤¿¿ô), _±ß¼þΨ is (_»Íʬ¤Î°ì±ß¤ÎÆâÉô¤ËÍî¤Á¤¿¿ô * 4.0) / _»î¹Ô¸Â³¦¿ô. '_x,_y¤òÍð¿ô¤«¤éµá¤á¡¢¥Ô¥¿¥´¥é¥¹¤ÎÄêÍý¤ò»È¤Ã¤ÆºÂɸÅÀ(_x,_y)¤¬»Íʬ¤Î°ì±ß¤ÎÆâÉô¤Ç¤¢¤ë¤«È½Äꤹ¤ë'(_»î¹Ô¸Â³¦¿ô) :- between(1,_»î¹Ô¸Â³¦¿ô,_), '0¤«¤é1¤ÎÍð¿ô2¤Ä¤ò¥Ú¥¢¤Ë¤·¡¢ÊÒÊý¤ò£øºÂɸ¡¢¤â¤¦1Êý¤ò£ù¤È¤¹¤ë'(_x,_y), ¥Ô¥¿¥´¥é¥¹¤ÎÄêÍý¤ò»È¤Ã¤ÆºÂɸÅÀ¤¬±ß¤ÎÆâÉô¤Ç¤¢¤ë¤«È½Äꤹ¤ë(_x,_y). '0¤«¤é1¤ÎÍð¿ô2¤Ä¤ò¥Ú¥¢¤Ë¤·¡¢ÊÒÊý¤ò£øºÂɸ¡¢¤â¤¦1Êý¤ò£ù¤È¤¹¤ë'(_x,_y) :- _x is random(100001) / 100000, _y is random(100001) / 100000,!. ¥Ô¥¿¥´¥é¥¹¤ÎÄêÍý¤ò»È¤Ã¤ÆºÂɸÅÀ¤¬±ß¤ÎÆâÉô¤Ç¤¢¤ë¤«È½Äꤹ¤ë(_x,_y) :- 1.0 >= _x * _x + _y * _y. count(P,N) :- findall(1,P,L), length(L,N). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1320365280/140 # # [1] ¼ø¶Èñ¸µ¡§ C¥×¥í # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # 3¹Ô3Îó¤Î¹ÔÎóa¤òÆþÎϸ塢;°ø»Ò¹ÔÎó¤Ç¹ÔÎóÃÍ|a|¤òµá¤á¤ë # '3¹Ô3Îó¤Î¹ÔÎóa¤òÆþÎϸ塢;°ø»Ò¹ÔÎó¤Ç¹ÔÎóÃÍ|a|¤òµá¤á¤ë' :- '3¹Ô3Îó¤Î¹ÔÎóa¤òÆþÎÏ'(_a), ';°ø»Ò¹ÔÎó¤Ç¹ÔÎóÃÍ|a|¤òµá¤á¤ë'(_a,_¹ÔÎó¼°_a¤ÎÃÍ), writef('¹ÔÎóÃÍ|a|¤Ï%t¤Ç¤¹¡£\n',[_¹ÔÎó¼°_a¤ÎÃÍ]). '3¹Ô3Îó¤Î¹ÔÎóa¤òÆþÎÏ'(_a) :- length(_a,3), findall(L,( nth1(_nth1,_a,L), length(L,3), '3ÎóÆþÎϤ¹¤ë'(_nth1,1,L)), _a). '3ÎóÆþÎϤ¹¤ë'(_,_,[]). '3ÎóÆþÎϤ¹¤ë'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,[V|R]) :- writef('ÎóÆþÎÏ[%t][%t] : ',[_¹Ô°ÌÃÖ,_Îó°ÌÃÖ]), get_line(Line), atom_to_term(Line,V,_), _Îó°ÌÃÖ_2 is _Îó°ÌÃÖ + 1, '3ÎóÆþÎϤ¹¤ë'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ_2,R). ';°ø»Ò¹ÔÎó¤ò»È¤Ã¤ÆµÕ¹ÔÎó¤òÆÀ¤ë'(_n,_ÀµÊý¹ÔÎó,_µÕ¹ÔÎó) :- ';°ø»Ò¹ÔÎó¤Ç¹ÔÎóÃÍ|a|¤òµá¤á¤ë'(_ÀµÊý¹ÔÎó,_¹ÔÎó¼°¤ÎÃÍ), ;°ø»Ò¹ÔÎó(_n,_ÀµÊý¹ÔÎó,_;°ø»Ò¹ÔÎó), žÃÖ(_;°ø»Ò¹ÔÎó,_žÃÖ¤µ¤ì¤¿Í¾°ø»Ò¹ÔÎó), ¹ÔÎó¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤËÃͤò³Ý¤±¤ë(1,_n,_žÃÖ¤µ¤ì¤¿Í¾°ø»Ò¹ÔÎó,1 / _¹ÔÎó¼°¤ÎÃÍ,_µÕ¹ÔÎó). ¹ÔÎó¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤËÃͤò³Ý¤±¤ë(_¹ÔÌÜ,_n,LL,_,LL) :- _¹ÔÌÜ > _n,!. ¹ÔÎó¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤËÃͤò³Ý¤±¤ë(_¹ÔÌÜ,_n,LL1,_¾è¿ô / _½ü¿ô,LL2) :- '¹Ô´ðËÜÊÑ·Á'(_¾è¿ô / _½ü¿ô # _¹ÔÌÜ,LL1,LL3), _¹ÔÌÜ_2 is _¹ÔÌÜ + 1, ¹ÔÎó¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤËÃͤò³Ý¤±¤ë(_¹ÔÌÜ_2,_n,LL3,_¾è¿ô / _½ü¿ô,LL2). ';°ø»Ò¹ÔÎó¤Ç¹ÔÎóÃÍ|a|¤òµá¤á¤ë'(_a,_¹ÔÎó¼°_a¤ÎÃÍ) :- ;°ø»Ò¹ÔÎó(_a,_;°ø»Ò¹ÔÎó), _a = [_a¤ÎÂè°ì¹Ô|_], _;°ø»Ò¹ÔÎó = [_;°ø»Ò¹ÔÎó¤ÎÂè°ì¹Ô|_], 'Æó¤Ä¤Î¤Ê¤é¤Ó¤ÎÀѤÎÏÂ'(_a¤ÎÂè°ì¹Ô,_;°ø»Ò¹ÔÎó¤ÎÂè°ì¹Ô,_¹ÔÎó¼°_a¤ÎÃÍ). 'Æó¤Ä¤Î¤Ê¤é¤Ó¤ÎÀѤÎÏÂ'([],[],0). 'Æó¤Ä¤Î¤Ê¤é¤Ó¤ÎÀѤÎÏÂ'([A|R1],[B|R2],S) :- 'Æó¤Ä¤Î¤Ê¤é¤Ó¤ÎÀѤÎÏÂ'(R1,R2,S_1), S is S_1 + A * B. ;°ø»Ò¹ÔÎó(_ÀµÊý¹ÔÎó,_;°ø»Ò¹ÔÎó) :- length(_ÀµÊý¹ÔÎó,_n), ;°ø»Ò¹ÔÎó(_n,_ÀµÊý¹ÔÎó,_;°ø»Ò¹ÔÎó). ;°ø»Ò¹ÔÎó(_n,_ÀµÊý¹ÔÎó,_;°ø»Ò¹ÔÎó) :- length(_;°ø»Ò¹ÔÎó,_n), findall(L,( nth1(_i,_;°ø»Ò¹ÔÎó,L), ;°ø»Ò¹ÔÎó¤ÎÍ×ÁǤ¬Í¾°ø»Ò¤Ç¤¢¤ë(_n,_ÀµÊý¹ÔÎó,_i,L)), _;°ø»Ò¹ÔÎó). ;°ø»Ò¹ÔÎó¤ÎÍ×ÁǤ¬Í¾°ø»Ò¤Ç¤¢¤ë(_n,_ÀµÊý¹ÔÎó,_i,L) :- length(L,_n), findall(_;°ø»Ò,( nth1(_j,L,_;°ø»Ò), ;°ø»Ò(_n,_ÀµÊý¹ÔÎó,_i,_j,_;°ø»Ò)), L). ¹ÔÎó¼°¤ÎÃÍ(1,[[_]],1) :- !. ¹ÔÎó¼°¤ÎÃÍ(2,_ÀµÊý¹ÔÎó,_¹ÔÎó¼°¤ÎÃÍ) :- Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤκ¹¤òÆÀ¤ë(_n,_ÀµÊý¹ÔÎó,_¹ÔÎó¼°¤ÎÃÍ),!. ¹ÔÎó¼°¤ÎÃÍ(_n,_ÀµÊý¹ÔÎó,_¹ÔÎó¼°¤ÎÃÍ) :- ';°ø»Ò¹ÔÎó¤Ç¹ÔÎóÃÍ|a|¤òµá¤á¤ë'(_ÀµÊý¹ÔÎó,_¹ÔÎó¼°¤ÎÃÍ). ;°ø»Ò(_n,_ÀµÊý¹ÔÎó,_i,_j,_;°ø»Ò) :- 'n¼¡ÀµÊý¹ÔÎ󤫤顢Âèi¹Ô¤ÈÂèjÎó¤ò¼è¤ê½ü¤¤¤¿ÀµÊý¹ÔÎó(n-1¼¡ÀµÊý¹ÔÎó¤Î¹ÔÎ󼰤ˡ¢(-1)¤Îi+j¾è¤ò¤«¤±¤¿¤â¤Î¤ò¡¢A¤Î(i,j);°ø»Ò¤È¤¤¤¤¡¢Cij¤Çɽ¤·¤Þ¤¹¡£'(_n,_ÀµÊý¹ÔÎó,_i,_j,_;°ø»Ò). 'n¼¡ÀµÊý¹ÔÎ󤫤顢Âèi¹Ô¤ÈÂèjÎó¤ò¼è¤ê½ü¤¤¤¿ÀµÊý¹ÔÎó(n-1¼¡ÀµÊý¹ÔÎó¤Î¹ÔÎ󼰤ˡ¢(-1)¤Îi+j¾è¤ò¤«¤±¤¿¤â¤Î¤ò¡¢A¤Î(i,j);°ø»Ò¤È¤¤¤¤¡¢Cij¤Çɽ¤·¤Þ¤¹¡£'(_n,_ÀµÊý¹ÔÎó,_i,_j,_;°ø»Ò) :- 'ÀµÊý¹ÔÎ󤫤éi¹ÔjÎó¤ò¼è¤ê½ü¤¤¤¿¹ÔÎó¼°¤ÎÃÍ'(_n,_ÀµÊý¹ÔÎó,_i,_j,_n_1¼¡ÀµÊý¹ÔÎó¤Î¹ÔÎó¼°¤ÎÃÍ), 'i,j¤«¤é¾è¿ô¤òÆÀ¤ë'(_i,_j,_¾è¿ô), _;°ø»Ò is _¾è¿ô * _n_1¼¡ÀµÊý¹ÔÎó¤Î¹ÔÎó¼°¤ÎÃÍ. 'ÀµÊý¹ÔÎ󤫤éi¹ÔjÎó¤ò¼è¤ê½ü¤¤¤¿¹ÔÎó¼°¤ÎÃÍ'(_n,_ÀµÊý¹ÔÎó,_i,_j,_n_1¼¡ÀµÊý¹ÔÎó¤Î¹ÔÎó¼°¤ÎÃÍ) :- 'ÀµÊý¹ÔÎ󤫤éÂèi¹Ô¤ÈÂèjÎó¤ò¼è¤ê½ü¤¯'(_ÀµÊý¹ÔÎó,_i,_j,_n_1¼¡ÀµÊý¹ÔÎó), _n_1 is _n - 1, ¹ÔÎó¼°¤ÎÃÍ(_n_1,_n_1¼¡ÀµÊý¹ÔÎó,_n_1¼¡ÀµÊý¹ÔÎó¤Î¹ÔÎó¼°¤ÎÃÍ). 'ÀµÊý¹ÔÎ󤫤éÂèi¹Ô¤ÈÂèjÎó¤ò¼è¤ê½ü¤¯'(_ÀµÊý¹ÔÎó,_i,_j,_n_1¼¡ÀµÊý¹ÔÎó) :- 'Â貿¹Ô¤ò¼è¤ê½ü¤¯'(_ÀµÊý¹ÔÎó,_i,_Âèi¹Ô¤¬¼è¤ê½ü¤«¤ì¤¿¹ÔÎó), žÃÖ(_Âèi¹Ô¤¬¼è¤ê½ü¤«¤ì¤¿¹ÔÎó,_žÃÖ¤µ¤ì¤¿Âèi¹Ô¤¬¼è¤ê½ü¤«¤ì¤¿¹ÔÎó), 'Â貿¹Ô¤ò¼è¤ê½ü¤¯'(_žÃÖ¤µ¤ì¤¿Âèi¹Ô¤¬¼è¤ê½ü¤«¤ì¤¿¹ÔÎó,_j,_žÃÖ¤µ¤ì¤¿Âèi¹ÔÂèjÎ󤬼è¤ê½ü¤«¤ì¤¿¹ÔÎó), žÃÖ(_žÃÖ¤µ¤ì¤¿Âèi¹ÔÂèjÎ󤬼è¤ê½ü¤«¤ì¤¿¹ÔÎó,_n_1¼¡ÀµÊý¹ÔÎó). 'Â貿¹Ô¤ò¼è¤ê½ü¤¯'(_ÀµÊý¹ÔÎó,_Â貿¹Ô,_Âèi¹Ô¤¬¼è¤ê½ü¤«¤ì¤¿¹ÔÎó) :- append(L0,[L|R],_ÀµÊý¹ÔÎó), length([_|L0],_Â貿¹Ô), append(L0,R,_Âèi¹Ô¤¬¼è¤ê½ü¤«¤ì¤¿¹ÔÎó). Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤκ¹¤òÆÀ¤ë(0,[],1) :- !. Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤκ¹¤òÆÀ¤ë(1,[[N]],N) :- !. Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤκ¹¤òÆÀ¤ë(_n,_ÀµÊý¹ÔÎó,_Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤκ¹) :- Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤòÆÀ¤ë(_ÀµÊý¹ÔÎó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤÎÀÑ,_±¦¾å¤¬¤êÂгÑÍ×ÁǤÎÀÑ), _Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤκ¹ is _±¦²¼¤¬¤êÂгÑÍ×ÁǤÎÀÑ - _±¦¾å¤¬¤êÂгÑÍ×ÁǤÎÀÑ. Æó¤Ä¤ÎÂгÑÍ×ÁǤÎÀѤòÆÀ¤ë(_ÀµÊý¹ÔÎó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤÎÀÑ,_±¦¾å¤¬¤êÂгÑÍ×ÁǤÎÀÑ) :- Æó¤Ä¤ÎÂгÑÍ×ÁǤòÆÀ¤ë(_ÀµÊý¹ÔÎó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó,_±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó), ÂгÑÍ×ÁǤγݻ»(_±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤÎÀÑ), ÂгÑÍ×ÁǤγݻ»(_±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó,_±¦¾å¤¬¤êÂгÑÍ×ÁǤÎÀÑ). Æó¤Ä¤ÎÂгÑÍ×ÁǤòÆÀ¤ë(_ÀµÊý¹ÔÎó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó,_±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó) :- ±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_ÀµÊý¹ÔÎó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó), ±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_ÀµÊý¹ÔÎó,_±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó). ±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_ÀµÊý¹ÔÎó,_±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó) :- findall(V,( nth1(_nth1,_ÀµÊý¹ÔÎó,L), nth1(_nth1,L,V)), _±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó). ±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_ÀµÊý¹ÔÎó,_±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó) :- reverse(_ÀµÊý¹ÔÎó,_¹Ô¤òµÕž¤·¤¿ÀµÊý¹ÔÎó), ±¦²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_¹Ô¤òµÕž¤·¤¿ÀµÊý¹ÔÎó,_±¦¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó). º¸²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_ÀµÊý¹ÔÎó,_º¸²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó) :- findall(V,( nth1(_nth1,_ÀµÊý¹ÔÎó,L), length([_|R],_nth1), append(_,[V|R],L)), _º¸²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó),!. º¸¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_ÀµÊý¹ÔÎó,_º¸¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó) :- reverse(_ÀµÊý¹ÔÎó,_¹Ô¤òµÕž¤·¤¿ÀµÊý¹ÔÎó), º¸²¼¤¬¤êÂгÑÍ×ÁǤʤé¤Ó(_¹Ô¤òµÕž¤·¤¿ÀµÊý¹ÔÎó,_º¸¾å¤¬¤êÂгÑÍ×ÁǤʤé¤Ó). 'i,j¤«¤é¾è¿ô¤òÆÀ¤ë'(_i,_j,(-1)) :- 1 is (_i + _j) mod 2,!. 'i,j¤«¤é¾è¿ô¤òÆÀ¤ë'(_i,_j,1) :- 0 is (_i + _j) mod 2,!. ÂгÑÍ×ÁǤγݻ»([],1). ÂгÑÍ×ÁǤγݻ»([A|R],X) :- ÂгÑÍ×ÁǤγݻ»(R,Y), X is A * Y. 'n¼¡ÀµÊý¹ÔÎó¤ÎÍ×ÁǤò¹Ô¡¦Îó½ç½ø¤Ç¼è¤ê½Ð¤¹'(_n,_ÀµÊý¹ÔÎó,_i¹Ô,_jÎó,_ÀµÊý¹ÔÎó¤ÎÍ×ÁÇ) :- between(1,_n,_i¹Ô), nth1(_i¹Ô,_ÀµÊý¹ÔÎó,L), nth1(_jÎó,L,_ÀµÊý¹ÔÎó¤ÎÍ×ÁÇ). 'n¼¡ÀµÊý¹ÔÎó¤ÎÍ×ÁǤòÎó¡¦¹Ô½ç½ø¤Ç¼è¤ê½Ð¤¹'(_n,_ÀµÊý¹ÔÎó,_i¹Ô,_jÎó,_ÀµÊý¹ÔÎó¤ÎÍ×ÁÇ) :- between(1,_n,_jÎó), nth1(_i¹Ô,_ÀµÊý¹ÔÎó,L), nth1(_jÎó,L,_ÀµÊý¹ÔÎó¤ÎÍ×ÁÇ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # x^2+y^2=z^2¤òËþ¤¿¤¹Àµ¤ÎÀ°¿ô¤ò¥Ô¥¿¥´¥é¥¹¿ô¤È¸Æ¤Ó¡¢»°¤ÄÁÈ(x,y,z)¤Çɽ¤¹¡£ # ¥Ô¥¿¥´¥é¥¹¿ô¤Î¥ê¥¹¥È¤òÀ¸À®¤¹¤ë´Ø¿ôpyths¤òÄêµÁ¤»¤è¡£ # ¤¿¤À¤·¡¢¥Ô¥¿¥´¥é¥¹¿ô¤ÎÍ×ÁǤϡ¢Í¿¤¨¤é¤ì¤¿¾å¸Â°Ê²¼¤Ç¤¢¤ë¤È¤¹¤ë¡£ # ¥Ô¥¿¥´¥é¥¹¿ô¤Ê¤é¤Ó(_Í×ÁÇÃ;å¸Â,_¥Ô¥¿¥´¥é¥¹¿ô¤Ê¤é¤Ó) :- findall(N,between(1,_Í×ÁÇÃ;å¸Â,N),L), findall([X,Y,Z],( ½ÅÊ£ÁȤ߹ç¤ï¤»(L,3,[X,Y,Z]), Z * Z =:= X * X + Y * Y), _¥Ô¥¿¥´¥é¥¹¿ô¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % % Prolog¤È¤¤¤¦¤Î¤ÏFizzBuzzÌäÂê¸þ¤­¤Ê¤Î¤À¤í¤¦¤«¡£ % fizzbuzz(N) :- findall(M,between(1,N,M),L), fizzbuzz([_],[_],L). fizzbuzz([_,_,_],[_,_,_,_,_],[_|R]) :- fizzbuzz([],[],['FizzBuzz'|R]). fizzbuzz([_,_,_],L2,[_|R]) :- fizzbuzz([],L2,['Fizz'|R]). fizzbuzz(L1,[_,_,_,_,_],[_|R]) :- fizzbuzz(L1,[],['Buzz'|R]). fizzbuzz(L1,L2,[A|R]) :- writef('%w ',[A]), fizzbuzz([_|L1],[_|L2],R). fizzbuzz(_,_,[]). fizzbuzz(N) :- fizbuzz(1,N,['','','Fizz'],['','','','','Buzz']). fizzbuzz(M,N,_,_) :- M > N,!. fizzbuzz(M,N,[_31,_32,_33],[_51,_52,_53,_54,_55]) :- ½ÐÎϾðÊó(_31,_51,M,_N), writef('%w%w%w ',[_31,_51,_N]), fizzbuzz(M,N,[_32,_33,_31],[_52,_53,_54,_55,_51]). ½ÐÎϾðÊó('','',_N,_N) :- !. ½ÐÎϾðÊó(_,_,_,''). fizzbuzz(N) :- findall(M,between(1,N,M),L), forall(fizzbuzz(['','','Fizz'],['','','','','Buzz'],L),true). fizzbuzz([A|R1],[B|R2],[N|R3]) :- fizzbuzz(A,B,N,C), writef('%w%w%w ',[A,B,C]). fizzbuzz([A|R1],[B|R2],[_|R3]) :- append(R1,[A],L1), append(R2,[B],L2), fizzbuzz(L1,L2,R3). fizzbuzz('','',N,N) :- !. fizzbuzz(A,B,_,''). % Prolog¤Ë¤è¤ëFizzBuzzÌäÂê¥×¥í¥°¥é¥à¤ÎÈæ³Ó % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1361082416/48 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # FizzBuzzÌäÂê¤ÎÍ×ÎΤǡ¢1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò¡¢¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢ # 3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢ # ¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë # '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë' :- '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò'(_À°¿ô), '¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(_À°¿ô), _À°¿ô = 100. '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò'(_À°¿ô) :- between(1,100,_À°¿ô). '¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(N) :- 0 is N mod 3, writef('%t',['Fizz']), fail. '¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(N) :- 0 is N mod 7, writef('%t',['Buzz']), fail. '¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(N) :- 0 is N mod 13, writef('%t',[hoge]), fail. '¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(N) :- \+(0 is N mod 3), \+(0 is N mod 7), \+(0 is N mod 13), writef('%t',[N]), fail. '¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢13¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(_) :- write('\n'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/998 # # [1] ¼ø¶Èñ¸µ¡§ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # FizzBuzzÌäÂê¤ÎÍ×ÎΤǡ¢1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò¡¢¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢ # 3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢ # ¿ôÃͤÎÂå¤ï¤ê¤Ë½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë # 'FizzBuzzÌäÂê¤ÎÍ×ÎΤǡ¢1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò¡¢¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ»¤è¡¢¤¿¤À¤·¡¢ 3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢ ¿ôÃͤÎÂå¤ï¤ê¤Ë¡¢¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë' :- '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò¡¢'(_À°¿ô), '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë¡¢¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(_À°¿ô), _À°¿ô = 100. '1¤«¤é100¤Þ¤Ç¤ÎÀ°¿ô¤ò¡¢'(_À°¿ô) :- between(1,100,_À°¿ô). '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢¿ôÃͤÎÂå¤ï¤ê¤Ë¡¢¤«¤¤¤®¤ç¤¦¶èÀÚ¤ê¤Ç½ÐÎϤ¹¤ë¤³¤È¤È¤¹¤ë'(_À°¿ô) :- '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢³ºÅö¤·¤Ê¤¤»þ¤Ï¿ôÃͤò'(_À°¿ô,_½ÐÎÏÃÍ), writef('%t\n',[_½ÐÎÏÃÍ]). '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢³ºÅö¤·¤Ê¤¤»þ¤Ï¿ôÃͤò'(_À°¿ô,_½ÐÎÏʸ»úÎó) :- '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤Î¤É¤ì¤«¤¬³ºÅö¤·¤¿¤È¤­'(_À°¿ô,_ɽ¼¨¤Ê¤é¤Ó), atomic_list_concat(_ɽ¼¨¤Ê¤é¤Ó,_ɽ¼¨Ê¸»úÎó),!. '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤ò¡¢³ºÅö¤·¤Ê¤¤»þ¤Ï¿ôÃͤò'(_À°¿ô,_À°¿ô). '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤Î¤É¤ì¤«¤¬³ºÅö¤·¤¿¤È¤­'(_À°¿ô,_ɽ¼¨¤Ê¤é¤Ó) :- findall(A,( '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤Î'(_À°¿ô,A)), _ɽ¼¨¤Ê¤é¤Ó), ¤É¤ì¤«¤¬³ºÅö¤·¤¿¤È¤­(_ɽ¼¨¤Ê¤é¤Ó). '3¤ÎÇÜ¿ô¤Ê¤é¡ÖFizz¡×¤ò¡¢5¤ÎÇÜ¿ô¤Ê¤é¡ÖBuzz¡×¤ò¡¢7¤ÎÇÜ¿ô¤Ê¤é¡Öhoge¡×¤Î'(_À°¿ô,A) :- member([_½ü¿ô,A],[[3,'Fizz'],[5,'Buzz'],[7,hoge]]), 0 is _À°¿ô mod _½ü¿ô. ¤É¤ì¤«¤¬³ºÅö¤·¤¿¤È¤­([_|_]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/874 # # ../test/read.cgi/tech/1357748713/775 # http://pc11.2ch.net/test/read.cgi/tech/1202135539/607 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ ¡§¥­¡¼¥Ü¡¼¥É¤«¤éÀ¾Îñ¤È·î¤òÆþÎϤ¹¤ë¤È¥«¥ì¥ó¥À¡¼¤ò # ¡¡¡¡¡¡¡¡¡¡¡¡É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # ¥­¡¼¥Ü¡¼¥É¤«¤éÀ¾Îñ¤È·î¤òÆþÎϤ¹¤ë¤È¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë :- ¥­¡¼¥Ü¡¼¥É¤«¤éÀ¾Îñ¤È·î¤òÆþÎϤ¹¤ë¤È(_À¾Îñ,_·î), ¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_À¾Îñ,_·î). ¥­¡¼¥Ü¡¼¥É¤«¤éÀ¾Îñ¤È·î¤òÆþÎϤ¹¤ë¤È(_À¾Îñ,_·î) :- À°¿ô¤òÆÀ¤ë(À¾Îñ,true,_À¾Îñ), À°¿ô¤òÆÀ¤ë(·î,between(1,12,_·î),_·î). ¥«¥ì¥ó¥À¡¼¤òɽ¼¨¤¹¤ë(_À¾Îñ,_·î) :- ¥«¥ì¥ó¥À¡¼¤ò(_À¾Îñ,_·î,_¥«¥ì¥ó¥À¡¼), ɽ¼¨¤¹¤ë(_À¾Îñ,_·î,_¥«¥ì¥ó¥À¡¼). ¥«¥ì¥ó¥À¡¼¤ò(_À¾Îñ,_·î,_¥«¥ì¥ó¥À¡¼) :- ·îËöÆü(_À¾Îñ,_·î,_·îËöÆü), 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,1,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü), findall(D,between(1,_·îËöÆü,D),L1), ¥«¥ì¥ó¥À¡¼¤ÎÀèÆ¬¤Ë0¤òµÍ¤á¤ë(L1,L2), '7¸ÄÁȤËʬ²ò'(L2,_¥«¥ì¥ó¥À¡¼). ·îËöÆü(_À¾Îñ,2,29) :- ¤¦¤ë¤¦Ç¯(_À¾Îñ),!. ·îËöÆü(_,2,28) :- !. ·îËöÆü(_,_·î,31) :- member(_·î,[1,3,5,7,8,10,12]),!. ·îËöÆü(_,_·î,30) :- member(_·î,[4,6,9,11]),!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!, fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- \+(0 is _ǯ mod 4), fail. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,1,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _ǯ_1 is _ǯ - 1, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ_1,13,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü),!. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,2,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _ǯ_1 is _ǯ - 1, 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ_1,14,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü),!. 'Zeller¤Î¸ø¼°¤òÍѤ¤¤ÆÍËÆü¤òÆÀ¤ë'(_ǯ,_·î,_Æü,_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü) :- _ÍËÆü¤òɽ¤¹ÃÍ is (_ǯ + truncate(_ǯ / 4) - truncate(_ǯ / 100) + truncate(_ǯ / 400) + truncate((13 * _·î + 8) / 5) + _Æü) mod 7, 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(_ÍËÆü¤òɽ¤¹ÃÍ,_ÍËÆü),!. 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(0,ÆüÍË). 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(1,·îÍË). 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(2,²ÐÍË). 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(3,¿åÍË). 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(4,ÌÚÍË). 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(5,¶âÍË). 'Zeller¤Î¸ø¼°¤Ç»È¤¦ÍËÆü¤òɽ¤¹ÃÍ'(6,ÅÚÍË). all([],_). all([V|R],V) :- all(R,V). ¥«¥ì¥ó¥À¡¼¤ÎÀèÆ¬¤Ë0¤òµÍ¤á¤ë(L1,L2) :- length(L0,_ÍËÆü¤òɽ¤¹ÃÍ), append(L0,L1,L2), all(L0,0),!. '7¸ÄÁȤËʬ²ò'([],[]) :- !. '7¸ÄÁȤËʬ²ò'([_1,_2,_3,_4,_5,_6,_7|R1],[[_1,_2,_3,_4,_5,_6,_7]|R2]) :- '7¸ÄÁȤËʬ²ò'(R1,R2),!. '7¸ÄÁȤËʬ²ò'(L,[L]). ɽ¼¨¤¹¤ë(_À¾Îñ,_·î,_¥«¥ì¥ó¥À¡¼) :- writef('\n%8rǯ %t·î\n\n',[_À¾Îñ,_·î]), member(L,_¥«¥ì¥ó¥À¡¼), °ì¹Ôɽ¼¨¤¹¤ë(L), fail. ɽ¼¨¤¹¤ë(_À¾Îñ,_·î,_¥«¥ì¥ó¥À¡¼) :- write('\n'). °ì¹Ôɽ¼¨¤¹¤ë([]) :- write('\n'). °ì¹Ôɽ¼¨¤¹¤ë([0|R]) :- writef('%3r',[' ']), °ì¹Ôɽ¼¨¤¹¤ë(R),!. °ì¹Ôɽ¼¨¤¹¤ë([N|R]) :- writef('%3r',[N]), °ì¹Ôɽ¼¨¤¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/705 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯) # [3] ´Ä¶­ # ÌäÂ꣱¥á¥¤¥ó´Ø¿ô¤Ç¥­¡¼¥Ü¡¼¥É¤«¤éÆó¤Ä¤ÎÀ°¿ôn1¤Èn2¤òÆÉ¤ß¹þ¤ß¡¤¤½¤ì¤é¤òexponent´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¡¤ # n1¤În2¾è¤ò·×»»¤·¡¤·ë²Ì¤ò¥á¥¤¥ó´Ø¿ô¤Çɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤­¤Ê¤µ¤¤¡¥ # ¡ã¼Â¹ÔÎã¡ä # Æó¤Ä¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡¥ # n1 = 5 # n2 = 2 # 5¤Î2¾è¤Ï25¤Ç¤¹¡¥ # ÌäÂꣲ 5¿Í¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ó¤Ç¤¤¤­¡¢¤½¤ÎºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ÌäÂꣳ ±ß¤ÎÌÌÀѤΰìÍ÷ɽ¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¡ã¼Â¹Ô·ë²Ì¡ä # Ⱦ·Â --- ÌÌÀÑ # 1.0 --- 3.14 # 1.1 --- 3.80 # 1.2 --- 4.52 # 1.3 --- 5.31 # ÌäÂꣴ¡¡µå¤ÎÂÎÀѤò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¼Â¹ÔÎã # ÂÎÀÑ = 1766.25 # [3.1] OS¡§ unix # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§ gcc # ¡¡[3.3] ¸À¸ì¡§ C # [4] ´ü¸Â¡§£²·î£±£¹Æü # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ ¤Ê¤· # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ µå¤ÎÂÎÀѤò·×»»¤¹¤ë(_µå¤ÎȾ·Â,_µå¤ÎÂÎÀÑ) :- count(( between(1,100000,_), '3ºÂɸ¤òÍð¿ô¤ÇÆÀ¤ë'(X,Y,Z), ¸¶ÅÀ¤«¤é¤Îµ÷Î¥¤¬µå¤ÎȾ·Â¤ÎÈϰÏ(X,Y,Z)), _µå¤ÎȾ·Â¤ÎÈÏ°ÏÆâ¤Î¸Ä¿ô), _µå¤ÎÂÎÀÑ is (_µå¤ÎȾ·Â¤ÎÈÏ°ÏÆâ¤Î¸Ä¿ô / 100000) * (_µå¤ÎȾ·Â ^ 3) * 8. '3ºÂɸ¤òÍð¿ô¤ÇÆÀ¤ë'(X,Y,Z) :- X is random(1001) / 1000, Y is random(1001) / 1000, Z is random(1001) / 1000. ¸¶ÅÀ¤«¤é¤Îµ÷Î¥¤¬µå¤ÎȾ·Â¤ÎÈϰÏ(X,Y,Z) :- sqrt(X ^ 2 + Y ^ 2 + Z ^ 2) =< 1.0. count(P,N) :- findsum(1,P,F), N is truncate(F). findsum(_ÁªÂò¹à,_¹à,_¹ç·×ÃÍ) :- findall(_ÁªÂò¹à,_¹à,_Ãͤʤé¤Ó), sum(_Ãͤʤé¤Ó,_¹ç·×ÃÍ),!. sum(L,Sum) :- sum(L,0,Sum). sum([],Sum,Sum) :- !. sum([N|R],Sum_1,Sum) :- Sum_2 is Sum_1 + N, sum(R,Sum_2,Sum). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/705 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯) # [3] ´Ä¶­ # ÌäÂ꣱¥á¥¤¥ó´Ø¿ô¤Ç¥­¡¼¥Ü¡¼¥É¤«¤éÆó¤Ä¤ÎÀ°¿ôn1¤Èn2¤òÆÉ¤ß¹þ¤ß¡¤¤½¤ì¤é¤òexponent´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¡¤ # n1¤În2¾è¤ò·×»»¤·¡¤·ë²Ì¤ò¥á¥¤¥ó´Ø¿ô¤Çɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤­¤Ê¤µ¤¤¡¥ # ¡ã¼Â¹ÔÎã¡ä # Æó¤Ä¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡¥ # n1 = 5 # n2 = 2 # 5¤Î2¾è¤Ï25¤Ç¤¹¡¥ # ÌäÂꣲ 5¿Í¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ó¤Ç¤¤¤­¡¢¤½¤ÎºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ÌäÂꣳ ±ß¤ÎÌÌÀѤΰìÍ÷ɽ¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¡ã¼Â¹Ô·ë²Ì¡ä # Ⱦ·Â --- ÌÌÀÑ # 1.0 --- 3.14 # 1.1 --- 3.80 # 1.2 --- 4.52 # 1.3 --- 5.31 # ÌäÂꣴ¡¡µå¤ÎÂÎÀѤò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ¼Â¹ÔÎã # ÂÎÀÑ = 1766.25 # [3.1] OS¡§ unix # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§ gcc # ¡¡[3.3] ¸À¸ì¡§ C # [4] ´ü¸Â¡§£²·î£±£¹Æü # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ ¤Ê¤· # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ '5¿Í¤ÎÅÀ¿ô¤òÆÉ¤ß¹þ¤ó¤Ç¤¤¤­¡¢¤½¤ÎºÇ¹âÅÀ¤òɽ¼¨¤¹¤ë' :- findall(_ÅÀ¿ô,( between(1,5,_), ¿ô¤òÆÀ¤ë(ÅÀ¿ô,true,_ÅÀ¿ô)), _5¿Í¤ÎÅÀ¿ô¤Ê¤é¤Ó), ºÇ¹âÅÀ(_5¿Í¤ÎÅÀ¿ô¤Ê¤é¤Ó,_ºÇ¹âÅÀ), writef('ºÇ¹âÅÀ¤Ï%t¤Ç¤¹\n',[_ºÇ¹âÅÀ). ºÇ¹âÅÀ(_5¿Í¤ÎÅÀ¿ô¤Ê¤é¤Ó,_ºÇ¹âÅÀ) :- append(_,[_ºÇ¹âÅÀ|R],_5¿Í¤ÎÅÀ¿ô¤Ê¤é¤Ó), \+((member(A,R),A > _ºÇ¹âÅÀ)),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/595 # # [1] ¼ø¶Èñ¸µ¡§ C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # 5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó¡Ê0¤Þ¤¿¤Ï1¤¬Å¬Åö¤Ëʤ٤é¤ì¤Æ¤¤¤ë¤â¤Î¡Ë¤òÍѰդ· # 1¤¬¤¢¤ëÇÛÎó¤Î¾å²¼º¸±¦¤ÎÇÛÎó¤Î¤¦¤Á2¤Þ¤¿¤Ï3¸Ä1¤¬Â¸ºß¤¹¤ë¤Ê¤é¤½¤ÎÇÛÎó¤ò0¤ËÊѹ¹¤· # ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï1¤Î¤Þ¤Þ¤Ë¤¹¤ë¡¡¤³¤ÎÁàºî¤ò10²ó¹Ô¤Ã¤¿ÇÛÎó¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë # ¤Þ¤¿¤³¤ÎÇÛÎó¤Ï¾å²¼º¸±¦·Ò¤¬¤Ã¤Æ¤¤¤Æ1,1¤ÎÇÛÎó¤Î¾ì¹ç¾å¤Ï1,5¡¢º¸¤Ï5.1¤Ç¤¢¤ë # '5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó¡Ê0¤Þ¤¿¤Ï1¤¬Å¬Åö¤Ëʤ٤é¤ì¤Æ¤¤¤ë¤â¤Î¡Ë¤òÍѰդ· 1¤¬¤¢¤ëÇÛÎó¤Î¾å²¼º¸±¦¤ÎÇÛÎó¤Î¤¦¤Á2¤Þ¤¿¤Ï3¸Ä1¤¬Â¸ºß¤¹¤ë¤Ê¤é¤½¤ÎÇÛÎó¤ò0¤ËÊѹ¹¤· ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï1¤Î¤Þ¤Þ¤Ë¤¹¤ë ¤³¤ÎÁàºî¤ò10²ó¹Ô¤Ã¤¿ÇÛÎó¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë ¤Þ¤¿¤³¤ÎÇÛÎó¤Ï¾å²¼º¸±¦·Ò¤¬¤Ã¤Æ¤¤¤Æ1,1¤ÎÇÛÎó¤Î¾ì¹ç¾å¤Ï1,5¡¢º¸¤Ï5.1¤Ç¤¢¤ë'(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÊÑ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó) :- '5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó¡Ê0¤Þ¤¿¤Ï1¤¬Å¬Åö¤Ëʤ٤é¤ì¤Æ¤¤¤ë¤â¤Î¡Ë¤òÍѰդ·1¤¬¤¢¤ëÇÛÎó¤Î¾å²¼º¸±¦¤ÎÇÛÎó¤Î¤¦¤Á2¤Þ¤¿¤Ï3¸Ä1¤¬Â¸ºß¤¹¤ë¤Ê¤é¤½¤ÎÇÛÎó¤ò0¤ËÊѹ¹¤·¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï1¤Î¤Þ¤Þ¤Ë¤¹¤ë¤³¤ÎÁàºî¤ò10²ó¹Ô¤Ã¤¿ÇÛÎó¤òµá¤á¤ë'(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÊÑ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó). '5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó¡Ê0¤Þ¤¿¤Ï1¤¬Å¬Åö¤Ëʤ٤é¤ì¤Æ¤¤¤ë¤â¤Î¡Ë¤òÍѰդ·1¤¬¤¢¤ëÇÛÎó¤Î¾å²¼º¸±¦¤ÎÇÛÎó¤Î¤¦¤Á2¤Þ¤¿¤Ï3¸Ä1¤¬Â¸ºß¤¹¤ë¤Ê¤é¤½¤ÎÇÛÎó¤ò0¤ËÊѹ¹¤·¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï1¤Î¤Þ¤Þ¤Ë¤¹¤ë¤³¤ÎÁàºî¤ò10²ó¹Ô¤Ã¤¿ÇÛÎó¤òµá¤á¤ë'(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÊÑ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó) :- Á°¸åº¸±¦¤ÎÇÛÎó¤Ë1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë(0,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÊÑ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó). Á°¸åº¸±¦¤ÎÇÛÎó¤Ë1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë¤³¤È¤ò10²ó·«¤êÊÖ¤¹(10,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó) :- !. Á°¸åº¸±¦¤ÎÇÛÎó¤Ë1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë¤³¤È¤ò10²ó·«¤êÊÖ¤¹(N,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_ÊÑ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó) :- Á°¸åº¸±¦¤ÎÇÛÎó¤Ë1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_2), N_2 is N + 1, Á°¸åº¸±¦¤ÎÇÛÎó¤Ë1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë¤³¤È¤ò10²ó·«¤êÊÖ¤¹(N2,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_2,_ÊÑ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó). Á°¸åº¸±¦¤ÎÇÛÎó¤Ë1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_2) :- Îó¤ÎÃÖ´¹(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1), ¹Ô¤ÎÃÖ´¹(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_2), Æó¤Ä¤ÎÇÛÎó¤ÎÏÀÍýÀѤò¼è¤ë(_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_2,_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_2). ¹Ô¤ÎÃÖ´¹(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó) :- 'ºÇ½ª¹Ô¤òÁ°¡¢Âè°ì¹Ô¤ò¸å¤í¤ËÉղä·¤¿5Îó6¹Ô¤Î¿¼¡¸µÇÛÎó'(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_5Îó7¹Ô¤Î¿¼¡¸µÇÛÎó), findall(L,( append(L0,[_Á°¤Î¹Ô,_¹Ô,_¸å¤Î¹Ô|R],_5Îó7¹Ô¤Î¿¼¡¸µÇÛÎó), '1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë'(_Á°¤Î¹Ô,_¹Ô,_¸å¤Î¹Ô,L)), _ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó). Îó¤ÎÃÖ´¹(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó) :- žÃÖ(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_žÃÖ¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó), ¹Ô¤ÎÃÖ´¹(_žÃÖ¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ÃÖ´¹¤µ¤ì¤¿Å¾ÃÖ¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1), žÃÖ(_ÃÖ´¹¤µ¤ì¤¿Å¾ÃÖ¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó_1,_ÃÖ´¹¤µ¤ì¤¿5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó). 'ºÇ½ª¹Ô¤òÁ°¡¢Âè°ì¹Ô¤ò¸å¤í¤ËÉղä·¤¿5Îó7¹Ô¤Î¿¼¡¸µÇÛÎó'(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_5Îó7¹Ô¤Î¿¼¡¸µÇÛÎó) :- last(_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó,_ºÇ½ª¹Ô), _5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó = [_Âè°ì¹Ô|_], append([_ºÇ½ª¹Ô|_5Îó5¹Ô¤Î¿¼¡¸µÇÛÎó],[_Âè°ì¹Ô],_5Îó7¹Ô¤Î¿¼¡¸µÇÛÎó),!. '1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë'(_Á°¤Î¹Ô,_¹Ô,_¸å¤Î¹Ô,[0,0,0,0,0]) :- count(member(1,_Á°¤Î¹Ô),_Á°¤Î¹Ô¤Î1¤Î¸Ä¿ô), between(2,3,_Á°¤Î¹Ô¤Î1¤Î¸Ä¿ô),!. '1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë'(_Á°¤Î¹Ô,_¹Ô,_¸å¤Î¹Ô,[0,0,0,0,0]) :- count(member(1,_¸å¤Î¹Ô),_¸å¤Î¹Ô¤Î1¤Î¸Ä¿ô), between(2,3,_¸å¤Î¹Ô¤Î1¤Î¸Ä¿ô),!. '1¤¬2¤Þ¤¿¤Ï3¸Ä¸ºß¤¹¤ë¤Ê¤é¤³¤ÎÇÛÎó¤ÎÎóÁ´ÂΤò0¤ËÃÖ´¹¤¹¤ë'(_,_¹Ô,_,_¹Ô). Æó¤Ä¤ÎÇÛÎó¤ÎÏÀÍýÀѤò¼è¤ë([],[],[]) :- !. Æó¤Ä¤ÎÇÛÎó¤ÎÏÀÍýÀѤò¼è¤ë([L1|R1],[L2|R2],[L3|R3]) :- '2¤Ä¤Î¤Ê¤é¤ÓÍ×ÁǤÎÏÀÍýÀÑ'(L1,L2,L3), Æó¤Ä¤ÎÇÛÎó¤ÎÏÀÍýÀѤò¼è¤ë(R1,R2,R3). '2¤Ä¤Î¤Ê¤é¤ÓÍ×ÁǤÎÏÀÍýÀÑ'([],[],[]) :- !. '2¤Ä¤Î¤Ê¤é¤ÓÍ×ÁǤÎÏÀÍýÀÑ'([N1|R1],[N2|R2],[N3|R3]) :- N3 is N1 /\ N2, '2¤Ä¤Î¤Ê¤é¤ÓÍ×ÁǤÎÏÀÍýÀÑ'(R1,R2,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/637 # # 1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥° ±é½¬(¹½Â¤ÂÎ) # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ 3ºý¤ÎËܤÎ̾Á°¡¢ISBN¡¢Ãø¼Ô̾¤òÆþÎϤ·°ìÍ÷ɽ¼¨¤·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢ISBN¤Î4,6,12,16·åÌܤË'-'¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¥¨¥é¡¼É½¼¨¤·¤Ê¤µ¤¤¡£ # '3ºý¤ÎËܤÎ̾Á°¡¢ISBN¡¢Ãø¼Ô̾¤òÆþÎϤ·°ìÍ÷ɽ¼¨¤·¤Ê¤µ¤¤¡£¤¿¤À¤·¡¢ISBN¤Î4,6,12,16·åÌܤË'-'¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¥¨¥é¡¼É½¼¨¤·¤Ê¤µ¤¤¡£' :- '3ºý¤ÎËܤÎ̾Á°¡¢ISBN¡¢Ãø¼Ô̾¤òÆþÎϤ·'(_3ºý¤ÎËÜ), °ìÍ÷ɽ¼¨¤·¤Ê¤µ¤¤(_3ºý¤ÎËÜ). '3ºý¤ÎËܤÎ̾Á°¡¢ISBN¡¢Ãø¼Ô̾¤òÆþÎϤ·'(_3ºý¤ÎËÜ) :- findall([_ËܤÎ̾Á°,_ISBN,_Ãø¼Ô̾],( between(1,3,_), ËܤÎ̾Á°¤ÎÆþÎÏ(_ËܤÎ̾Á°), 'ISBN¤ÎÆþÎÏ'(_ISBN), Ãø¼Ô̾¤ÎÆþÎÏ(_Ãø¼Ô̾)), _3ºý¤ÎËÜ). ËܤÎ̾Á°¤ÎÆþÎÏ(_ËܤÎ̾Á°) :- write('ËܤÎ̾Á°¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_ËܤÎ̾Á°). 'ISBN¤ÎÆþÎÏ'(_ËܤÎ̾Á°) :- write('ISBN¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_ISBN). Ãø¼Ô̾¤ÎÆþÎÏ(_Ãø¼Ô̾) :- write('Ãø¼Ô̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_Ãø¼Ô̾). °ìÍ÷ɽ¼¨¤·¤Ê¤µ¤¤([]). °ìÍ÷ɽ¼¨¤·¤Ê¤µ¤¤([[_ËܤÎ̾Á°,_ISBN,_Ãø¼Ô̾]|R]) :- writef('%20l %17l %12l',[_ËܤÎ̾Á°,_ISBN,_Ãø¼Ô̾]), '¤¿¤À¤·¡¢ISBN¤Î4,6,12,16·åÌܤË'-'¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¥¨¥é¡¼É½¼¨¤·¤Ê¤µ¤¤¡£'(_ISBN), write('\n'), °ìÍ÷ɽ¼¨¤·¤Ê¤µ¤¤(R). '¤¿¤À¤·¡¢ISBN¤Î4,6,12,16·åÌܤË'-'¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¥¨¥é¡¼É½¼¨¤·¤Ê¤µ¤¤¡£'(_ISBNʸ»úÎó) :- atom_chars(_ISBNʸ»úÎó,[_,_,_,-,_,-,_,_,_,_,_,-,_,_,_,-|_]),!. '¤¿¤À¤·¡¢ISBN¤Î4,6,12,16·åÌܤË'-'¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¥¨¥é¡¼É½¼¨¤·¤Ê¤µ¤¤¡£'(_ISBNʸ»úÎó) :- write(' %ISBN·Á¼°¥¨¥é¡¼ '). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¤¦¤ë¤¦Ç¯¤Ï²¿²óÍè¤ë¤«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_¤¦¤ë¤¦Ç¯¤Î²ó¿ô) :- count(( between(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_ǯ), ¤¦¤ë¤¦Ç¯(_ǯ)), _¤¦¤ë¤¦Ç¯¤Î²ó¿ô). '¤¢¤ëÆü¤«¤é¸å¤Îǯ¤Î¤¢¤ëÆü¤Ï²¿ÆüÌܤ«(µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤½¤ì¤¾¤ìÆü¿ô¤Ë´Þ¤á¤ë)'(_ǯµ¯ÅÀ,_·îµ¯ÅÀ,_Æüµ¯ÅÀ,_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ) :- µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤½¤ì¤¾¤ìÆü¿ô¤Ë´Þ¤á¤ë, Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_·îµ¯ÅÀ,_Æüµ¯ÅÀ,_Âç³¢Æü¤Ï²¿ÆüÌÜ), Íâǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_²¿ÆüÌÜ_1), Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ_2), _²¿ÆüÌÜ is _Âç³¢Æü¤Ï²¿ÆüÌÜ + _²¿ÆüÌÜ_1 - _²¿ÆüÌÜ_2. '¤¢¤ëÆü¤«¤é¸å¤Îǯ¤Î¤¢¤ëÆü¤Ï²¿ÆüÌܤ«(µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤È¤â¤ËÆü¿ô¤Ë´Þ¤á¤Ê¤¤)'(_ǯµ¯ÅÀ,_·îµ¯ÅÀ,_Æüµ¯ÅÀ,_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ) :- µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤È¤â¤ËÆü¿ô¤Ë´Þ¤á¤Ê¤¤, Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_·îµ¯ÅÀ,_Æüµ¯ÅÀ,_Âç³¢Æü¤Ï²¿ÆüÌÜ), Íâǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_²¿ÆüÌÜ_1), Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ_2), _²¿ÆüÌÜ is _Âç³¢Æü¤Ï²¿ÆüÌÜ + _²¿ÆüÌÜ_1 - _²¿ÆüÌÜ_2 - 2. '¤¢¤ëÆü¤«¤é¸å¤Îǯ¤Î¤¢¤ëÆü¤Ï²¿ÆüÌܤ«(µ¯ÅÀÆü¤È½ªÅÀÆü¤Î¤É¤Á¤é¤«¤ÏÆü¿ô¤Ë´Þ¤á¤Ê¤¤)'(_ǯµ¯ÅÀ,_·îµ¯ÅÀ,_Æüµ¯ÅÀ,_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ) :- µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤È¤â¤ËÆü¿ô¤Ë´Þ¤á¤Ê¤¤, Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_·îµ¯ÅÀ,_Æüµ¯ÅÀ,_Âç³¢Æü¤Ï²¿ÆüÌÜ), Íâǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_²¿ÆüÌÜ_1), Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ_2), _²¿ÆüÌÜ is _Âç³¢Æü¤Ï²¿ÆüÌÜ + _²¿ÆüÌÜ_1 - _²¿ÆüÌÜ_2 - 1. ¤¢¤ëǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_²¿ÆüÌÜ) :- ¤¦¤ë¤¦Ç¯¤Ï²¿²óÍè¤ë¤«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_¤¦¤ë¤¦Ç¯¤Î²ó¿ô), '´ðËܤϰìǯ365Æü¤Ç·×»»¤·¡¢¤½¤ì¤Ë¤¦¤ë¤¦Ç¯¤Î²ó¿ô(Æü¿ô)¤ò²Ã¤¨¤ë'(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_¤¦¤ë¤¦Ç¯¤Î²ó¿ô,_²¿ÆüÌÜ). '´ðËܤϰìǯ365Æü¤Ç·×»»¤·¡¢¤½¤ì¤Ë¤¦¤ë¤¦Ç¯¤Î²ó¿ô(Æü¿ô)¤ò²Ã¤¨¤ë'(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_¤¦¤ë¤¦Ç¯¤Î²ó¿ô,_²¿ÆüÌÜ) :- _²¿ÆüÌÜ is _¤¦¤ë¤¦Ç¯¤Î²ó¿ô + 365 * (_ǯ½ªÅÀ - _ǯµ¯ÅÀ + 1). Íâǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_²¿ÆüÌÜ) :- _Íâǯ is _ǯµ¯ÅÀ + 1, ¤¢¤ëǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_Íâǯ,_ǯ½ªÅÀ,_²¿ÆüÌÜ). ¤¢¤ëǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤Î¤¢¤ëÆü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ) :- _Á°Ç¯ is _ǯ½ªÅÀ - 1, ¤¢¤ëǯ¤Î¸µÃ¶¤«¤é¸å¤Îǯ¤ÎÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯµ¯ÅÀ,_Á°Ç¯,_²¿ÆüÌÜ_1), ¤¢¤ëǯ·îÆü¤Ï¤½¤Îǯ¤Î¸µÃ¶¤«¤é²¿ÆüÌܤ«(_ǯ½ªÅÀ,_·î½ªÅÀ,_Æü½ªÅÀ,_²¿ÆüÌÜ_2), _²¿ÆüÌÜ is _²¿ÆüÌÜ_1 + _²¿ÆüÌÜ_2. ¤¢¤ëǯ·îÆü¤Ï¤½¤Îǯ¤Î¸µÃ¶¤«¤é²¿ÆüÌܤ«(_ǯ,_·î,_Æü,_¸µÃ¶¤«¤é²¿Æü) :- ·îÆü¿ô¤Ê¤é¤Ó(_ǯ,_·îÆü¿ô¤Ê¤é¤Ó), _Á°·î is _·î - 1, length(L0,_·î), append(L0,_,_·îÆü¿ô¤Ê¤é¤Ó), sum(L0,_Á°·îËöÆü¤Þ¤Ç¤ÎÆü¿ô), _¸µÃ¶¤«¤é²¿Æü is _Á°·îËöÆü¤Þ¤Ç¤ÎÆü¿ô + _Æü. Âç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯ,_·î,_Æü,_Âç³¢Æü¤Ï²¿ÆüÌÜ) :- ·îÆü¿ô¤Ê¤é¤Ó(_ǯ,_·îÆü¿ô¤Ê¤é¤Ó), Íâ·î¤«¤é°ìÆü¤«¤éÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯ,_·î,_Æü,_·îÆü¿ô¤Ê¤é¤Ó,_Íâ·î¤Î°ìÆü¤«¤éÂç³¢Æü¤Ï²¿ÆüÌÜ), º£Æü¤ò´Þ¤á¤Æº£·îËöÆü¤Þ¤Ç¤ÎÆü¿ô(_ǯ,_·î,_Æü,_·îÆü¿ô¤Ê¤é¤Ó,_º£Æü¤ò´Þ¤á¤Æº£·î¤ÎËöÆü¤Þ¤Ç¤ÎÆü¿ô), _Âç³¢Æü¤Ï²¿ÆüÌÜ is _º£Æü¤ò´Þ¤á¤Æº£·î¤ÎËöÆü¤Þ¤Ç¤ÎÆü¿ô + _Íâ·î¤Î°ìÆü¤«¤éÂç³¢Æü¤Ï²¿ÆüÌÜ. Íâ·î¤«¤é°ìÆü¤«¤éÂç³¢Æü¤Ï²¿ÆüÌܤ«(_ǯ,_·î,_Æü,_·îÆü¿ô¤Ê¤é¤Ó,_²¿ÆüÌÜ) :- length(L0,_·î), append(L0,_Íâ·î¤«¤é¤Î·îÆü¿ô¤Ê¤é¤Ó,_·îÆü¿ô¤Ê¤é¤Ó), sum(_Íâ·î¤«¤é¤Î·îÆü¿ô¤Ê¤é¤Ó,_²¿ÆüÌÜ). º£Æü¤ò´Þ¤á¤Æº£·îËöÆü¤Þ¤Ç¤ÎÆü¿ô(_ǯ,_·î,_Æü,_·îÆü¿ô¤Ê¤é¤Ó,_º£Æü¤ò´Þ¤á¤Æº£·î¤ÎËöÆü¤Þ¤Ç¤ÎÆü¿ô) :- nth1(_·î,_·îÆü¿ô¤Ê¤é¤Ó,_º£·î¤ÎÆü¿ô), _º£Æü¤ò´Þ¤á¤Æº£·î¤ÎËöÆü¤Þ¤Ç¤ÎÆü¿ô is _º£·î¤ÎÆü¿ô - _Æü + 1. ÌÀÆü¤«¤éº£·îËöÆü¤Þ¤Ç¤ÎÆü¿ô(_ǯ,_·î,_Æü,_·îÆü¿ô¤Ê¤é¤Ó,_ÌÀÆü¤«¤éº£·î¤ÎËöÆü¤Þ¤Ç¤ÎÆü¿ô) :- nth1(_·î,_·îÆü¿ô¤Ê¤é¤Ó,_º£·î¤ÎÆü¿ô), _ÌÀÆü¤«¤éº£·î¤ÎËöÆü¤Þ¤Ç¤ÎÆü¿ô is _º£·î¤ÎÆü¿ô - _Æü. ·îÆü¿ô¤Ê¤é¤Ó(_ǯ,[31,29,31,30,31,30,31,31,30,31,30,31]) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îÆü¿ô¤Ê¤é¤Ó(_ǯ,[31,28,31,30,31,30,31,31,30,31,30,31]). ¤¦¤ë¤¦Ç¯(_ǯʸ»úÎó) :- atom(_ǯʸ»úÎó), atom_to_term(_ǯʸ»úÎó,_ǯÀ°¿ô,_),!, ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!, fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- \+(0 is _ǯ mod 4), fail. µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤½¤ì¤¾¤ìÆü¿ô¤Ë´Þ¤á¤ë. µ¯ÅÀÆü¤È½ªÅÀÆü¤Ï¤È¤â¤ËÆü¿ô¤Ë´Þ¤á¤Ê¤¤. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/528 # # [1] ¼ø¶Èñ¸µ¡§ £Ã¸À¸ìÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ÆþÎϤµ¤ì¤¿¿ôÃͤβó¿ôʬ¤À¤±Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤¡¤ # ɽ΢¤¬½Ð¤ëËç¿ô¤ò¥«¥¦¥ó¥È¤·¤ÆÉ½¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à ¤òºî¤ê¤Ê¤µ¤¤¡£ # 'ÆþÎϤµ¤ì¤¿¿ôÃͤβó¿ôʬ¤À¤±Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤¡¤É½Î¢¤¬½Ð¤ëËç¿ô¤ò¥«¥¦¥ó¥È¤·¤ÆÉ½¼¨¤µ¤»¤ë' :- 'ÆþÎϤµ¤ì¤¿¿ôÃͤÎ'(_ÆþÎϤµ¤ì¤¿¿ôÃÍ), '¿ôÃͤβó¿ôʬ¤À¤±Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤¡¤É½Î¢¤¬½Ð¤ëËç¿ô¤ò¥«¥¦¥ó¥È¤·¤Æ'(_ÆþÎϤµ¤ì¤¿¿ôÃÍ,_ɽ¤¬½Ð¤¿Ëç¿ô,_΢¤¬½Ð¤¿Ëç¿ô), ɽ¼¨¤µ¤»¤ë(_ɽ¤¬½Ð¤¿Ëç¿ô,_΢¤¬½Ð¤¿Ëç¿ô). 'ÆþÎϤµ¤ì¤¿¿ôÃͤÎ'(_ÆþÎϤµ¤ì¤¿¿ôÃÍ) :- À°¿ô¤òÆÀ¤ë(¥³¥¤¥óÅꤲ¤ò¤¹¤ë²ó¿ô,_ÆþÎϤµ¤ì¤¿¿ôÃÍ > 0,_ÆþÎϤµ¤ì¤¿¿ôÃÍ). '¿ôÃͤβó¿ôʬ¤À¤±Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤¡¤É½Î¢¤¬½Ð¤ëËç¿ô¤ò¥«¥¦¥ó¥È¤·¤Æ'(_ÆþÎϤµ¤ì¤¿¿ôÃÍ) :- findall([_ɽ,_΢],( between(1,_ÆþÎϤµ¤ì¤¿¿ôÃÍ,_), 'Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤'(_ɽ,_΢)), LL), ÎóÍ×ÁǤβû»(LL,[_ɽ¤¬½Ð¤¿Ëç¿ô,_΢¤¬½Ð¤¿Ëç¿ô]), 'Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤'(1,0) :- 1 is random(2),!. 'Íð¿ô¤ò»È¤Ã¤Æ¥³¥¤¥óÅꤲ¤ò¹Ô¤¤'(0,1). ÎóÍ×ÁǤβû»(LL,_¹ç·×¤Ê¤é¤Ó) :- žÃÖ(LL,LL2), findall(_¹ç·×,( member(L,LL2), sum(L,_¹ç·×)), _¹ç·×¤Ê¤é¤Ó). ɽ¼¨¤µ¤»¤ë(_ɽ¤¬½Ð¤¿Ëç¿ô,_΢¤¬½Ð¤¿Ëç¿ô) :- writef('ɽ¤¬½Ð¤¿Ëç¿ô = %t, ΢¤¬½Ð¤¿Ëç¿ô = %t\n',[_ɽ¤¬½Ð¤¿Ëç¿ô,_΢¤¬½Ð¤¿Ëç¿ô]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/512 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì´ðÁü½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¤¢¤ëÀ°¿ô a ¤ò¤½¤Î¿ô¼«¿È¤ò½ü¤¯Ìó¿ô¤ò¤¹¤Ù¤ÆÂ­¤·¤¿¤È¤­¤Ë # ¤½¤Î¹ç·×¤ÎÃͤ¬a¤ÈƱ¤¸¤Ë¤Ê¤ë¤È¤­¡¢¤½¤Î¿ô¤òϤδ°Á´¿ô¤È¤¤¤¤¤Þ¤¹¡£ # 512°Ê²¼¤ÎϤδ°Á´¿ô¤ò¸«¤Ä¤±¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ½ÐÎϤϰʲ¼¤Î¤è¤¦¤Ë¤¹¤ë»ö¡£ # 6¡á1¡Ü2¡Ü3 # 28¡á1¡Ü2¡Ü4¡Ü7¡Ü14 # ¡¦ # ¡¦ # ¡¦ # # '¤¢¤ëÀ°¿ô a ¤ò¤½¤Î¿ô¼«¿È¤ò½ü¤¯Ìó¿ô¤ò¤¹¤Ù¤ÆÂ­¤·¤¿¤È¤­¤Ë ¤½¤Î¹ç·×¤ÎÃͤ¬a¤ÈƱ¤¸¤Ë¤Ê¤ë¤È¤­¡¢¤½¤Î¿ô¤òϤδ°Á´¿ô¤È¤¤¤¤¤Þ¤¹ 512°Ê²¼¤ÎϤδ°Á´¿ô¤ò¸«¤Ä¤±¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ ½ÐÎϤϰʲ¼¤Î¤è¤¦¤Ë¤¹¤ë»ö¡£ 6¡á1¡Ü2¡Ü3 28¡á1¡Ü2¡Ü4¡Ü7¡Ü14 ¡¦ ¡¦ ¡¦ ' :- between(1,512,_a), '¤¢¤ëÀ°¿ô a ¤ò¤½¤Î¿ô¼«¿È¤ò½ü¤¯Ìó¿ô¤ò¤¹¤Ù¤ÆÂ­¤·¤¿¤È¤­¤Ë¤½¤Î¹ç·×¤ÎÃͤ¬a¤ÈƱ¤¸¤Ë¤Ê¤ë¤È¤­¡¢¤½¤Î¿ô¤òϤδ°Á´¿ô¤È¤¤¤¤¤Þ¤¹'(_¿ÇÃÇ,_a,_Ìó¿ô¤Ê¤é¤Ó), ´°Á´¿ô¤òɽ¼¨¤¹¤ë(_¿ÇÃÇ,_a,_Ìó¿ô¤Ê¤é¤Ó), _a = 512,!. '¤¢¤ëÀ°¿ô a ¤ò¤½¤Î¿ô¼«¿È¤ò½ü¤¯Ìó¿ô¤ò¤¹¤Ù¤ÆÂ­¤·¤¿¤È¤­¤Ë¤½¤Î¹ç·×¤ÎÃͤ¬a¤ÈƱ¤¸¤Ë¤Ê¤ë¤È¤­¡¢¤½¤Î¿ô¤òϤδ°Á´¿ô¤È¤¤¤¤¤Þ¤¹'(Ϥδ°Á´¿ô,_a,_Ìó¿ô¤Ê¤é¤Ó), _a_1 is _a - 1, findsum(_Ìó¿ô,( between(1,_a_1,_Ìó¿ô), 0 is _a mod _Ìó¿ô), _a),!. '¤¢¤ëÀ°¿ô a ¤ò¤½¤Î¿ô¼«¿È¤ò½ü¤¯Ìó¿ô¤ò¤¹¤Ù¤ÆÂ­¤·¤¿¤È¤­¤Ë¤½¤Î¹ç·×¤ÎÃͤ¬a¤ÈƱ¤¸¤Ë¤Ê¤ë¤È¤­¡¢¤½¤Î¿ô¤òϤδ°Á´¿ô¤È¤¤¤¤¤Þ¤¹'(Ϥδ°Á´¿ô¤Ç¤Ï¤Ê¤¤,_,_). ´°Á´¿ô¤òɽ¼¨¤¹¤ë(Ϥδ°Á´¿ô,_a,_Ìó¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_Ìó¿ô¤Ê¤é¤Ó,' + ',_¼°É½¸½Ê¸»úÎó), writef('%t=%t\n',[_a,_¼°É½¸½Ê¸»úÎó]),!. ´°Á´¿ô¤òɽ¼¨¤¹¤ë(Ϥδ°Á´¿ô¤Ç¤Ï¤Ê¤¤,_,_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/345 # # [1] ¼ø¶Èñ¸µ¡§ # ¡¡¡¡¡¡ ·×»»µ¡³µÏÀ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&amp;¥ê¥ó¥¯)¡§ # ¡¡¡¡¡¡¡¡¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿¼«Á³¿ô¤¬ÁÇ¿ô¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤¡£ # ¡¡¡¡¡¡¡¡¤¿¤À¤·¡¢£°°Ê²¼¤ÎÀ°¿ô(-1¤Ê¤É)¤òÆþÎϤ·¤¿¾ì¹ç¤ÏºÆÆþÎϤòÂ¥¤·¡¢£±¤òÆþÎϤ·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ # '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿¼«Á³¿ô¤¬ÁÇ¿ô¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤¡£ ¤¿¤À¤·¡¢£°°Ê²¼¤ÎÀ°¿ô(-1¤Ê¤É)¤òÆþÎϤ·¤¿¾ì¹ç¤ÏºÆÆþÎϤòÂ¥¤·¡¢£±¤òÆþÎϤ·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿¼«Á³¿ô¤¬(£°°Ê²¼¤ÎÀ°¿ô(-1¤Ê¤É)¤òÆþÎϤ·¤¿¾ì¹ç¤ÏºÆÆþÎϤòÂ¥¤·¡¢£±¤òÆþÎϤ·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È)'(_ÆþÎϤµ¤ì¤¿¼«Á³¿ô), ÁÇ¿ô¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë(_ÆþÎϤµ¤ì¤¿¼«Á³¿ô). '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿¼«Á³¿ô¤¬(£°°Ê²¼¤ÎÀ°¿ô(-1¤Ê¤É)¤òÆþÎϤ·¤¿¾ì¹ç¤ÏºÆÆþÎϤòÂ¥¤·¡¢£±¤òÆþÎϤ·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È)'(_ÆþÎϤµ¤ì¤¿¼«Á³¿ô) :- write('¼«Á³¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(Line), '¿ÇÃÇ :: ¼«Á³¿ôÆþÎÏ'(Line,_ÆþÎϤµ¤ì¤¿¼«Á³¿ô),!. '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿¼«Á³¿ô¤¬(£°°Ê²¼¤ÎÀ°¿ô(-1¤Ê¤É)¤òÆþÎϤ·¤¿¾ì¹ç¤ÏºÆÆþÎϤòÂ¥¤·¡¢£±¤òÆþÎϤ·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È)'(_ÆþÎϤµ¤ì¤¿¼«Á³¿ô) :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤµ¤ì¤¿¼«Á³¿ô¤¬(£°°Ê²¼¤ÎÀ°¿ô(-1¤Ê¤É)¤òÆþÎϤ·¤¿¾ì¹ç¤ÏºÆÆþÎϤòÂ¥¤·¡¢£±¤òÆþÎϤ·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È)'(_ÆþÎϤµ¤ì¤¿¼«Á³¿ô). '¿ÇÃÇ :: ¼«Á³¿ôÆþÎÏ'(Line,_ÆþÎϤµ¤ì¤¿¼«Á³¿ô) :- atom_to_term(Line,_ÆþÎϤµ¤ì¤¿¼«Á³¿ô,_), integer(_ÆþÎϤµ¤ì¤¿¼«Á³¿ô), _ÆþÎϤµ¤ì¤¿¼«Á³¿ô > 0,!. '¿ÇÃÇ :: ¼«Á³¿ôÆþÎÏ'(Line,_) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¼«Á³¿ô¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. ÁÇ¿ô¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë(1) :- write('¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¤Þ¤¹\n'),!. ÁÇ¿ô¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë(X) :- ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤Ë¤è¤ëÁÇ¿ôȽÄê(X), write('ÁÇ¿ô¤Ç¤¹\n'),!. ÁÇ¿ô¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë(_) :- write('ÁÇ¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n'). ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤Ë¤è¤ëÁÇ¿ôȽÄê(X) :- X > 0, Y is X - 1, ³¬¾è(Y,Z), 0 is (Z + 1) mod X. ³¬¾è(_n,X) :- findall(M,between(1,N,M),L), atomic_list_concat(L,*,S), atom_to_term(S,_¼°,_), X is _¼°. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/227 # # [1] ¼ø¶Èñ¸µ¡§¡¡ÇÛÎó¤ÎÀ°Îó # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯):»ú¿ôͤ¨¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¥ê¥ó¥¯Ä¥¤ê¤Þ¤¹¡£ # [ http://ime.nu/codepad.org/YCoV3saL ] # # /* # # 2¼¡¸µÇÛÎó¤ÎÀ°Îó # # ¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£ # # | ³ØÀ¸ÈÖ¹æ | Ìä1¤ÎÅÀ¿ô | Ìä2¤ÎÅÀ¿ô | Ìä3¤ÎÅÀ¿ô | Ìä4¤ÎÅÀ¿ô |Ìä5¤ÎÅÀ¿ô | # # ¤³¤ì¤òÆþÎϤ·¡¢³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë(À°ÎóÁ°) # ¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç·×ÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£ # # ¡Ú¼Â¹ÔÎã¡Û # # À°ÎóÁ° # ÈÖ¹æ Ìä1 ¡¡Ìä2 Ìä3 Ìä4 Ìä5 ¹ç·× # 1001 20 30 49 41 90 230 # 1002 50 30 24 0 95 199 # 1003 20 33 55 35 90 233 # 1004 93 55 56 61 90 355 # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # 1025 80 90 52 50 91 363 # ¹ç·× 1145 1015 1297 978 2292 # # À°Îó¸å # ÈÖ¹æ Ìä5 ¡¡Ìä3 Ìä1 Ìä2 Ìä4 ¹ç·× # 1025 91 52 80 90 50 363 # 1004 90 56 93 55 61 355 # 1003 90 50 94 50 49 233 # 1004 100 49 70 30 62 311 # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # 1015 90 53 20 20 0 183 # ¹ç·× 2292 1297 1145 1015 978 # # ¢¨¼Â¹ÔÎ㤬Ť¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤ÇÅÓÃæ¾Êά¤·¤Æ¤¤¤Þ¤¹¡£ # # */ '¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£ | ³ØÀ¸ÈÖ¹æ | Ìä1¤ÎÅÀ¿ô | Ìä2¤ÎÅÀ¿ô | Ìä3¤ÎÅÀ¿ô | Ìä4¤ÎÅÀ¿ô |Ìä5¤ÎÅÀ¿ô | ¤³¤ì¤òÆþÎϤ·¡¢³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë(À°ÎóÁ°) ¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£' :- '¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤òÆþÎϤ·¡¢'(LL1), '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë'(LL1,LL2), '¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£'(LL2). '¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤òÆþÎϤ·¡¢'(LL1) :- get_split_lines('seiseki.dat',[' '],LL1). '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë'(LL1,LL2) :- '¹ÔÎó¤òÎó¤Î¹ç·×¤Ç¹ß½ç¤ËÀ°Îó¤·¤ÆÎó°ÌÃÖ¤ò¸ò´¹¤·(LL1,LL2), Ì䤤¤´¤È¤Î¹ç·×¤òɽ¼¨¤¹¤ë(LL2). Îó¤Î¹ç·×¤Ç¹ß½ç¤ËÀ°Îó¤·¤ÆÎó°ÌÃÖ¤ò¸ò´¹¤·(LL,LL1) :- žÃÖ(LL,_žÃÖ¤µ¤ì¤¿LL), findall([_¹ç·×,_nth1|L],( nth1(_nth1,_žÃÖ¤µ¤ì¤¿LL,L), sum(L,_¹ç·×)), _žÃÖ¤µ¤ì¹ç·×¤òÉղ䵤줿LL), ¹ß½ç¥Ð¥Ö¥ë¥½¡¼¥È(_žÃÖ¤µ¤ì¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL,_¹ß½ç¤ËÀ°Î󤵤줿žÃÖ¤µ¤ì¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL), žÃÖ(_¹ß½ç¤ËÀ°Î󤵤줿žÃÖ¤µ¤ì¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL,LL1). Ì䤤¤´¤È¤Î¹ç·×¤òɽ¼¨¤¹¤ë(LL2) :- between(1,6,_nth), nth0(_nth,LL2,[_¹ç·×|_]), atomic_list_concat([Ìä,_nth,' = ',_¹ç·×],S), writef(' %t,',[S]), _nth = 6, write('\n'). '¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£'(LL1) :- Îó¤Î¹ç·×¤Ç¹ß½ç¤ËÀ°Îó¤·¤ÆÎó°ÌÃÖ¤ò¸ò´¹¤·(LL1,LL2), ¹Ô¹ç·×¤Ç¹ß½ç¤ËÀ°Î󤹤ë(LL2,_¹ß½ç¤ËÀ°Î󤵤줿³Æ¹Ô¤ÎÀèÆ¬Îó¤Ë¹ç·×¤¬Éղäµ¤ì³ÆÎó¤ÎÀèÆ¬¹Ô¤«¤é¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL), ɽ¼¨¤¹¤ë(_¹ß½ç¤ËÀ°Î󤵤줿³Æ¹Ô¤ÎÀèÆ¬Îó¤Ë¹ç·×¤¬Éղäµ¤ì³ÆÎó¤ÎÀèÆ¬¹Ô¤«¤é¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL). ¹Ô¹ç·×¤Ç¹ß½ç¤ËÀ°Î󤹤ë(LL1,_¹ß½ç¤ËÀ°Î󤵤줿³Æ¹Ô¤ÎÀèÆ¬Îó¤Ë¹ç·×¤¬Éղäµ¤ì³ÆÎó¤ÎÀèÆ¬¹Ô¤«¤é¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL) :- findall([_¹ç·×|L2],( member(L,LL1), Í×ÁǤιç·×¤òºÇ½ªÍ×ÁǤËÉÕ²Ã(L,_¹ç·×,L2)), LL2), ¹ß½ç¥Ð¥Ö¥ë¥½¡¼¥È(LL2,_¹ß½ç¤ËÀ°Î󤵤줿³Æ¹Ô¤ÎÀèÆ¬Îó¤Ë¹ç·×¤¬Éղäµ¤ì³ÆÎó¤ÎÀèÆ¬¹Ô¤«¤é¹ç·×¤ÈÎó°ÌÃÖ¤¬Éղ䵤줿LL). Í×ÁǤιç·×¤òºÇ½ªÍ×ÁǤËÉÕ²Ã(L1,_¹ç·×,L2) :- Í×ÁǤιç·×¤òºÇ½ªÍ×ÁǤËÉÕ²Ã(L1,0,_¹ç·×,L2). Í×ÁǤιç·×¤òºÇ½ªÍ×ÁǤËÉÕ²Ã([],_¹ç·×,_¹ç·×,[_¹ç·×]). Í×ÁǤιç·×¤òºÇ½ªÍ×ÁǤËÉÕ²Ã([N|R1],_¹ç·×_1,_¹ç·×,[N|R2]) :- _¹ç·×_2 is _¹ç·× + N, Í×ÁǤιç·×¤òºÇ½ªÍ×ÁǤËÉÕ²Ã(R1,_¹ç·×_2,_¹ç·×,R2). ɽ¼¨¤¹¤ë(LL2) :- ºÇ½ª¸«½Ð¤·¤òÆÀ¤ë(LL2,_¸«½Ð¤·), writef('%t\n',[_¸«½Ð¤·]), ¹ÔÎóÉôʬ¤Îɽ¼¨(LL2), ºÇ½ª¹ç·×¤Îɽ¼¨(LL2). ¹ÔÎóÉôʬ¤Îɽ¼¨(LL) :- append(_,[[_|L]|R],LL), writef('%5l%5r%5r%5r%5r%5r%5r\n',L), R = []. ºÇ½ª¹ç·×¤Îɽ¼¨([_ºÇ½ª¹ç·×¤Ê¤é¤Ó|_]) :- writef(' %5r%5r%5r%5r%5r%5r\n',_ºÇ½ª¹ç·×¤Ê¤é¤Ó). ¹ç·×ÅÀ¤Îɽ¼¨(_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó) :- findall(_¹ç·×ÅÀ,( member([_¹ç·×ÅÀ,_],_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó)), _¹ç·×ÅÀ¤Ê¤é¤Ó), writef(' %5r%5r%5r%5r%5r%5r\n',_¹ç·×ÅÀ¤Ê¤é¤Ó). ºÇ½ª¸«½Ð¤·¤òÆÀ¤ë([_,L|_],_ºÇ½ª¸«½Ð¤·) :- findall(S,( member(N,L), atomic_list_concat(['Ìä',_nth1,' '],S)), L), atomic_list_concat(['ÈÖ¹æ '|L],_ºÇ½ª¸«½Ð¤·). ¹ß½ç¥Ð¥Ö¥ë¥½¡¼¥È(L1,L2) :- append(L0,[A,B|R],L1), A @< B, append(L0,[B,A|R],L3), ¹ß½ç¥Ð¥Ö¥ë¥½¡¼¥È(L3,L2),!. ¹ß½ç¥Ð¥Ö¥ë¥½¡¼¥È(L,L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/227 # # [1] ¼ø¶Èñ¸µ¡§¡¡ÇÛÎó¤ÎÀ°Îó # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯):»ú¿ôͤ¨¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¥ê¥ó¥¯Ä¥¤ê¤Þ¤¹¡£ # [ http://ime.nu/codepad.org/YCoV3saL ] # # /* # # 2¼¡¸µÇÛÎó¤ÎÀ°Îó # # ¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£ # # | ³ØÀ¸ÈÖ¹æ | Ìä1¤ÎÅÀ¿ô | Ìä2¤ÎÅÀ¿ô | Ìä3¤ÎÅÀ¿ô | Ìä4¤ÎÅÀ¿ô |Ìä5¤ÎÅÀ¿ô | # # ¤³¤ì¤òÆþÎϤ·¡¢³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë(À°ÎóÁ°) # ¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç·×ÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£ # # ¡Ú¼Â¹ÔÎã¡Û # # À°ÎóÁ° # ÈÖ¹æ Ìä1 ¡¡Ìä2 Ìä3 Ìä4 Ìä5 ¹ç·× # 1001 20 30 49 41 90 230 # 1002 50 30 24 0 95 199 # 1003 20 33 55 35 90 233 # 1004 93 55 56 61 90 355 # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # 1025 80 90 52 50 91 363 # ¹ç·× 1145 1015 1297 978 2292 # # À°Îó¸å # ÈÖ¹æ Ìä5 ¡¡Ìä3 Ìä1 Ìä2 Ìä4 ¹ç·× # 1025 91 52 80 90 50 363 # 1004 90 56 93 55 61 355 # 1003 90 50 94 50 49 233 # 1004 100 49 70 30 62 311 # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # ¡¡¡¦¡¡¡¡¡¡ ¡¦¡¡ ¡¦¡¡ ¡¦¡¡¡¡ ¡¦¡¡ ¡¡ ¡¦¡¡¡¡ ¡¦ # 1015 90 53 20 20 0 183 # ¹ç·× 2292 1297 1145 1015 978 # # ¢¨¼Â¹ÔÎ㤬Ť¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤ÇÅÓÃæ¾Êά¤·¤Æ¤¤¤Þ¤¹¡£ # # */ '¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£ | ³ØÀ¸ÈÖ¹æ | Ìä1¤ÎÅÀ¿ô | Ìä2¤ÎÅÀ¿ô | Ìä3¤ÎÅÀ¿ô | Ìä4¤ÎÅÀ¿ô |Ìä5¤ÎÅÀ¿ô | ¤³¤ì¤òÆþÎϤ·¡¢³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë(À°ÎóÁ°) ¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£' :- '¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤òÆþÎϤ·¡¢'(LL1), '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë(À°ÎóÁ°)'(LL1,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó), '¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£'(_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó). '¥Õ¥¡¥¤¥ë"seiseki.dat"[ http://db.tt/GRBKqdNF ]¤Ë¤Ï¡¢¥Æ¥¹¥È¤Î³ÆÌä¤ÎÅÀ¿ô¤¬°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤òÆþÎϤ·¡¢'(LL1) :- get_split_lines('seiseki.dat',[' '],LL1). '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤ÆÉ½¼¨¤¹¤ë(À°ÎóÁ°)'(LL1,LL4,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó) :- '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢'(LL1,_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó), 'Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤Æ'(_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó), ɽ¼¨¤¹¤ë(_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó). '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢'([],[]). '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢'([[_³ØÀ¸ÈÖ¹æ|L1]|R1],[[_³ØÀ¸ÈÖ¹æ|L2]|R2]) :- sum(L1,_sum), ³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ(L1,0,L2), '³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ¤È¡¢'(R1,R2). ³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ([],_¹ç·×ÅÀ,[_¹ç·×ÅÀ]). ³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ([A|R1],_¹ç·×ÅÀ_1,[A|R2]) :- _¹ç·×ÅÀ2 is A + _¹ç·×ÅÀ_1, ³ØÀ¸¤´¤È¤Î¹ç³ÊÅÀ(R1,R2). Ì䤴¤È¹ç·×ÅÀ¤òµá¤á¤Æ(_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó) :- žÃÖ(_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó), Ì䤴¤È¹ç·×ÅÀ(_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó). Ì䤴¤È¹ç·×ÅÀ([],[]). Ì䤴¤È¹ç·×ÅÀ([L1|R1],[S|R2]) :- sum(L1,S), Ì䤴¤È¹ç·×ÅÀ(R1,R2). ɽ¼¨¤¹¤ë(_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó) :- write('ÈÖ¹æ Ìä1 ¡¡Ìä2 Ìä3 Ìä4 Ìä5 ¹ç·×\n'), append(_,[L|R],_³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó), writef('%5l%5r%5r%5r%5r%5r%5r\n',L), R = [], writef(' %5r%5r%5r%5r%5r%5r\n',_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó). '¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤ÆÉ½¼¨¤¹¤ë(À°Îó¸å)¡£'(_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó) :- '¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢'(_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,LL_1), '¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤Æ'(LL_1,LL_2), ɽ¼¨¤¹¤ë_2(_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,LL_2). '¼¡¤Ë¡¢Ìä¤Î¹ç·×ÅÀ¤Î¹ß½ç¤Ëº¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤ÆÀ°Îó¤·¡¢'(_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó) :- ½ç°Ì¤Å¤±¤¹¤ë(_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_½ç°Ì¤Å¤±¤µ¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó), findall(L,( between(1,5,N), nth1(N,_½ç°Ì¤Å¤±¤µ¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó,[_,_¹àÌÜÈÖ¹æ]), nth1(_¹àÌÜÈÖ¹æ,_žÃÖ¤µ¤ì¤¿³ØÀ¸¤Î¹ç³ÊÅÀÉÕ¤­ÅÀ¿ô¹ÔÎó,L)), LL_1), žÃÖ([_³ØÀ¸ÈÖ¹æ¤Ê¤é¤Ó|LL_1],LL_2). '¤µ¤é¤Ë¡¢³ØÀ¸¤Î¹ç³ÊÅÀ¤Ç¾È½à¤ËÀ°Îó¤·¤Æ'(LL1,LL2) :- findall([A|L],( member(L,LL1), last(L,A)), LL3), À°Îó(LL3,LL4), ¸°¤òÀÚ¤êÎ¥¤·¤ÆµÕ½ç¤Ë¤Ê¤é¤ÓÂØ¤¨(LL4,[],LL2). ¸°¤òÀÚ¤êÎ¥¤·¤ÆµÕ½ç¤Ë¤Ê¤é¤ÓÂØ¤¨([],LL,LL). ¸°¤òÀÚ¤êÎ¥¤·¤ÆµÕ½ç¤Ë¤Ê¤é¤ÓÂØ¤¨([[A|L]|R1],L_1,LL) :- ¸°¤òÀÚ¤êÎ¥¤·¤ÆµÕ½ç¤Ë¤Ê¤é¤ÓÂØ¤¨(R1,[L|L_1],LL). ½ç°Ì¤Å¤±¤¹¤ë(_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_½ç°Ì¤Å¤±¤µ¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó) :- findall([_¹ç·×ÅÀ,_nth1],( between(1,5,_nth1), nth1(_nth1,_Ì䤤¤´¤È¤Î¹ç·×ÅÀ¤Ê¤é¤Ó,_¹ç·×ÅÀ)), LL1), ¹ß½çÀ°Îó(LL1,_½ç°Ì¤Å¤±¤µ¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó). ¹ß½çÀ°Îó(LL1,_½ç°Ì¤Å¤±¤µ¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó) :- À°Îó(LL1,LL2), reverse(LL2,_½ç°Ì¤Å¤±¤µ¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó). ɽ¼¨¤¹¤ë_2(LL_2,_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó) :- ¸«½Ð¤·É½¼¨(_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó), ¹ÔÎóÉôʬ¤Îɽ¼¨(LL_2), ¹ç·×ÅÀ¤Îɽ¼¨(_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó). ¸«½Ð¤·É½¼¨(_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó) :- findall(_¹àÌÜÈÖ¹æ,( member([_,_¹àÌÜÈÖ¹æ],_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó)), _¹àÌÜÈÖ¹æ¤Ê¤é¤Ó), writef('ÈÖ¹æ %5r%5r%5r%5r%5r%5r¹ç·×\n',_¹àÌÜÈÖ¹æ¤Ê¤é¤Ó). ¹ÔÎóÉôʬ¤Îɽ¼¨(LL) :- append(_,[L|R],LL), writef('%5l%5r%5r%5r%5r%5r%5r\n',L), R = []. ¹ç·×ÅÀ¤Îɽ¼¨(_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó) :- findall(_¹ç·×ÅÀ,( member([_¹ç·×ÅÀ,_],_½ç°Ì¤Å¤±¤é¤ì¤¿¹ç·×ÅÀ¤Ê¤é¤Ó)), _¹ç·×ÅÀ¤Ê¤é¤Ó), writef(' %5r%5r%5r%5r%5r%5r\n',_¹ç·×ÅÀ¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï yes. # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/158 # # [1] ¼ø¶Èñ¸µ: ¥×¥í¥°¥é¥ß¥ó¥° ¡Á¹½Â¤ÂΡÁ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯): 3̾¤Î̾Á°¤ÈÀ­ÊÌ¡¢10·å¤Î²ñ°÷ÈÖ¹æ¤òÆþÎϤ·É½¼¨¤»¤è # *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢2,6·åÌܤθå¤ËŽ¢-Ž£¤ò½ÐÎϤÇɽ¼¨¤»¤è # ÆþÎÏ(1234567890)¢ª½ÐÎÏ(12-3456-7890) # *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ # ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È # '3̾¤Î̾Á°¤ÈÀ­ÊÌ¡¢10·å¤Î²ñ°÷ÈÖ¹æ¤òÆþÎϤ·É½¼¨¤»¤è *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢2,6·åÌܤθå¤ËŽ¢-Ž£¤ò½ÐÎϤÇɽ¼¨¤»¤è ÆþÎÏ(1234567890)¢ª½ÐÎÏ(12-3456-7890) *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È' :- '3̾¤Î̾Á°¤ÈÀ­ÊÌ¡¢10·å¤Î²ñ°÷ÈÖ¹æ¤òÆþÎϤ· *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢ *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(_3̾¤Î̾Á°¤ÈÀ­Ê̤Ȳñ°÷ÈÖ¹æ), 'ɽ¼¨¤»¤è *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢2,6·åÌܤθå¤ËŽ¢-Ž£¤ò½ÐÎϤÇɽ¼¨¤»¤è ÆþÎÏ(1234567890)¢ª½ÐÎÏ(12-3456-7890)'(_3̾¤Î̾Á°¤ÈÀ­Ê̤Ȳñ°÷ÈÖ¹æ). '3̾¤Î̾Á°¤ÈÀ­ÊÌ¡¢10·å¤Î²ñ°÷ÈÖ¹æ¤òÆþÎϤ· *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢ *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(_3̾¤Î̾Á°¤ÈÀ­Ê̤Ȳñ°÷ÈÖ¹æ) :- findall([_̾Á°,_À­ÊÌ,_²ñ°÷ÈÖ¹æ],( between(1,3,_), ̾Á°¤òÆÀ¤ë(_̾Á°), À­Ê̤òÆÀ¤ë(_À­ÊÌ), '²ñ°÷ÈÖ¹æ¤òÆÀ¤ë *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢ *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(_²ñ°÷ÈÖ¹æ)), _3̾¤Î̾Á°¤ÈÀ­Ê̤Ȳñ°÷ÈÖ¹æ). ̾Á°¤òÆÀ¤ë(_̾Á°) :- write('̾Á°¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_̾Á°). À­Ê̤òÆÀ¤ë(_À­ÊÌ) :- À°¿ô¤òÆÀ¤ë('À­Ê̤òÈÖ¹æ¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ 1..ÃË 2..½÷\n',between(1,2,_À­ÊÌÈÖ¹æ),_À­ÊÌÈÖ¹æ), À­ÊÌÈֹ椫¤éÀ­Ê̤òÆÀ¤ë(_À­ÊÌÈÖ¹æ,_À­ÊÌ). À­ÊÌÈֹ椫¤éÀ­Ê̤òÆÀ¤ë(1,ÃË). À­ÊÌÈֹ椫¤éÀ­Ê̤òÆÀ¤ë(2,½÷). '²ñ°÷ÈÖ¹æ¤òÆÀ¤ë *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢ *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(_²ñ°÷ÈÖ¹æ) :- write('²ñ°÷ÈÖ¹æ(¿ô»ú10·å)¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(Line), '¿ÇÃÇ:: ²ñ°÷ÈÖ¹æ¤òÆÀ¤ë'(Line,_²ñ°÷ÈÖ¹æ),!. '²ñ°÷ÈÖ¹æ¤òÆÀ¤ë *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢ *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(_²ñ°÷ÈÖ¹æ) :- '²ñ°÷ÈÖ¹æ¤òÆÀ¤ë *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢ *ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(_²ñ°÷ÈÖ¹æ). '¿ÇÃÇ:: ²ñ°÷ÈÖ¹æ¤òÆÀ¤ë'(Line,_²ñ°÷ÈÖ¹æ) :- atom_chars(Line,Chars), ²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·(Chars), 'ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(Chars),!. '¿ÇÃÇ:: ²ñ°÷ÈÖ¹æ¤òÆÀ¤ë'(Line,_²ñ°÷ÈÖ¹æ) :- write('ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n'), fail. ²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·(Chars) :- forall((member(A,Chars), member(A,['0','1','2','3','4','5','6','7','8','9'])),true),!. ²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·(Chars) :- writef('ÆþÎϤµ¤ì¤¿Ê¸»úÎó %t ¤Ë¤Ï¿ô»ú°Ê³°¤Îʸ»ú¤¬º®Æþ¤·¤Æ¤¤¤Þ¤¹\n',[Chars]), fail. 'ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(Chars) :- length(Chars,10),!. 'ÆþÎϤµ¤ì¤¿²ñ°÷Èֹ椬10·å¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¢ ¤Þ¤¿¤ÏÂ礭¤¤¾ì¹ç¤ÏºÆÅÙÆþÎϤ¹¤ë»Ø¼¨¤òÆþ¤ì¤ë¤³¤È'(Chars) :- writef('ÆþÎϤµ¤ì¤¿Ê¸»úÎó %t ¤Ï10·å¤Ç¤¢¤ê¤Þ¤»¤ó\n',[Chars]), fail. 'ɽ¼¨¤»¤è *²ñ°÷ÈÖ¹æ¤Ï¿ô»ú¤Î¤ß¤ÇÆþÎϤ·¡¢2,6·åÌܤθå¤ËŽ¢-Ž£¤ò½ÐÎϤÇɽ¼¨¤»¤è ÆþÎÏ(1234567890)¢ª½ÐÎÏ(12-3456-7890)'(_3̾¤Î̾Á°¤ÈÀ­Ê̤Ȳñ°÷ÈÖ¹æ) :- append(_,[[_̾Á°,_À­ÊÌ,_²ñ°÷ÈÖ¹æ]|R],_3̾¤Î̾Á°¤ÈÀ­Ê̤Ȳñ°÷ÈÖ¹æ), number_chars(_²ñ°÷ÈÖ¹æ,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10]), atomic_list_concat([[_1,_2,-,_3,_4,_5,_6,-,_7,_8,_9,_10],_²ñ°÷ɽ¼¨Ê¸»úÎó), writef('̾Á°: %t\nÀ­ÊÌ: %t\n²ñ°÷ÈÖ¹æ: %t\n\n',[_²ñ°÷ÈÖ¹æÉ½¼¨Ê¸»úÎó]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/79 # # [1] ¼ø¶Èñ¸µ¡§ ¥·¥¹¥Æ¥à³«È¯ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&amp;¥ê¥ó¥¯)¡§ # °Ê²¼¤Î¥Ò¥ó¥È¤ò¸µ¤Ë¡¢À¸Å̤ÎÀ®ÀÓ¤ò´ÉÍý¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤ # http://ime.nu/codepad.org/vevYc04f # http://ime.nu/codepad.org/rCOCOccX # # /* seiseki.c À®ÀÓ½èÍý¥·¥¹¥Æ¥à */ # #include /* ɸ½àÆþ½ÐÎÏ */ # #include /* ɸ½à¥é¥¤¥Ö¥é¥ê¡¼ */ # #include /* ¿ô³ØÅª´Ø¿ô */ # #include /* ʸ»úÎó´Ø¿ô */ # #define SEN "--------------------\n" /* ¥Þ¥¯¥íÄêµÁ */ # #define KEISEN "=====================\n" # # /* ¥µ¥Ö¥ë¡¼¥Á¥ó¤ÎÀë¸À */ # void data_write(void); /* ¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß */ # void data_read(void); /* ¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß */ # void data_disp(void); /* À®ÀÓ°ìÍ÷ɽ¤Îɽ¼¨ */ # void data_kensk(void); /* ¸¡º÷½èÍý */ # void the_end(void); /* ¥×¥í¥°¥é¥à¤Î½ªÎ»½èÍý */ # # /* ÊÑ¿ô, ¹½Â¤ÂΤÎÀë¸À */ # struct seiseki{ # char simei[20]; /* »á̾ */ # int bango, kokugo, eigo, suugaku; /* ÈÖ¹æ, ¹ñ¸ì, ±Ñ¸ì, ¿ô³Ø */ # }; # struct seiseki a[100]; /* ÅÐÏ¿¿ô¤Ï100̾¤Þ¤Ç */ # int n, i, goukei; /* ÊÑ¿ô¤ÎÄêµÁ */ # double heikin, std; # # main() # { # int k; /* switch-caseÍѤνèÍýÈÖ¹æ */ # do{ /* ·«¤êÊÖ¤·½èÍýdo-while */ # /* ½é´ü¥á¥Ë¥å¡¼²èÌÌ */ # printf("\n"); # printf("¡ù¡ù¡¡À®ÀÓ½èÍý¥á¥Ë¥å¡¼¡¡¡ù¡ù\n"); # printf(SEN); # printf("¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú1¡Û\n"); # printf("¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú2¡Û\n"); # printf("À®ÀÓ°ìÍ÷ɽ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú3¡Û\n"); # printf("¸¡º÷½èÍý¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú4¡Û\n"); # printf("½ª¤ï¤ê¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú9¡Û\n"); # printf(SEN); # printf("½èÍýÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§"); # scanf("%d",&k); # printf("\n"); # # /* ´Ø¿ô¤Î¸Æ¤Ó½Ð¤· */ # switch(k){ # case 1:data_write();break; # case 2:data_read();break; # case 3:data_disp();break; # case 4:data_kensk();break; # case 9:the_end();break; # default:printf("³ºÅöÈÖ¹æ¤Ê¤·\n");break; # } # }while(k < 10); # } # # /* À®ÀÓ°ìÍ÷ɽ¤ÎºîÀ® */ # void data_disp(void) # { # int goukei_k=0, goukei_e=0, goukei_s=0; # double heikin_k=0.0, heikin_e=0.0, heikin_s=0.0; # double std_k=0.0, std_e=0.0, std_s=0.0; # # printf("¡ù¡ù¡ù¡¡À®ÀÓ°ìÍ÷ɽ¡¡¡ù¡ù¡ù\n"); # printf(KEISEN); # printf("Èֹ桡̾Á°¡¡¹ñ¸ì¡¡±Ñ¸ì¡¡¿ô³Ø¡¡¹ç·×¡¡Ê¿¶Ñ\n"); # for(i=0;i < n;i++){ # printf("%5d %-10s %5d %5d %5d", a[i].bango, a[i].simei, a[i].kokugo, a[i].eigo, a[i].suugaku); # /* 3²ÊÌܤιç·×·×»» */ # goukei=(a[i].kokugo +a[i].eigo +a[i].suugaku); # printf("%5d",goukei); # /* ¥­¥ã¥¹¥È¡§3²ÊÌܤÎÊ¿¶Ñ·×»» */ # heikin=(double)goukei/3; # printf("%6.1f\n",heikin); # } # printf("\n"); # # /* ³Æ²ÊÌܤιç·×·×»» */ # for(i=0;i < n;i++){ # goukei_k+=a[i].kokugo; # goukei_e+=a[i].eigo; # goukei_s+=a[i].suugaku; # } # # /* ³Æ²ÊÌܤÎÊ¿¶Ñ·×»» */ # heikin_k=(double)goukei_k/n; # heikin_e=(double)goukei_e/n; # heikin_s=(double)goukei_s/n; # # /* Êк¹¤ÎÆó¾èϤη׻» */ # for(i=0;i < n;i++){ # std_k+=pow((a[i].kokugo-heikin_k),2); # std_e+=pow((a[i].eigo-heikin_e),2); # std_s+=pow((a[i].suugaku-heikin_s),2); # } # # /* ɸ½àÊк¹¤Î·×»» */ # std_k=sqrt(std_k/n); # std_e=sqrt(std_e/n); # std_s=sqrt(std_s/n); '·«¤êÊÖ¤·½èÍýdo-while'(P) :- 'do{ /* ·«¤êÊÖ¤·½èÍýdo-while */ }while(k < 10);'(P). ½é´ü¥á¥Ë¥å¡¼²èÌÌ(_k) :- '/* ½é´ü¥á¥Ë¥å¡¼²èÌÌ */ printf("\n"); printf("¡ù¡ù¡¡À®ÀÓ½èÍý¥á¥Ë¥å¡¼¡¡¡ù¡ù\n"); printf(SEN); printf("¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú1¡Û\n"); printf("¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú2¡Û\n"); printf("À®ÀÓ°ìÍ÷ɽ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú3¡Û\n"); printf("¸¡º÷½èÍý¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú4¡Û\n"); printf("½ª¤ï¤ê¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú9¡Û\n"); printf(SEN); printf("½èÍýÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§"); scanf("%d",&k); printf("\n");'(_k). ´Ø¿ô¤Î¸Æ¤Ó½Ð¤·(_k) :- '/* ´Ø¿ô¤Î¸Æ¤Ó½Ð¤· */ switch(k){ case 1:data_write();break; case 2:data_read();break; case 3:data_disp();break; case 4:data_kensk();break; case 9:the_end();break; default:printf("³ºÅöÈÖ¹æ¤Ê¤·\n");break; }'(_k). '3²ÊÌܤιç·×·×»»'(_i,_a,_goukei) :- '/* 3²ÊÌܤιç·×·×»» */ goukei=(a[i].kokugo +a[i].eigo +a[i].suugaku); printf("%5d",goukei);'(_i,_a,_goukei). '¥­¥ã¥¹¥È¡§3²ÊÌܤÎÊ¿¶Ñ·×»»'(_goukei,_heikin) :- '/* ¥­¥ã¥¹¥È¡§3²ÊÌܤÎÊ¿¶Ñ·×»» */ heikin=(double)goukei/3; printf("%6.1f\n",heikin);'(_goukei,_heikin). ³Æ²ÊÌܤιç·×·×»»(_n,_a,_goukie_k_1,_goukei_e_1,_goukei_s_1,_goukie_k,_goukei_e,_goukei_s) :- '/* ³Æ²ÊÌܤιç·×·×»» */ for(i=0;i < n;i++){ goukei_k+=a[i].kokugo; goukei_e+=a[i].eigo; goukei_s+=a[i].suugaku; }'(_n,_a,_goukie_k_1,_goukei_e_1,_goukei_s_1,_goukie_k,_goukei_e,_goukei_s). ³Æ²ÊÌܤÎÊ¿¶Ñ·×»»((_n,_goukei_k,_gouke_e,_goukei_s,_heikin_k_1,_heikin_e_1,_heikin_s_1,_heikin_k,_heikin_e,_heikin_s) :- '/* ³Æ²ÊÌܤÎÊ¿¶Ñ·×»» */ heikin_k=(double)goukei_k/n; heikin_e=(double)goukei_e/n; heikin_s=(double)goukei_s/n;'(_n,_goukei_k,_gouke_e,_goukei_s,_heikin_k_1,_heikin_e_1,_heikin_s_1,_heikin_k,_heikin_e,_heikin_s). Êк¹¤ÎÆó¾èϤη׻»(_n,_a,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s) :- '/* Êк¹¤ÎÆó¾èϤη׻» */ for(i=0;i < n;i++){ std_k+=pow((a[i].kokugo-heikin_k),2); std_e+=pow((a[i].eigo-heikin_e),2); std_s+=pow((a[i].suugaku-heikin_s),2); }'(_n,_a,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s). ɸ½àÊк¹¤Î·×»»(_n,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s) :- '/* ɸ½àÊк¹¤Î·×»» */ std_k=sqrt(std_k/n); std_e=sqrt(std_e/n); std_s=sqrt(std_s/n);'(_n,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'do{ /* ·«¤êÊÖ¤·½èÍýdo-while */ }while(k < 10);'(P) :- between(1,10,N), call(P), N = 10. '/* ½é´ü¥á¥Ë¥å¡¼²èÌÌ */ printf("\n"); printf("¡ù¡ù¡¡À®ÀÓ½èÍý¥á¥Ë¥å¡¼¡¡¡ù¡ù\n"); printf(SEN); printf("¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú1¡Û\n"); printf("¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú2¡Û\n"); printf("À®ÀÓ°ìÍ÷ɽ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú3¡Û\n"); printf("¸¡º÷½èÍý¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú4¡Û\n"); printf("½ª¤ï¤ê¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú9¡Û\n"); printf(SEN); printf("½èÍýÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§"); scanf("%d",&k); printf("\n");'(_k) :- write('\n'), writef('¡ù¡ù¡¡À®ÀÓ½èÍý¥á¥Ë¥å¡¼¡¡¡ù¡ù\n'), write('%t',['--------------------\n']), write('¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú1¡Û\n'), write('¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú2¡Û\n'), write('À®ÀÓ°ìÍ÷ɽ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú3¡Û\n'), write('¸¡º÷½èÍý¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú4¡Û\n'), write('½ª¤ï¤ê¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡Ú9¡Û\n'), write('--------------------\n'), write('½èÍýÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§'), À°¿ô¤òÆÀ¤ë(_k), write('\n'). '/* ´Ø¿ô¤Î¸Æ¤Ó½Ð¤· */ switch(k){ case 1:data_write();break; case 2:data_read();break; case 3:data_disp();break; case 4:data_kensk();break; case 9:the_end();break; default:printf("³ºÅöÈÖ¹æ¤Ê¤·\n");break; }'(_k) :- '_k¤ÎÃͤˤè¤Ã¤Æ½Ò¸ì¤ò¸Æ¤Ó½Ð¤¹'(_k). '_k¤ÎÃͤˤè¤Ã¤Æ½Ò¸ì¤ò¸Æ¤Ó½Ð¤¹'(1) :- data_write. '_k¤ÎÃͤˤè¤Ã¤Æ½Ò¸ì¤ò¸Æ¤Ó½Ð¤¹'(2) :- data_read. '_k¤ÎÃͤˤè¤Ã¤Æ½Ò¸ì¤ò¸Æ¤Ó½Ð¤¹'(3) :- data_disp. '_k¤ÎÃͤˤè¤Ã¤Æ½Ò¸ì¤ò¸Æ¤Ó½Ð¤¹'(4) :- data_kensk. '_k¤ÎÃͤˤè¤Ã¤Æ½Ò¸ì¤ò¸Æ¤Ó½Ð¤¹'(9) :- the_end. '/* 3²ÊÌܤιç·×·×»» */ goukei=(a[i].kokugo +a[i].eigo +a[i].suugaku); printf("%5d",goukei);'(_i,_a,_goukei) :- nth0(_i,_a,[_kokugo,_eigo,_suugaku]), _goukei is _kokugo + _eigo + _suugaku, writef('%t',[_goukei]). '/* ¥­¥ã¥¹¥È¡§3²ÊÌܤÎÊ¿¶Ñ·×»» */ heikin=(double)goukei/3; printf("%6.1f\n",heikin);'(_goukei,_heikin) :- _heikin is _goukei / 3, format('~1f\n',[_heikin]). '/* ³Æ²ÊÌܤιç·×·×»» */ for(i=0;i < n;i++){ goukei_k+=a[i].kokugo; goukei_e+=a[i].eigo; goukei_s+=a[i].suugaku; }'(_n,_a,_goukie_k_1,_goukei_e_1,_goukei_s_1,_goukie_k,_goukei_e,_goukei_s) :- ³Æ²ÊÌܤιç·×·×»»(0,_n,_a,_goukie_k_1,_goukei_e_1,_goukei_s_1,_goukie_k,_goukei_e,_goukei_s). ³Æ²ÊÌܤιç·×·×»»(_n_1,_n,_a,_goukie_k_1,_goukei_e_1,_goukei_s_1,_goukie_k,_goukei_e,_goukei_s) :- _n_1 < _n, nth1(_nth1,_a,[_kokugo,_eigo,_suugaku]), _goukei_k_2 is _goukei_k_1 + _kokugo, _goukei_e_2 is _goukei_e_1 + _eigo, _goukei_s_2 is _goukei_s_1 + _suugaku, _n_2 is _n_1 + 1, ³Æ²ÊÌܤιç·×·×»»(_n_2,_n,_a,_goukie_k_2,_goukei_e_2,_goukei_s_2,_goukie_k,_goukei_e,_goukei_s). ³Æ²ÊÌܤιç·×·×»»(_n_1,_n,_a,_goukie_k,_goukei_e,_goukei_s,_goukie_k,_goukei_e,_goukei_s) :- _n_1 >= _n. '/* ³Æ²ÊÌܤÎÊ¿¶Ñ·×»» */ heikin_k=(double)goukei_k/n; heikin_e=(double)goukei_e/n; heikin_s=(double)goukei_s/n;'(_n,_goukei_k,_gouke_e,_goukei_s,_heikin_k_1,_heikin_e_1,_heikin_s_1,_heikin_k,_heikin_e,_heikin_s) :- _heikin_k is _heikin_k_1 + _goukei_k / _n, _heikin_e is _heikin_e_1 + _goukei_e / _n, _heikin_s is _heikin_s_1 + _goukei_s / _n. '/* Êк¹¤ÎÆó¾èϤη׻» */ for(i=0;i < n;i++){ std_k+=pow((a[i].kokugo-heikin_k),2); std_e+=pow((a[i].eigo-heikin_e),2); std_s+=pow((a[i].suugaku-heikin_s),2); }'(_n,_a,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s) :- Êк¹¤ÎÆó¾èϤη׻»(0,_n,_a,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s). Êк¹¤ÎÆó¾èϤη׻»(_i_1,_n,_a,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s) :- _i_1 < _n, Êк¹¤ÎÆó¾è¤ò²Ã¤¨¤ë(_i_1,_n,_a,_std_k_1,_std_e_1,std_s_1,_std_k_2,_std_e_2,std_s_2), _i_2 is _i_1 + 1, Êк¹¤ÎÆó¾èϤη׻»(_i_2,_n,_a,_std_k_2,_std_e_2,_std_s_2,_std_k,_std_e,_std_s). Êк¹¤ÎÆó¾èϤη׻»(_i_1,_n,_a,_std_k,_std_e,_std_s,_std_k,_std_e,_std_s) :- _i_1 >= _n. Êк¹¤ÎÆó¾è¤ò²Ã¤¨¤ë(_i_1,_a,_std_k_1,_std_e_1,std_s_1,_std_k_2,_std_e_2,std_s_2) :- nth1(_i_1,_a,[_kokugo_heikin_k,_eigo_heikin_e,_suugaku_heikin_s]), _std_k_2 is _std_k_1 + _kokugo_heikin_k ^ 2, _std_e_2 is _std_e_1 + _eigo_heikin_e ^ 2, _std_s_2 is _std_s_1 + _suugaku_heikin_s ^ 2. '/* ɸ½àÊк¹¤Î·×»» */ std_k=sqrt(std_k/n); std_e=sqrt(std_e/n); std_s=sqrt(std_s/n);'(_n,_std_k_1,_std_e_1,_std_s_1,_std_k,_std_e,_std_s) :- _std_k is sqrt(_std_k_1) / _n, _std_e is sqrt(_std_e_1) / _n, _std_s is sqrt(_std_s_1) / _n. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/78 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂê¡¡http://ime.nu/codepad.org/yV0KrZox # # ÌäÂê1 # 5¸Ä¤ÎÀ°¿ô¤ò¼¡¡¹¤ËÆþÎϤ·¤Æ¡¢°ì¸µÇÛÎó¤Ë³ÊǼ¤·¡¢¤½¤ÎÊ¿¶Ñ¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # ------------------------------------------------------------------- # À°¿ô1¡§40 # À°¿ô2¡§35 # À°¿ô3¡§28 # À°¿ô4¡§15 # À°¿ô5¡§16 # Ê¿¶Ñ¤Ï26.8000¤Ç¤¹ # --------------------------------------------------------------------- # '5¸Ä¤ÎÀ°¿ô¤ò¼¡¡¹¤ËÆþÎϤ·¤Æ¡¢°ì¸µÇÛÎó¤Ë³ÊǼ¤·¡¢¤½¤ÎÊ¿¶Ñ¤ò·×»»¤¹¤ë' :- '5¸Ä¤ÎÀ°¿ô¤ò¼¡¡¹¤ËÆþÎϤ·¤Æ¡¢°ì¸µÇÛÎó¤Ë³ÊǼ¤·¡¢'(_°ì¼¡¸µÇÛÎó), ¤½¤ÎÊ¿¶Ñ¤ò·×»»¤¹¤ë(_°ì¼¡¸µÇÛÎó,_¤½¤ÎÊ¿¶Ñ). '5¸Ä¤ÎÀ°¿ô¤ò¼¡¡¹¤ËÆþÎϤ·¤Æ¡¢°ì¸µÇÛÎó¤Ë³ÊǼ¤·¡¢'(_°ì¼¡¸µÇÛÎó) :- findall(_À°¿ô,( between(1,5,N), atomic_list_concat([À°¿ô,N,': '],_ºÅÂ¥), writef('%t',[_ºÅÂ¥]), À°¿ô¤òÆÀ¤ë(_À°¿ô)), _°ì¼¡¸µÇÛÎó). ¤½¤ÎÊ¿¶Ñ¤ò·×»»¤¹¤ë(_°ì¼¡¸µÇÛÎó,_¤½¤ÎÊ¿¶Ñ) :- findavg(_ÃÍ,( member(_ÃÍ,_°ì¼¡¸µÇÛÎó)), _¤½¤ÎÊ¿¶Ñ), writef('Ê¿¶Ñ¤Ï%t¤Ç¤¹\n',[_¤½¤ÎÊ¿¶Ñ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/33 # # [1] ¼ø¶Èñ¸µ¡§¡¡¥ê¥¹¥È½èÍý # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&) http://codepad.org/3DdhcBUM # # /* # # seito.dat ( http://db.tt/RfFwIKXU )¤ò¹½Â¤ÂΤΥꥹ¥È¤Î¥»¥ë¤Ë(EOF¤Ë¤Ê¤ë¤Þ¤Ç)ÆþÎϤ·¡¢¥ê¥¹¥È½èÍý¤Ë¤è¤ëÁÞÆþË¡¤ÇÆÀÅÀ¤Î¹ß½ç¤ËÀ°Îó¤·¤ÆÉ½¼¨¤·¤Ê¤µ¤¤¡£ # ¤Þ¤¿¡¢À°Î󤹤ëºÝ¤ËÍ×ÁǤɤ¦¤·¤òÈæ³Ó¤·¤¿²ó¿ô¤âɽ¼¨¤·¤Ê¤µ¤¤¡£ # # ¡Ú¼Â¹ÔÎã¡Û # # Èֹ桡»á̾¡¡¡¡¡¡¡¡¡¡ ÆÀÅÀ # 1021 Machida Masato 100 # 1017 Nonaka Fujio 98 # 1011 Suzuki kenichi 93 # 1019 Fujimoto Kaoru 92 # 1006 kato Ichiro 91 # ¡¦ ¡¦¡¡¡¡¡¡¡¡¡¡¡¦ # ¡¦ ¡¦¡¡¡¡¡¡¡¡¡¡¡¦ # ¡¦ ¡¦¡¡¡¡¡¡¡¡¡¡¡¦ # 1020 Hoshi Izumi 32 # À°Îó¤Î°Ù¤ÎÈæ³Ó²ó¿ô=132²ó # # ¢¨Ä¹¤¤¤Î¤Ç¼Â¹Ô·ë²Ì¤ÏÅÓÃæ¾Êά¤·¤Æ¤¤¤Þ¤¹¡£ # ¢¨Èæ³Ó²ó¿ô¤Ï¥³¡¼¥É¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ # # */ 'seito.dat ( http://db.tt/RfFwIKXU )¤ò¹½Â¤ÂΤΥꥹ¥È¤Î¥»¥ë¤Ë(EOF¤Ë¤Ê¤ë¤Þ¤Ç)ÆþÎϤ·¡¢¥ê¥¹¥È½èÍý¤Ë¤è¤ëÁÞÆþË¡¤ÇÆÀÅÀ¤Î¹ß½ç¤ËÀ°Îó¤·¤ÆÉ½¼¨¤·¤Ê¤µ¤¤¡£ ¤Þ¤¿¡¢À°Î󤹤ëºÝ¤ËÍ×ÁǤɤ¦¤·¤òÈæ³Ó¤·¤¿²ó¿ô¤âɽ¼¨¤·¤Ê¤µ¤¤¡£' :- 'seito.dat ( http://db.tt/RfFwIKXU )¤ò¹½Â¤ÂΤΥꥹ¥È¤Î¥»¥ë¤Ë(EOF¤Ë¤Ê¤ë¤Þ¤Ç)ÆþÎϤ·¡¢'(_À¸Å̤ʤé¤Ó), ¥ê¥¹¥È½èÍý¤Ë¤è¤ëÁÞÆþË¡¤ÇÆÀÅÀ¤Î¹ß½ç¤ËÀ°Îó¤·¤Æ(_À¸Å̤ʤé¤Ó,[],_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,0,_Èæ³Ó²ó¿ô), ɽ¼¨¤·¤Ê¤µ¤¤(_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,_Èæ³Ó²ó¿ô). 'seito.dat ( http://db.tt/RfFwIKXU )¤ò¹½Â¤ÂΤΥꥹ¥È¤Î¥»¥ë¤Ë(EOF¤Ë¤Ê¤ë¤Þ¤Ç)ÆþÎϤ·¡¢'(_À¸Å̤ʤé¤Ó) :- get_split_lines('seito.dat',[' '],_À¸Å̤ʤé¤Ó). ¥ê¥¹¥È½èÍý¤Ë¤è¤ëÁÞÆþË¡¤ÇÆÀÅÀ¤Î¹ß½ç¤ËÀ°Îó¤·¤Æ([[_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ]|R1],L1,_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,_Èæ³Ó²ó¿ô_1,_Èæ³Ó²ó¿ô) :- ¹ß½ç¤ËÁÞÆþ(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ,L1,L2,_Èæ³Ó²ó¿ô_1,_Èæ³Ó²ó¿ô_2), ¥ê¥¹¥È½èÍý¤Ë¤è¤ëÁÞÆþË¡¤ÇÆÀÅÀ¤Î¹ß½ç¤ËÀ°Îó¤·¤Æ(R1,L2,_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,_Èæ³Ó²ó¿ô_2,_Èæ³Ó²ó¿ô),!. ¥ê¥¹¥È½èÍý¤Ë¤è¤ëÁÞÆþË¡¤ÇÆÀÅÀ¤Î¹ß½ç¤ËÀ°Îó¤·¤Æ([],_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,_Èæ³Ó²ó¿ô,_Èæ³Ó²ó¿ô). ¹ß½ç¤ËÁÞÆþ(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ,[[_³ØÀÒÈÖ¹æ_1,_À«_1,_̾_1,_ÆÀÅÀ_1]|R],[[_³ØÀÒÈÖ¹æ,_̾,_̾,_ÆÀÅÀ],[_³ØÀÒÈÖ¹æ_1,_À«_1,_̾_1,_ÆÀÅÀ_1]|R],_Èæ³Ó²ó¿ô_1,_Èæ³Ó²ó¿ô) :- Èæ³Ó²ó¿ô is _Èæ³Ó²ó¿ô_1 + 1, _ÆÀÅÀ >= _ÆÀÅÀ_1,!. ¹ß½ç¤ËÁÞÆþ(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ,[[_³ØÀÒÈÖ¹æ_1,_À«_1,_̾_1,_ÆÀÅÀ_1]|R1],[[_³ØÀÒÈÖ¹æ_1,_À«_1,_̾_1,_ÆÀÅÀ_1]|R2],_Èæ³Ó²ó¿ô_1,_Èæ³Ó²ó¿ô) :- ¹ß½ç¤ËÁÞÆþ(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ,R1,R2,_Èæ³Ó²ó¿ô_1,_Èæ³Ó²ó¿ô). ¹ß½ç¤ËÁÞÆþ(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ,[],[[_³ØÀÒÈÖ¹æ,_̾,_̾,_ÆÀÅÀ]],_Èæ³Ó²ó¿ô,_Èæ³Ó²ó¿ô) :- !. ɽ¼¨¤·¤Ê¤µ¤¤(_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó,_Èæ³Ó²ó¿ô) :- ¸«½Ð¤·¤Îɽ¼¨, append(_,[[_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ]|R],_À°ÎóºÑ¤ßÀ¸Å̤ʤé¤Ó), À°·Á¤·¤ÆÉ½¼¨¤¹¤ë(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ), R = [], writef('À°Îó¤Î°Ù¤ÎÈæ³Ó²ó¿ô=%t²ó\n',[_Èæ³Ó²ó¿ô]). ¸«½Ð¤·¤Îɽ¼¨ :- write('Èֹ桡»á̾¡¡¡¡¡¡¡¡¡¡ ÆÀÅÀ\n'). À°·Á¤·¤ÆÉ½¼¨¤¹¤ë(_³ØÀÒÈÖ¹æ,_À«,_̾,_ÆÀÅÀ) :- À«Ì¾¤ò¤½¤ì¤¾¤ì8·å¤Ë(_À«,_̾,_À«Ê¸»úÎó,_̾ʸ»úÎó), ÆÀÅÀ¤òƬÉô¶õÇò3·å¤Ë(_ÆÀÅÀ,_ÆÀÅÀʸ»úÎó), atomic_list_concat([_³ØÀÒÈÖ¹æ,_À«Ê¸»úÎó,_̾ʸ»úÎó,_ÆÀÅÀʸ»úÎó],' ',_ɽ¼¨Ê¸»úÎó), writef('%t\n',[_ɽ¼¨Ê¸»úÎó]). À«Ì¾¤ò¤½¤ì¤¾¤ì8·å¤Ë(_À«,_̾,_À«Ê¸»úÎó,_̾ʸ»úÎó) :- '8·å¤Ë'(_À«,_À«Ê¸»úÎó), '8·å¤Ë'(_̾,_̾ʸ»úÎó). '8·å¤Ë'(_¹à,_8·åʸ»úÎó) :- atom_chars(_¹à,Chars_1), length(L,8), append(L1,L2,L), all(L2,' '), atom_chars(_8·åʸ»úÎó,L). ÆÀÅÀ¤òƬÉô¶õÇò3·å¤Ë(_ÆÀÅÀ,_ÆÀÅÀʸ»úÎó) :- number_chars(_ÆÀÅÀ,Chars), length(L,3), append(L0,Chars,L), all(L0,' '), atom_chars(_ÆÀÅÀʸ»úÎó,L). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% get_split_lines(File,Sep,Lines) :- get_lines(File,Lines1), findall(Line,( member(A,Lines1), split(A,Sep,Line)), Lines). get_lines(Instream,end_of_file,_,_,[]) :-!. get_lines(Instream,S,[],_½ªÎ»¸¡º÷Âоݤʤé¤Ó,[S]) :- member(A,_½ªÎ»¸¡º÷Âоݤʤé¤Ó), ¸¡º÷(S,A),!. get_lines(Instream,S,[],[],[S|R]) :- get_line(Instream,S2), get_lines(Instream,S2,[],[],R),!. get_lines(Instream,S,[],_½ªÎ»¸¡º÷Âоݤʤé¤Ó,[S|R]) :- member(A,_½ªÎ»¸¡º÷Âоݤʤé¤Ó), \+(¸¡º÷(S,A)), get_line(Instream,S2), get_lines(Instream,S2,[],_½ªÎ»¸¡º÷Âоݤʤé¤Ó,R),!. get_lines(Instream,S,_³«»Ï¸¡º÷Âоݤʤé¤Ó,_½ªÎ»¸¡º÷Âоݤʤé¤Ó,[S]) :- \+(_³«»Ï¸¡º÷Âоݤʤé¤Ó = []), member(A,_³«»Ï¸¡º÷Âоݤʤé¤Ó), ¸¡º÷(S,A), member(B,_½ªÎ»¸¡º÷Âоݤʤé¤Ó), ¸¡º÷(S,B),!. get_lines(Instream,S,_³«»Ï¸¡º÷Âоݤʤé¤Ó,_½ªÎ»¸¡º÷Âоݤʤé¤Ó,[S|R]) :- \+(_³«»Ï¸¡º÷Âоݤʤé¤Ó = []), member(A,_³«»Ï¸¡º÷Âоݤʤé¤Ó), ¸¡º÷(S,A), !, get_line(Instream,S2), get_lines(Instream,S2,[],_½ªÎ»¸¡º÷Âоݤʤé¤Ó,R),!. get_lines(Instream,_,_³«»Ï¸¡º÷Âоݤʤé¤Ó,_½ªÎ»¸¡º÷Âоݤʤé¤Ó,X) :- get_line(Instream,S2), get_lines(Instream,S2,_³«»Ï¸¡º÷Âоݤʤé¤Ó,_½ªÎ»¸¡º÷Âоݤʤé¤Ó,X),!. get_lines(_¥Õ¥¡¥¤¥ë,_¥¹¥¿¡¼¥È¹Ô,_ºÇ½ª¹Ô,X) :- integer(_¥¹¥¿¡¼¥È¹Ô), integer(_ºÇ½ª¹Ô), ¹Ô°ÌÃÖ»ØÄêÁªÂò(_¥Õ¥¡¥¤¥ë,_¥¹¥¿¡¼¥È¹Ô,_ºÇ½ª¹Ô,X). get_lines(_¥Õ¥¡¥¤¥ë,_³«»Ï¸¡º÷Âоݤʤé¤Ó,_½ªÎ»¸¡º÷Âоݤʤé¤Ó,X) :- \+(integer(_³«»Ï¸¡º÷Âоݤʤé¤Ó)), \+(integer(_½ªÎ»¸¡º÷Âоݤʤé¤Ó)), open(_¥Õ¥¡¥¤¥ë,read,Instream), get_line(Instream,S), get_lines(Instream,S,_³«»Ï¸¡º÷Âоݤʤé¤Ó,_½ªÎ»¸¡º÷Âоݤʤé¤Ó,X), close(Instream),!. get_lines(File,Lines) :- get_chars(File,L), chars_lines(L,Lines),!. get_lines(Lines) :- findall(Line,( repeat, get_line(user_input,Line), (Line = end_of_file , (!) , fail ; true)), Lines). get_line(Instream,X) :- get_char(Instream,C), get_line_3(Instream,C,Chars), atom_chars(X,Chars),!. get_chars(Instream,end_of_file,[]) :- !. get_chars(Instream,_,[]) :- at_end_of_stream(Instream),!. get_chars(Instream,X,[X|R]) :- get_char(Instream,Y), get_chars(Instream,Y,R) . get_chars(File,L) :- \+(is_stream(_,File,_)), slush_op(File,File_1), exists_file(File_1), open(File_1,read,Instream), get_char(Instream,X), get_chars(Instream,X,L), close(Instream),!. get_chars(Instream,L) :- is_stream(_,Instream,_), get_char(Instream,X), get_chars(Instream,X,L),!. get_chars(L) :- findall(U,( repeat, get_char(U), (U = end_of_file , (!) , fail ; true)), L). get_line(X) :- get_line(user_input,X). get_line_3(_,'\n',[]) :- !. get_line_3(Instream,_,[]) :- at_end_of_stream(Instream),!. get_line_3(Instream,end_of_file,[]) :- !. get_line_3(Instream,C,[C|R]) :- get_char(Instream,C2), get_line_3(Instream,C2,R). chars_lines([],[],[]) :- !. chars_lines(['\r'],[],[]) :- !. chars_lines(['\r',A|R],[],[A|R]) :- \+(A = '\n'),!. chars_lines(['\r','\n'|R],[],R) :- !. chars_lines(['\n'|R],[],R) :- !. chars_lines([A|R1],[A|R2],Z) :- chars_lines(R1,R2,Z). chars_lines([],[]) :- !. chars_lines(L,[A|R2]) :- chars_lines(L,U,R), atomic_list_concat(U,A), chars_lines(R,R2). split(_ʸ»úÎó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- sPlit(_ʸ»úÎó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,Y), findall(U,( member(U,Y), \+(U = '')), L), L = X,!. sPlit(_ʸ»úÎó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- atom_chars(_ʸ»úÎó,L), split_00(L,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,Y), findall(U,( member(U,Y) , \+(member(U,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó))), Z), Z = X,!. split_00(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- findall([B,A],( member(A,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó) , atom_chars(A,B)), _¶èÀÚ¤êÉ乿¤Ê¤é¤Ó¤ÎÆó), split_0(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó¤ÎÆó,X). split_0(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,['',_¶èÀÚ¤êÉ乿,'']) :- member([_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿],_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó), _ʸ»ú¤Ê¤é¤Ó = _¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,!. split_0(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,['',_¶èÀÚ¤êÉ乿|R2]) :- member([_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿],_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó), append(_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,R,_ʸ»ú¤Ê¤é¤Ó), split_1(R,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,R2),!. split_0(L,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- split_1(L,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X). split_1([],_,[]) :- !. split_1(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,['',_¶èÀÚ¤êÉ乿,'']) :- member([_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿],_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó), _ʸ»ú¤Ê¤é¤Ó = _¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,!. split_1(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,['',_¶èÀÚ¤êÉ乿_1,C,_¶èÀÚ¤êÉ乿_2|X]) :- member([_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿_1],_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó), append(_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,R,_ʸ»ú¤Ê¤é¤Ó), split_2(R,R2,_¶èÀÚ¤êÉ乿_2,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,B), split_5(B,C), split_0(R2,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_1(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[C|X]) :- split_2(_ʸ»ú¤Ê¤é¤Ó,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,B), _¶èÀÚ¤êÉ乿 = '', split_5(B,C), split_0(R2,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_1(_ʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[C,_¶èÀÚ¤êÉ乿|X]) :- split_2(_ʸ»ú¤Ê¤é¤Ó,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,B), \+(_¶èÀÚ¤êÉ乿 = ''), split_5(B,C), split_0(R2,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_2([],[],'',_,[]) :- !. split_2(_ʸ»ú¤Ê¤é¤Ó,R,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[]) :- member([_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,_¶èÀÚ¤êÉ乿],_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó), append(_¶èÀÚ¤êʸ»ú¤Ê¤é¤Ó,R,_ʸ»ú¤Ê¤é¤Ó),!. split_2([''''|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- split_3([''''|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_2(['"'|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- split_32(['"'|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_2([_ʸ»ú|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[_ʸ»ú|X]) :- split_2(R,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_3(['''',''''|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[''''|X]) :- split_4(R,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_3([_|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- split_4(R,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_4(['''',''''|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[''''|X]) :- split_4(R,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_4([''''|R],R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X) :- split_2(R,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_4([],[],'',_,[]) :- !. split_4([_ʸ»ú|R],R2,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,[_ʸ»ú|X]) :- split_4(R,R2,_¶èÀÚ¤êÉ乿,_¶èÀÚ¤êÉ乿¤Ê¤é¤Ó,X),!. split_5([],'') :- !. split_5(B,C) :- numeric_list(B,Nl), C number Nl,!. split_5(B,C) :- atomic_list_concat(B,C),!. all([],_). all([V|R],V) :- all(R,V). ¸¡º÷(_ʸ»úÎó,_Éûʸ»úÎó) :- atom_length(_ʸ»úÎó,_ʸ»úÎó¤Îʸ»ú¿ô), atom_length(_Éûʸ»úÎó,_Éûʸ»úÎó¤Îʸ»ú¿ô), Max is _ʸ»úÎó¤Îʸ»ú¿ô - _Éûʸ»úÎó¤Îʸ»ú¿ô, between(0,Max,N), sub_atom(_ʸ»úÎó,N,_Éûʸ»úÎó¤Îʸ»ú¿ô,_Éûʸ»úÎó),!. ¹Ô°ÌÃÖ»ØÄêÁªÂò(_¥Õ¥¡¥¤¥ë,_ÁªÂòÀèÆ¬¹Ô,_ÁªÂòºÇ½ª¹Ô,X) :- wc(_¥Õ¥¡¥¤¥ë,[[_¹Ô,_,_,_]]), _¹Ô¿ô_1 is _¹Ô - _ÁªÂòÀèÆ¬¹Ô + 1, _¹Ô¿ô_2 is _ÁªÂòºÇ½ª¹Ô - _ÁªÂòÀèÆ¬¹Ô, atomic_list_concat(['tail -',_¹Ô¿ô_1,' ',_¥Õ¥¡¥¤¥ë,' | head -',_¹Ô¿ô_2],S), shs(S,X). wc(F,X) :- exists_file(F1), atomic_list_concat(['wc ',F1],S), sh(S,X),!. wc(F,X) :- atomic_list_concat([F,' | wc'],S), sh(S,X),!. sh(Command,X) :- shs(Command,Y), findall(U,(member(V,Y) , make_list(V,[' ',','],U)),X). shs(Command,X) :- popen(Command,L), shs_3(L,X). shs_3(L,[S|R]) :- append(L0,['\n'|R1],L), atom_chars(S,L0), shs_3(R1,R). shs_3([],[]) :- !. shs_3(L,[S]) :- atom_chars(S,L). system(Command,X) :- shell(Command,X). system(Command) :- shell(Command). popen(Command,Chars) :- open(pipe(Command),read,Instream), get_char(Instream,Char), popen(Instream,Char,Chars), close(Instream),!. popen(Instream,end_of_file,[]) :- !. popen(Instream,_,[]) :- at_end_of_stream(Instream),!. popen(Instream,Char,[Char|R]) :- get_char(Instream,Char2), popen(Instream,Char2,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/48 # # [1] ¼ø¶Èñ¸µ¡§´Ø¿ô¥Ý¥¤¥ó¥¿ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&amp;¥ê¥ó¥¯)¡§http://codepad.org/O3eDo7F3 # # °Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï2¤Ä¤ÎÀ°¿ô¤òÆþÎϤµ¤»¡¤³Æ¼ï½èÍý¤òÁª¤Ó¡¤ # ·×»»¤·¤¿·ë²Ì¤ò¥Õ¥¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¤â¤Î¤Ç¤¢¤ë¤¬¡¤ºîÀ®ÅÓÃæ¤Ç¤¢¤ë¡¥ # ²¼µ­¤Ë½¾¤¤¡¤¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤è¡¥ # ¡¦³Æ½èÍý¤ò¹Ô¤¦¾ì¹ç¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿°ú¿ô¤È¤¹¤ë¤òprocess()ÍѤ¤¤ë¡¥ # ¡¦²Ã»»¡§tasu()¡¤½ü»»¡Ê¾¦¡Ë¡§waru()¡¤½ü»»¡Ê¾ê;¡Ë¡§amari()¡¤ # ¡¡ºÇÂç¸øÌó¿ô¡§yakusu()¡¤ºÇ¾®¸øÇÜ¿ô¡§baisu()¤òÍѤ¤¤ë¡¥ # ¡¦½ü»»¤Ï¾¦¤È¾ê;¤òµá¤á¤ë¡¥ # ¡¦ºÇÂç¸øÌó¿ô¤Ï2¤Ä¤ÎÀ°¿ô¤Ç¶¦Ä̤ÎÌó¿ô¤Î¤¦¤ÁºÇÂç¤Î¤â¤Î¡¤ # ¡¡ºÇ¾®¸øÇÜ¿ô¤Ï2¤Ä¤ÎÀ°¿ô¤Ç¶¦Ä̤ÎÇÜ¿ô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤Ç¤¢¤ë¡¥ # ¡¦·ë²Ì¤Ï¡Ö14 ¡à 5 ¡á 2 ;¤ê 4¡×¤ä¡Ö6 ¤È 4 ¤ÎºÇ¾®¸øÇÜ¿ô¤Ï 12¡×¤Î¤è¤¦¤Ë # ¡¡·×»»¼°Åù¤â´Þ¤ákekka.txt¤Ø½ÐÎϤ¹¤ë¡¥ # # #include< stdio.h > # #include< stdlib.h > # # int process(¤³¤³¤ò½ñ¤¯); # int tasu(¤³¤³¤ò½ñ¤¯); # int waru(¤³¤³¤ò½ñ¤¯); # int amari(¤³¤³¤ò½ñ¤¯); # int yakusu(¤³¤³¤ò½ñ¤¯); # int baisu(¤³¤³¤ò½ñ¤¯); # # int main() # { # FILE *fp; //·ë²Ì¤ò½ÐÎϤ¹¤ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿ # # int a, b; // ÆþÎϤ¹¤ë2¤ÄÀ°¿ô # int op; // ÁªÂò¤µ¤ì¤¿½èÍý¤ò¼¨¤¹ÊÑ¿ô # int result1, result2; // ±é»»·ë²Ì¤ò³ÊǼ¤¹¤ëÊÑ¿ô # # fp = fopen("kekka.txt","w"); // ¥Õ¥¡¥¤¥ë¤ò³«¤¯ # if(fp == NULL) # { # printf("¥Õ¥¡¥¤¥ë¥ª¡¼¥×¥ó¥¨¥é¡¼ \n"); # exit(1); # } # # printf("1¤Ä¤á¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§"); # scanf("%d", &a); # printf("2¤Ä¤á¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§"); # scanf("%d", &b); # printf("1¡§²Ã»»¡¤2¡§½ü»»¡¤3¡§ºÇÂç¸øÌó¿ô¡¤4¡§ºÇ¾®¸øÇÜ¿ô\n"); # do { # printf("±é»»¤ÎÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§"); # scanf("%d", &op); # } while(op<1 || op>4); # # ¤³¤³¤ò½ñ¤¯ # # fclose(fp); // ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë # return 0; # } # # int process(¤³¤³¤ò½ñ¤¯) # { # ¤³¤³¤ò½ñ¤¯ # } # # int tasu(¤³¤³¤ò½ñ¤¯) # { # ¤³¤³¤ò½ñ¤¯ # } # # int waru(¤³¤³¤ò½ñ¤¯) # { # ¤³¤³¤ò½ñ¤¯ # } # # int amari(¤³¤³¤ò½ñ¤¯) # { # ¤³¤³¤ò½ñ¤¯ # } # # int yakusu(¤³¤³¤ò½ñ¤¯) # { # ¤³¤³¤ò½ñ¤¯ # } # # int baisu(¤³¤³¤ò½ñ¤¯) # { # ¤³¤³¤ò½ñ¤¯ # } '2¤Ä¤ÎÀ°¿ô¤òÆþÎϤµ¤»¡¤³Æ¼ï½èÍý¤òÁª¤Ó¡¤ ·×»»¤·¤¿·ë²Ì¤ò¥Õ¥¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡¥ ²¼µ­¤Ë½¾¤¤¡¤¥×¥í¥°¥é¥à¤ò´°À®¤µ¤»¤è¡¥ ¡¦³Æ½èÍý¤ò¹Ô¤¦¾ì¹ç¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿°ú¿ô¤È¤¹¤ë¤òprocess()ÍѤ¤¤ë ¡¦²Ã»»¡§tasu()¡¤½ü»»¡Ê¾¦¡Ë¡§waru()¡¤½ü»»¡Ê¾ê;¡Ë¡§amari() ¡¡ºÇÂç¸øÌó¿ô¡§yakusu()¡¤ºÇ¾®¸øÇÜ¿ô¡§baisu()¤òÍѤ¤¤ë¡¥ ¡¦½ü»»¤Ï¾¦¤È¾ê;¤òµá¤á¤ë¡¥ ¡¦ºÇÂç¸øÌó¿ô¤Ï2¤Ä¤ÎÀ°¿ô¤Ç¶¦Ä̤ÎÌó¿ô¤Î¤¦¤ÁºÇÂç¤Î¤â¤Î¡¤ ¡¡ºÇ¾®¸øÇÜ¿ô¤Ï2¤Ä¤ÎÀ°¿ô¤Ç¶¦Ä̤ÎÇÜ¿ô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤Ç¤¢¤ë¡¥ ¡¦·ë²Ì¤Ï¡Ö14 ¡à 5 ¡á 2 ;¤ê 4¡×¤ä¡Ö6 ¤È 4 ¤ÎºÇ¾®¸øÇÜ¿ô¤Ï 12¡×¤Î¤è¤¦¤Ë ¡¡·×»»¼°Åù¤â´Þ¤ákekka.txt¤Ø½ÐÎϤ¹¤ë¡¥' :- open('kekka.txt',write,Outstream), Æó¤Ä¤ÎÀ°¿ô¤È±é»»ÈÖ¹æ¤òÆÀ¤ë(_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô), ±é»»½èÍý¤È·ë²Ì¤òɽ¼¨¤¹¤ë(Outstream,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_±é»»ÈÖ¹æ), \+(between(1,4,_±é»»ÈÖ¹æ)), close(Outstream). Æó¤Ä¤ÎÀ°¿ô¤È±é»»ÈÖ¹æ¤òÆÀ¤ë(_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_±é»»ÈÖ¹æ) :- À°¿ô¤òÆÀ¤ë('1¤Ä¤á¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤',true,_°ì¤ÄÌܤÎÀ°¿ô), À°¿ô¤òÆÀ¤ë('2¤Ä¤á¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤',true,_Æó¤ÄÌܤÎÀ°¿ô), À°¿ô¤òÆÀ¤ë('±é»»»ÒÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n1¡§²Ã»»¡¤2¡§½ü»»¡¤3¡§ºÇÂç¸øÌó¿ô¡¤4¡§ºÇ¾®¸øÇÜ¿ô',between(1,4,_±é»»ÈÖ¹æ),_±é»»ÈÖ¹æ). ±é»»½èÍý¤È·ë²Ì¤òɽ¼¨¤¹¤ë(Outstream,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_±é»»ÈÖ¹æ) :- À°¿ô¤òÆÀ¤ë('±é»»ÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n1¡§²Ã»»¡¤2¡§½ü»»¡¤3¡§ºÇÂç¸øÌó¿ô¡¤4¡§ºÇ¾®¸øÇÜ¿ô',true,_±é»»ÈÖ¹æ), ±é»»½èÍý(_±é»»ÈÖ¹æ,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ìʸ»úÎó), writef(Outstream,'%t\n',[_·ë²Ìʸ»úÎó]). ±é»»½èÍý¤È·ë²Ì¤òɽ¼¨¤¹¤ë(Outstream,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_±é»»ÈÖ¹æ) :- ±é»»½èÍý¤È·ë²Ì¤òɽ¼¨¤¹¤ë(Outstream,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_±é»»ÈÖ¹æ). ±é»»½èÍý(1,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ìʸ»úÎó) :- _·ë²Ì is _°ì¤ÄÌܤÎÀ°¿ô + _Æó¤ÄÌܤÎÀ°¿ô, swritef(_·ë²Ìʸ»úÎó,'%t + %t = %t',[_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ì]). ±é»»½èÍý(2,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ìʸ»úÎó) :- _¾¦ is _°ì¤ÄÌܤÎÀ°¿ô // _Æó¤ÄÌܤÎÀ°¿ô, _¾ê; is _°ì¤ÄÌܤÎÀ°¿ô mod _Æó¤ÄÌܤÎÀ°¿ô, swritef(_·ë²Ìʸ»úÎó,'%t %% %t = %t ;¤ê %t',[_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_¾¦,_¾ê;]). ±é»»½èÍý(ºÇÂç¸øÌó¿ô,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ìʸ»úÎó) :- ºÇÂç¸øÌó¿ô(_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ì), swritef(_·ë²Ìʸ»úÎó,'%t ¤È %t ¤ÎºÇÂç¸øÌó¿ô¤Ï %t,[_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ì]). ±é»»½èÍý(4,_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ìʸ»úÎó) :- ºÇ¾®¸øÇÜ¿ô(_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ì), swritef(_·ë²Ìʸ»úÎó,'%t ¤È %t ¤ÎºÇ¾®¸øÇÜ¿ô¤Ï %t,[_°ì¤ÄÌܤÎÀ°¿ô,_Æó¤ÄÌܤÎÀ°¿ô,_·ë²Ì]). ±é»»½èÍý(N,_,_,'½ªÎ»¤·¤Þ¤¹') :- \+(between(1,4,N)). ºÇÂç¸øÌó¿ô(M,N,X) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X),!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X). ºÇ¾®¸øÇÜ¿ô(M,N,X) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,Y), X is M * N // Y. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1357748713/33 # # [1] ¼ø¶Èñ¸µ¡§¥ê¥¹¥È¹½Â¤ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&amp;¥ê¥ó¥¯)¡§ # http://ime.nu/iup.2ch-library.com/i/i0825590-1357830189.gif # # °Ê²¼¤Î¤è¤¦¤Ê¥á¥Ë¥å¡¼¤òɽ¼¨¡¤³Æ¹àÌܤε¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºî À®¤»¤è¡¥ # ¥ê¥¹¥È¤Ï1¤Ä¤È¤·¡¤½é´üÃͤϡÖ15 4 32 1¡×¤Ç¤¢¤ë¡¥ # ¡¦¥Ç¡¼¥¿¤ÎÄɲ᤺ï½ü¤ÏÎý½¬²ÝÂê(ÁÞÆþ¤äºï½ü)¤Î¤â¤Î¤ò»²¹Í¤Ë¤¹¤ì¤Ð¤è¤¤¡¥ # ¡¦¥Ç¡¼¥¿¤ÎÄɲä˴ؤ·¤Æ¡¤¤½¤Î¥Ç¡¼¥¿¤Ï¥ê¥¹¥È¤ÎºÇ¸å¤ËÁÞÆþ¤µ¤ì¤ë¤â¤Î¤È¤¹¤ë¡¥ # ¡¦¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç)¤ò¹Ô¤¦´Ø¿ô¤òºîÀ®¤¹¤ë¡¥ # ¡¦¥ê¥¹¥È¤ÎÊ¿¶ÑÃͤò·×»»¤·½ÐÎϤ¹¤ë´Ø¿ô¤òºîÀ®¤¹¤ë¡£ # # ------ɽ¼¨Îã------ # 1. ¥Ç¡¼¥¿¤ÎÄɲà # 2. ¥Ç¡¼¥¿¤Îºï½ü # 3. ¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç) # 4. ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ # 5. ½ªÎ» # ²¿¤ò¼Â¹Ô¤·¤Þ¤¹¤« : # ------------------ # # ------¼Â¹ÔÎã------- # 1. ¥Ç¡¼¥¿¤ÎÄɲà # 2. ¥Ç¡¼¥¿¤Îºï½ü # 3. ¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç) # 4. ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ # 5. ½ªÎ» # ²¿¤ò¼Â¹Ô¤·¤Þ¤¹¤« : 1 # Äɲ乤ë¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : 10 # ¥ê¥¹¥È : 15 4 32 1 10 # # 1. ¥Ç¡¼¥¿¤ÎÄɲà # 2. ¥Ç¡¼¥¿¤Îºï½ü # 3. ¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç) # 4. ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ # 5. ½ªÎ» # ²¿¤ò¼Â¹Ô¤·¤Þ¤¹¤« : 4 # ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ : 12.4 # ¥ê¥¹¥È : 15 4 32 1 10 # # 1. ¥Ç¡¼¥¿¤ÎÄɲà # 2. ¥Ç¡¼¥¿¤Îºï½ü # 3. ¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç) # 4. ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ # 5. ½ªÎ» # ²¿¤ò¼Â¹Ô¤·¤Þ¤¹¤« : 3 # ¥ê¥¹¥È : 32 15 10 4 1 # :- dynamic(¥ê¥¹¥È/1). '°Ê²¼¤Î¤è¤¦¤Ê¥á¥Ë¥å¡¼¤òɽ¼¨¡¤³Æ¹àÌܤε¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥ ¥ê¥¹¥È¤Ï1¤Ä¤È¤·¡¤½é´üÃͤϡÖ15 4 32 1¡×¤Ç¤¢¤ë¡¥ ¡¦¥Ç¡¼¥¿¤ÎÄɲ᤺ï½ü¤ÏÎý½¬²ÝÂê(ÁÞÆþ¤äºï½ü)¤Î¤â¤Î¤ò»²¹Í¤Ë¤¹¤ì¤Ð¤è¤¤¡¥ ¡¦¥Ç¡¼¥¿¤ÎÄɲä˴ؤ·¤Æ¡¤¤½¤Î¥Ç¡¼¥¿¤Ï¥ê¥¹¥È¤ÎºÇ¸å¤ËÁÞÆþ¤µ¤ì¤ë¤â¤Î¤È¤¹¤ë¡¥ ¡¦¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç)¤ò¹Ô¤¦´Ø¿ô¤òºîÀ®¤¹¤ë¡¥ ¡¦¥ê¥¹¥È¤ÎÊ¿¶ÑÃͤò·×»»¤·½ÐÎϤ¹¤ë´Ø¿ô¤òºîÀ®¤¹¤ë¡£ ------ɽ¼¨Îã------ 1. ¥Ç¡¼¥¿¤ÎÄɲà 2. ¥Ç¡¼¥¿¤Îºï½ü 3. ¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç) 4. ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ 5. ½ªÎ» ²¿¤ò¼Â¹Ô¤·¤Þ¤¹¤« : ' :- '¥ê¥¹¥È¤Ï1¤Ä¤È¤·¡¤½é´üÃͤϡÖ15 4 32 1¡×¤Ç¤¢¤ë', ¥á¥Ë¥å¡¼¤òɽ¼¨, ³Æ¹àÌܤε¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë. '¥ê¥¹¥È¤Ï1¤Ä¤È¤·¡¤½é´üÃͤϡÖ15 4 32 1¡×¤Ç¤¢¤ë' :- assertz(¥ê¥¹¥È([15,4,32,1])). ¥á¥Ë¥å¡¼¤òɽ¼¨ :- write('1. ¥Ç¡¼¥¿¤ÎÄɲÃ\n2. ¥Ç¡¼¥¿¤Îºï½ü\n3. ¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç)\n4. ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ\n5. ½ªÎ»\n²¿¤ò¼Â¹Ô¤·¤Þ¤¹¤« : '). ¥á¥Ë¥å¡¼¤òɽ¼¨ :- ¥á¥Ë¥å¡¼¤òɽ¼¨. ³Æ¹àÌܤε¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë :- µ¡Ç½ÈÖ¹æ¤òÁªÂò¤¹¤ë(_µ¡Ç½ÈÖ¹æ), µ¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë(_µ¡Ç½ÈÖ¹æ), _µ¡Ç½ÈÖ¹æ = 5,!. µ¡Ç½ÈÖ¹æ¤òÁªÂò¤¹¤ë(_µ¡Ç½ÈÖ¹æ) :- get_line(Line), '¿ÇÃÇ:: ¥á¥Ë¥å¡¼¤ÎÁªÂò'(Line,_µ¡Ç½ÈÖ¹æ),!. µ¡Ç½ÈÖ¹æ¤òÁªÂò¤¹¤ë(_µ¡Ç½ÈÖ¹æ) :- µ¡Ç½ÈÖ¹æ¤òÁªÂò¤¹¤ë(_µ¡Ç½ÈÖ¹æ). '¿ÇÃÇ:: ¥á¥Ë¥å¡¼¤ÎÁªÂò'(Line,_µ¡Ç½ÈÖ¹æ) :- atom_number(Line,_µ¡Ç½ÈÖ¹æ), integer(_µ¡Ç½ÈÖ¹æ), between(1,5,_µ¡Ç½ÈÖ¹æ),!. '¿ÇÃÇ:: ¥á¥Ë¥å¡¼¤ÎÁªÂò'(Line,_µ¡Ç½ÈÖ¹æ) :- writef('ÁªÂò¤µ¤ì¤¿ %t ¤«¤é¤ÏŬÀڤʵ¡Ç½Èֹ椬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. µ¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë(5) :- !. µ¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë(1) :- ¥Ç¡¼¥¿¤ÎÄɲÃ. µ¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë(2) :- ¥Ç¡¼¥¿¤Îºï½ü. µ¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë(3) :- '¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç)'. µ¡Ç½¤ò¼Â¸½¤·¤Æ·ë²Ì¤òɽ¼¨¤¹¤ë(4) :- ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ. ¥Ç¡¼¥¿¤ÎÄɲà :- write('Äɲ乤ë¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), À°¿ô¤òÆÀ¤ë(_¥Ç¡¼¥¿), retract(¥ê¥¹¥È(L1)), append(L1,[_¥Ç¡¼¥¿],L2), assertz(¥ê¥¹¥È(L2)). ¥Ç¡¼¥¿¤Îºï½ü :- write('ºï½ü¤¹¤ë¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), À°¿ô¤òÆÀ¤ë(_¥Ç¡¼¥¿), retract(¥ê¥¹¥È(L1)), ¤Ê¤é¤Ó¤«¤éºï½ü(_¥Ç¡¼¥¿,L1,L2), assertz(¥ê¥¹¥È(L2)). '¥Ç¡¼¥¿¤Î¥½¡¼¥È(¹ß½ç)' :- ¥ê¥¹¥È(L1), ¹ß½çÀ°Îó(L1,L2), atomic_list_concat(L2,' ',S), writef('¥ê¥¹¥È : %t\n',[S]). ¥ê¥¹¥È¤ÎÊ¿¶ÑÃÍ :- ¥ê¥¹¥È(L1), findavg(_¥Ç¡¼¥¿,( member(_¥Ç¡¼¥¿,L1)), _Ê¿¶ÑÃÍ), atomic_list_concat(L1,_¥ê¥¹¥Èɽ¼¨), writef('Ê¿¶ÑÃÍ : %t\n¥ê¥¹¥È : %t\n',[_Ê¿¶ÑÃÍ,_¥ê¥¹¥Èɽ¼¨]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% get_line(Stream,X) :- get_char(Stream,C), get_line_1(Stream,C,Chars), atom_chars(X,Chars). get_line_1(Stream,'\n',[]) :- !. get_line_1(Stream,_,[e,n,d,'_',o,f,'_',f,i,l,e]) :- at_end_of_stream(Stream),!. get_line_1(Stream,end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(Stream,C,[C|R]) :- get_char(Stream,C2), get_line_1(Stream,C2,R). get_line(X) :- get_line(user_input,X). ¤Ê¤é¤Ó¤«¤éºï½ü(_,[],[]) :- !. ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,[_ºï½ü¤¹¤ëÍ×ÁÇ|_»Ä¤êÂоݤʤé¤Ó],_ºï½ü¤µ¤ì¤¿¤Ê¤é¤Ó) :- ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,_»Ä¤êÂоݤʤé¤Ó,_ºï½ü¤µ¤ì¤¿¤Ê¤é¤Ó),!. ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,[_Í×ÁÇ|_»Ä¤êÂоݤʤé¤Ó],[_Í×ÁÇ|_»Ä¤êºï½ü¤Ê¤é¤Ó]) :- ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,_»Ä¤êÂоݤʤé¤Ó,_»Ä¤êºï½ü¤Ê¤é¤Ó),!. ¹ß½çÀ°Îó([],[]). ¹ß½çÀ°Îó([_¼´Í×ÁÇ|R1],_¹ß½ç¤ËÀ°Î󤵤줿¤Ê¤é¤Ó) :- ¹ß½çʬ³ä(_¼´Í×ÁÇ,R,_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó,_¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó), ¹ß½çÀ°Îó(_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó,_À°Îó¤·¤¿¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó), ¹ß½çÀ°Îó(_¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó,_À°Îó¤·¤¿¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó), append(_À°Îó¤·¤¿¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó,[_¼´Í×ÁÇ|_À°Îó¤·¤¿¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó],_¹ß½ç¤ËÀ°Îó¤·¤¿¤Ê¤é¤Ó). ¹ß½çʬ³ä(_,[],[],[]). ¹ß½çʬ³ä(_¼´Í×ÁÇ,[_Í×ÁÇ|R],[_Í×ÁÇ|_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó],_¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó) :- _Í×ÁÇ @>= _¼´Í×ÁÇ, ¹ß½çʬ³ä(_¼´Í×ÁÇ,R,_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó,_¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó). ¹ß½çʬ³ä(_¼´Í×ÁÇ,[_Í×ÁÇ|R],_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó,[_Í×ÁÇ|_¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó]) :- _Í×ÁÇ @< _¼´Í×ÁÇ, ¹ß½çʬ³ä(_¼´Í×ÁÇ,R,_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤¤Ê¤é¤Ó,_¼´Í×ÁǤè¤ê¾®¤µ¤¤¤Ê¤é¤Ó). findavg(_½¸Ìó¹à,_¹à,_Áê²ÃÊ¿¶Ñ) :- findall(_½¸Ìó¹à,_¹à,_Ãͤʤé¤Ó), sum(_Ãͤʤé¤Ó,_¹ç·×ÃÍ), length(_Ãͤʤé¤Ó,_¤Ê¤é¤Ó¤ÎŤµ), _Áê²ÃÊ¿¶Ñ is _¹ç·×ÃÍ / _¤Ê¤é¤Ó¤ÎŤµ,!. sum([],0). sum([N|R],S) :- sum(R,S_1), S is N + S_1. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/998 # # [1] ¼ø¶Èñ¸µ¡§C++ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ÆþÎÏ¡§Æó¤Ä¤ÎÀ°¿ôn,m # ½ÐÎÏ¡§1¤«¤én¤Þ¤Ç¤ÎÈֹ滥¤ò»ý¤Ã¤¿¿Í¤¬¡¢ÈÖ¹æ½ç¤Ë±ß¿Ø¤òÁȤó¤Ç¤¤¤ë¡£ # ¡¡¡¡¡¡¡¡¡¡ºÇ½é¤Ë¡¢1ÈÖ»¥¤Î¿Í¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡Ê±ß¿Ø¤Ï1¸º¡Ë # ¡¡¡¡¡¡¡¡¡¡Â³¤¤¤Æ¡¢¤½¤Î¼¡¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡£¤³¤ì¤ò·«¤êÊÖ¤·¤¿¤È¤­¤Î¡¢ # ¡¡¡¡¡¡¡¡¡¡ÂàÀʼԤνçÈÖ¤òµá¤á¡¢½ÐÎϤ»¤è¡£ # ¡¡¡¡¡¡¡¡-Îã¡§n = 9,m = 5¤Î¤È¤­¡¢ÂàÀʼԤνçÈÖ¤Ï5,1,7,4,3,6,9,2,8 # 'ÆþÎÏ¡§Æó¤Ä¤ÎÀ°¿ôn,m ½ÐÎÏ¡§1¤«¤én¤Þ¤Ç¤ÎÈֹ滥¤ò»ý¤Ã¤¿¿Í¤¬¡¢ÈÖ¹æ½ç¤Ë±ß¿Ø¤òÁȤó¤Ç¤¤¤ë¡£ ¡¡¡¡¡¡¡¡¡¡ºÇ½é¤Ë¡¢1ÈÖ»¥¤Î¿Í¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡Ê±ß¿Ø¤Ï1¸º¡Ë ¡¡¡¡¡¡¡¡¡¡Â³¤¤¤Æ¡¢¤½¤Î¼¡¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡£¤³¤ì¤ò·«¤êÊÖ¤·¤¿¤È¤­¤Î¡¢ ¡¡¡¡¡¡¡¡¡¡ÂàÀʼԤνçÈÖ¤òµá¤á¡¢½ÐÎϤ»¤è¡£'(_n,_m) :- findall(N,( between(1,_n,N)), L1), 'ºÇ½é¤Ë¡¢1ÈÖ»¥¤Î¿Í¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡Ê±ß¿Ø¤Ï1¸º¡Ë ¡¡¡¡¡¡¡¡¡¡Â³¤¤¤Æ¡¢¤½¤Î¼¡¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡£¤³¤ì¤ò·«¤êÊÖ¤·¤¿¤È¤­¤Î¡¢ ¡¡¡¡¡¡¡¡¡¡ÂàÀʼԤνçÈÖ¤òµá¤á¡¢'(L1,_m,L2), '½ÐÎϤ»¤è¡£'(L2). 'ºÇ½é¤Ë¡¢1ÈÖ»¥¤Î¿Í¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡Ê±ß¿Ø¤Ï1¸º¡Ë ¡¡¡¡¡¡¡¡¡¡Â³¤¤¤Æ¡¢¤½¤Î¼¡¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡£¤³¤ì¤ò·«¤êÊÖ¤·¤¿¤È¤­¤Î¡¢ ¡¡¡¡¡¡¡¡¡¡ÂàÀʼԤνçÈÖ¤òµá¤á¡¢'([],_,[]) :- !. 'ºÇ½é¤Ë¡¢1ÈÖ»¥¤Î¿Í¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡Ê±ß¿Ø¤Ï1¸º¡Ë ¡¡¡¡¡¡¡¡¡¡Â³¤¤¤Æ¡¢¤½¤Î¼¡¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡£¤³¤ì¤ò·«¤êÊÖ¤·¤¿¤È¤­¤Î¡¢ ¡¡¡¡¡¡¡¡¡¡ÂàÀʼԤνçÈÖ¤òµá¤á¡¢'(L1,_m,[N|R]) :- _m_1 is _m - 1, ¤Ê¤é¤Ó¤Î²óž(º¸Êý¸þ,_m_1,L1,[N|L3]), 'ºÇ½é¤Ë¡¢1ÈÖ»¥¤Î¿Í¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡Ê±ß¿Ø¤Ï1¸º¡Ë ¡¡¡¡¡¡¡¡¡¡Â³¤¤¤Æ¡¢¤½¤Î¼¡¤«¤émÈÖÌܤοͤ¬ÂàÀʤ¹¤ë¡£¤³¤ì¤ò·«¤êÊÖ¤·¤¿¤È¤­¤Î¡¢ ¡¡¡¡¡¡¡¡¡¡ÂàÀʼԤνçÈÖ¤òµá¤á¡¢'(L2,_m,R). ¤Ê¤é¤Ó¤Î²óž(_Êý¸þ,N,L1,L2) :- length(Ln,N), ¤Ê¤é¤Ó¤Î²óž_2(_Êý¸þ,Ln,L1,L2). ¤Ê¤é¤Ó¤Î²óž_2(_Êý¸þ,[],L,L). ¤Ê¤é¤Ó¤Î²óž_2(_Êý¸þ,[_|Ln],L1,L2) :- ¤Ê¤é¤Ó¤Î²óž(_Êý¸þ,L1,L1_1), ¤Ê¤é¤Ó¤Î²óž_2(_Êý¸þ,L2,L1_1,L2). ¤Ê¤é¤Ó¤Î²óž(º¸Êý¸þ,[A|R],L) :- append(R,[A],L). ¤Ê¤é¤Ó¤Î²óž(±¦Êý¸þ,L1,L) :- append(R,[A],L1), append([A],R,L). '½ÐÎϤ»¤è¡£'(L2) :- writef('%t\n',[L2]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/987 # # [1] ¥×¥í¥°¥é¥ß¥ó¥° # [2] ¿ô»ú¤ò¼ýǼ¤¹¤ë # # C¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£¥³¥ó¥½¡¼¥ë¤Ç¤¹ # ¤¢¤ë¿ô»ú¤ò°ìʸ»úÆþÎϤ·¡¢¤½¤·¤Æenter¡£ # ¼¡¤Ë¡¢¤½¤ÎÁ°¤ËÂǤä¿¿ô¤À¤±¥é¥ó¥À¥à¤Ê¿ô»ú¤ò¶õÇò¤ò¤Ï¤µ¤ó¤ÇÂǤÁ¹þ¤à¡£¤½¤·¤Æ¥¨¥ó¥¿¡¼ # # Îã # 6¡¡¡Ê¥¨¥ó¥¿¡¼ # 4 23 1 4 5 3¡¡¡Ê¥¨¥ó¥¿¡¼ # # ¤ß¤¿¤¤¤Ê¤«¤ó¤¸¤Ç¤¹ # # ¤½¤·¤Æ¤³¤ì¤ò X[i] ¤Ëi=1¤«¤é½ç¤Ë¶õÇò¤òÈô¤Ð¤·¤ÆÆþ¤ì¤Æ¤¤¤¯¤Ã¤Æ¤«¤ó¤¸¤Ç¤¹¡£ ¤½¤ó¤ÇX[1]=4 X[2]=23¡¡¡¦¡¦¡¦¡¡ # ¤ß¤¿¤¤¤ËÆþ¤ì¤Ð¤¤¤¤¤Ç¤¹ # ʸ»úÎó¤Ç¤Ï¤Ê¤¯¿ô»ú¤Ç¼ýǼ¤·¤¿¤¤¤Ç¤¹ # # ¤ª´ê¤¤¤·¤Þ¤¹ '¤¢¤ë¿ô»ú¤ò°ìʸ»úÆþÎϤ·¡¢¤½¤·¤Æenter¡£¼¡¤Ë¡¢¤½¤ÎÁ°¤ËÂǤä¿¿ô¤À¤±¥é¥ó¥À¥à¤Ê¿ô»ú¤ò¶õÇò¤ò¤Ï¤µ¤ó¤ÇÂǤÁ¹þ¤à¡£¤½¤·¤Æ¥¨¥ó¥¿¡¼'([N|_¿ôÃͤʤé¤Ó]) :- À°¿ô¤òÆÀ¤ë(N), findall(_¿ôÃÍ,( between(1,N,_), '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç¤¬¿ôÃͤÀ'(_¿ôÃÍ)), _¿ôÃͤʤé¤Ó). '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç¤¬¿ôÃͤÀ'(_¿ôÃÍ) :- get_char(_ʸ»ú), '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç'(_ʸ»ú,_ʸ»ú¤Ê¤é¤Ó), atomic_list_concat(ʸ»ú¤Ê¤é¤Ó,_ʸ»úÎó), atom_number(_ʸ»úÎó,_¿ôÃÍ). '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç'(' ',[]) :- !. '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç'('\n',[]) :- !. '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç'(A,[A|R]) :- get_char(B), '¶õÇò¤Þ¤¿¤Ï²þ¹Ô¤¬Íè¤ë¤Þ¤Ç'(B,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 161ÂåÌÜ #984 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±þÍÑ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§À¾Îñ¤òǯ¹æ¤ËÊÑ´¹¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£ # ¤¿¤À¤·¡¢ÆþÎϤǤ­¤ë¤Î¤Ï¡¢1868ǯ°Ê¹ß¤«¤é¤Ç¤¢¤ê¡¢2008ǯ°Ê¹ß¤âÊ¿À®¤È¤¹¤ë¡£ # ÌÀ¼£¸µÇ¯¡¢ÂçÀµ¸µÇ¯¡¢¾¼Ï¸µÇ¯¡¢Ê¿À®¸µÇ¯¤Ï¡¢³Æ¡¹¡¢1868ǯ,1912ǯ,1926ǯ,1989ǯ¤Ç¤¢¤ë¡£ # ²¼µ­¤ò»²¹Í¤Ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # int gannen[]={1989, 1926, 1912, 1868}; # char nengou[][8]={"heisei", "syouwa", "taisyou", "meiji"}; # 'À¾Îñ¤òǯ¹æ¤ËÊÑ´¹¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£ ¤¿¤À¤·¡¢ÆþÎϤǤ­¤ë¤Î¤Ï¡¢1868ǯ°Ê¹ß¤«¤é¤Ç¤¢¤ê¡¢2008ǯ°Ê¹ß¤âÊ¿À®¤È¤¹¤ë¡£ ÌÀ¼£¸µÇ¯¡¢ÂçÀµ¸µÇ¯¡¢¾¼Ï¸µÇ¯¡¢Ê¿À®¸µÇ¯¤Ï¡¢³Æ¡¹¡¢1868ǯ,1912ǯ,1926ǯ,1989ǯ¤Ç¤¢¤ë¡£'(_À¾Îñ,_ǯ¹æ) :- '¤¿¤À¤·¡¢ÆþÎϤǤ­¤ë¤Î¤Ï¡¢1868ǯ°Ê¹ß¤«¤é¤Ç¤¢¤ê¡¢'(_À¾Îñ), 'ÌÀ¼£¸µÇ¯¡¢ÂçÀµ¸µÇ¯¡¢¾¼Ï¸µÇ¯¡¢Ê¿À®¸µÇ¯¤Ï¡¢³Æ¡¹¡¢1868ǯ,1912ǯ,1926ǯ,1989ǯ¤Ç¤¢¤ë¡£'(_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó), À¾Îñ¤òǯ¹æ¤ËÊÑ´¹¤¹¤ë(_À¾Îñ,_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_ǯ¹æ). '¤¿¤À¤·¡¢ÆþÎϤǤ­¤ë¤Î¤Ï¡¢1868ǯ°Ê¹ß¤«¤é¤Ç¤¢¤ê¡¢'(_À¾Îñ) :- _À¾Îñ >= 1868. 'ÌÀ¼£¸µÇ¯¡¢ÂçÀµ¸µÇ¯¡¢¾¼Ï¸µÇ¯¡¢Ê¿À®¸µÇ¯¤Ï¡¢³Æ¡¹¡¢1868ǯ,1912ǯ,1926ǯ,1989ǯ¤Ç¤¢¤ë¡£'([ÌÀ¼£,ÂçÀµ,¾¼ÏÂ,Ê¿À®],[1868,1912,1926,1989]). À¾Îñ¤òǯ¹æ¤ËÊÑ´¹¤¹¤ë(_À¾Îñ,_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_ǯ¹æ) :- À¾Îñ¤«¤é¸µ¹æ¤È¸µÇ¯¤ÎÀ¾Îñ¤òÆÀ¤ë(_À¾Îñ,_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µ¹æ,_¸µÇ¯¤ÎÀ¾Îñ), ǯ¹æ¤òÆÀ¤ë(_À¾Îñ,_¸µ¹æ,_¸µÇ¯¤ÎÀ¾Îñ,_ǯ¹æ). À¾Îñ¤«¤é¸µ¹æ¤È¸µÇ¯¤ÎÀ¾Îñ¤òÆÀ¤ë(_À¾Îñ,_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µ¹æ,_¸µÇ¯¤ÎÀ¾Îñ) :- ¸µ¹æ¸õÊä¤È¤½¤Î¸µÇ¯¤ÎÀ¾Îñ¤òÆÀ¤ë(_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µ¹æ,_¸µÇ¯¤ÎÀ¾Îñ), À¾Îñ¤¬Â¸ºß¤¹¤ë¸µ¹æ¤Î¸µÇ¯¤ÎÀ¾Îñ(_À¾Îñ,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ). ¸µ¹æ¸õÊä¤È¤½¤Î¸µÇ¯¤ÎÀ¾Îñ¤òÆÀ¤ë(_¸µ¹æ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µ¹æ,_¸µÇ¯¤ÎÀ¾Îñ) :- nth1(_nth1,_¸µ¹æ¤Ê¤é¤Ó,_¸µ¹æ), nth1(_nth1,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ). À¾Îñ¤¬Â¸ºß¤¹¤ë¸µ¹æ¤Î¸µÇ¯¤ÎÀ¾Îñ(_À¾Îñ,_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó,_¸µÇ¯¤ÎÀ¾Îñ) :- append(L1,[_¸µÇ¯¤ÎÀ¾Îñ|L2],_¸µÇ¯¤ÎÀ¾Îñ¤Ê¤é¤Ó), forall(member(N,L1),N < _À¾Îñ), forall(member(N,L2),N > _À¾Îñ). ǯ¹æ¤òÆÀ¤ë(_À¾Îñ,_¸µ¹æ,_¸µÇ¯¤ÎÀ¾Îñ,_ǯ¹æ) :- N is _À¾Îñ - _¸µÇ¯¤ÎÀ¾Îñ + 1, ÏÂǯɽ¸½(N,_ÏÂǯ), atomic_list_concat([_¸µ¹æ,_ÏÂǯ],_ǯ¹æ). ÏÂǯɽ¸½(N,_ÏÂǯ) :- 'Æó½½Ì¤Ëþ¤ÎÏÂǯɽ¸½'(N,_ÏÂǯ). ÏÂǯɽ¸½(N,_ÏÂǯ) :- 'Æó½½°Ê¾å¤ÎÏÂǯɽ¸½'(N,_ÏÂǯ). 'Æó½½Ì¤Ëþ¤ÎÏÂǯɽ¸½'(N,_ÏÂǯ) :- between(1,19,N), nth0(N,['',¸µÇ¯,Æóǯ,»°Ç¯,»Íǯ,¸Þǯ,ϻǯ,¼·Ç¯,Ȭǯ,¶åǯ,½½Ç¯,½½°ìǯ,½½Æóǯ,½½»°Ç¯,½½»Íǯ,½½¸Þǯ,½½Ï»Ç¯,½½¼·Ç¯,½½È¬Ç¯,½½¶åǯ],_ÏÂǯ). 'Æó½½°Ê¾å¤ÎÏÂǯɽ¸½'(N,_ÏÂǯ) :- N >= 20, 'Æó½½°Ê¾å¤Î½½¤Î°Ì¡¢°ì¤Î°Ì'(N,_½½¤Î°Ì,_°ì¤Î°Ì), atomic_list_concat([_½½¤Î°Ì,½½,_°ì¤Î°Ì,ǯ],_ÏÂǯ). 'Æó½½°Ê¾å¤Î½½¤Î°Ì¡¢°ì¤Î°Ì'(N,_½½¤Î°Ì,_°ì¤Î°Ì) :- N_1 is N // 10, N_2 is N mod 10, nth0(N_1,['',°ì,Æó,»°,»Í,¸Þ,Ï»,¼·,Ȭ,¶å],_½½¤Î°Ì), nth0(N_2,['',°ì,Æó,»°,»Í,¸Þ,Ï»,¼·,Ȭ,¶å],_°ì¤Î°Ì). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/841 # # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # # [1] ¼ø¶Èñ¸µ¡§ ²ÝÂê # [2] ÌäÂêʸ # # 1.¡¡10*10(=100)¤ÎÎΰè¤Ë¡¢¥é¥ó¥À¥à¤Ë30¸Ä¤ÎÅÀ¤òÇÛÃÖ¤¹¤ë # 2.¡¡¥é¥ó¥À¥à¤Ë2ÅÀ A, B ¤òÁª¤Ö # 3. A¤«¤éB¤Þ¤Ç¡¢µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư¤¬²Äǽ¤«Èݤ«È½Äꤻ¤è # # '1.¡¡10*10(=100)¤ÎÎΰè¤Ë¡¢¥é¥ó¥À¥à¤Ë30¸Ä¤ÎÅÀ¤òÇÛÃÖ¤¹¤ë 2.¡¡¥é¥ó¥À¥à¤Ë2ÅÀ A, B ¤òÁª¤Ö 3. A¤«¤éB¤Þ¤Ç¡¢µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư¤¬²Äǽ¤«Èݤ«È½Äꤻ¤è' :- '1.¡¡10*10(=100)¤ÎÎΰè¤Ë¡¢¥é¥ó¥À¥à¤Ë30¸Ä¤ÎÅÀ¤òÇÛÃÖ¤¹¤ë'(L), '2.¡¡¥é¥ó¥À¥à¤Ë2ÅÀ A, B ¤òÁª¤Ö'(L,_A,_B), '3. A¤«¤éB¤Þ¤Ç¡¢µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư¤¬²Äǽ¤«Èݤ«È½Äꤻ¤è'(L,_A,_B). '1.¡¡10*10(=100)¤ÎÎΰè¤Ë¡¢¥é¥ó¥À¥à¤Ë30¸Ä¤ÎÅÀ¤òÇÛÃÖ¤¹¤ë'(L) :- fidnall((_x,_y),( between(1,30,_), _x is (random(10000) + 1) / 1000, _y is (random(10000) + 1) / 1000), L). '2.¡¡¥é¥ó¥À¥à¤Ë2ÅÀ A, B ¤òÁª¤Ö'(L,_A,_B) :- ¥é¥ó¥À¥à¤ËÅÀ¤òÁª¤Ö(L,_A), ¥é¥ó¥À¥à¤ËÅÀ¤òÁª¤Ö(L,_B), \+(_A = _B),!. '2.¡¡¥é¥ó¥À¥à¤Ë2ÅÀ A, B ¤òÁª¤Ö'(L,_A,_B) :- '2.¡¡¥é¥ó¥À¥à¤Ë2ÅÀ A, B ¤òÁª¤Ö'(L,_A,_B). ¥é¥ó¥À¥à¤ËÅÀ¤òÁª¤Ö(L,_ÅÀ) :- R is random(30), nth0(R,L,_ÅÀ). '3. A¤«¤éB¤Þ¤Ç¡¢µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư¤¬²Äǽ¤«Èݤ«È½Äꤻ¤è'(L,(_x1,_y1),(_x2,_y2)) :- µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư²Äǽ(L,(_x,_y),(_x1,_y1),(_x2,_y2)), writef('ÅÀ(%t,%t)¤Ç²Äǽ¤Ç¤¹\n',[_x,_y]). '3. A¤«¤éB¤Þ¤Ç¡¢µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư¤¬²Äǽ¤«Èݤ«È½Äꤻ¤è'(_,_,_) :- write('²Äǽ¤ÊÅÀ¤Ï¤¢¤ê¤Þ¤»¤ó\n'). µ÷Î¥10°ÊÆâ¤Ë¤¢¤ëÅÀ¤ò·Ðͳ¤·°Üư²Äǽ(L,(_x,_y),(_x1,_y1),(_x2,_y2)) :- ·Ðͳ¤¹¤ëÅÀ¸õÊä¤òÆÀ¤ë(L,(_x,_y),(_x1,_y1),(_x2,_y2)), µ÷Î¥10°ÊÆâ¤Ë¤¢¤ë((_x,_y),(_x1,_y1),(_x2,_y2)). ·Ðͳ¤¹¤ëÅÀ¸õÊä¤òÆÀ¤ë(L,(_x,_y),(_x1,_y1),(_x2,_y2)) :- member((_x,_y),L), \+((_x,_y)=(_x1,_y1)), \+((_x,_y)=(_X2,_y2)). µ÷Î¥10°ÊÆâ¤Ë¤¢¤ë((_x,_y),(_x1,_y1),(_x2,_y2)) :- sqrt((_x - _x1) * (_x - _x1) + (_y - _y1) * (_y - _y1)) + sqrt((_x - _x2) * (_x - _x2) + (_y - _y2) * (_y - _y21)) =< 10.0. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/868 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°´ðÁÃI # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ȯŸ²ÝÂê 13..1 # ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à¤ò¼Â¸½¤¹¤ë¥×¥í¥°¥é¥à¤ò¹Í¤¨¤ë¡£ # »á̾¡¤¸ýºÂÈֹ桤°Å¾ÚÈֹ桤Ͷâ»Ä¹â¤òÍ×ÁǤȤ¹¤ë¹½Â¤ÂΤòÀë¸À¤·¡¤ 512¿Íʬ¤Î¸ýºÂ¤¬ºîÀ®²Äǽ¤Ê¤è¤¦¤Ë¤»¤è¡¥¤Þ¤¿¡¤½é´üÃͤȤ·¤Æ¼¡¤Î¤è¤¦¤Ë¹½Â¤ÂÎ¤ÎÆâÍÆ¤òÀßÄꤻ¤è¡¥ # Ω̿ÂÀϺ¤Î¸ýºÂÈÖ¹æ¤Ï1234¤Ç¡¤Í¶â»Ä¹â¤ò1,234,560±ß¤ËÀßÄꤹ¤ë¡¥ # ÌîÏ©²Ö»Ò¤Î¸ýºÂÈÖ¹æ¤Ï5678¤Ç¡¤Í¶â»Ä¹â¤ò987,600±ß¤ËÀßÄꤹ¤ë¡¥ # °á³Þ°ìϺ¤Î¸ýºÂÈÖ¹æ¤Ï9012¤Ç¡¤Í¶â»Ä¹â¤ò538,600±ß¤ËÀßÄꤹ¤ë¡¥ # °Å¾ÚÈÖ¹æ¤Ï¸ýºÂÈÖ¹æ¤Ë1111¤ò­¤·¤Æ10000¤Ç³ä¤Ã¤¿Í¾¤ê¤ËÀßÄꤹ¤ë¡¥ # ¤³¤³¤Ç°Å¾ÚÈÖ¹æ¤Ï¡¢¸ýºÂÈÖ¹æ¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¡¢¤½¤ì¤Ë1111¤ò­¤·¤Æ10000¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤ÆÀßÄꤹ¤ë¤³¤È¡¥ # ¾åµ­¤ÎÊýË¡¤Ç½é´üÃͤòÀßÄꤷ¡¢ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¢¤Ò¤È¤êʬ¤ÎͶâ»Ä¹â¤òɽ¼¨¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤Æ¡¢¤³¤ì¤ò·«¤êÊÖ¤·»È¤Ã¤Æ3¿Í¤ÎͶâ»Ä¹â¤ò½ÐÎϤ¹¤ë¤³¤È¡¥ # % ./initAccount Ͷâ»Ä¹â¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡¥ # Ω̿ÂÀϺ (1234) 1234560 ±ß # ÌîÏ©²Ö»Ò (5678) 987600 ±ß # °á³Þ°ìϺ (9012) 538600 ±ß # % # :- dynamic([¸ýºÂ̾µÁ/2,°Å¾ÚÈÖ¹æ/2,¸ýºÂ»Ä¹â/2]). 'ȯŸ²ÝÂê 13..1 ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à¤ò¼Â¸½¤¹¤ë' :- 'ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à'. 'ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à' :- ¸ýºÂÈÖ¹æ¤òÆÀ¤ë(_¸ýºÂÈÖ¹æ), 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(_¸ýºÂÈÖ¹æ), fail. 'ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à' :- 'ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à'. ¸ýºÂÈÖ¹æ¤òÆÀ¤ë(_¸ýºÂÈÖ¹æ) :- À°¿ô¤òÆÀ¤ë('¸ýºÂÈÖ¹æ : ',between(0,9999999,_¸ýºÂÈÖ¹æ),_¸ýºÂÈÖ¹æ), ¸ýºÂ̾µÁ(_¸ýºÂÈÖ¹æ,_¸ýºÂ̾µÁ), writef('%t ÍͤǤ¹¤Í\n',[_¸ýºÂ̾µÁ]), À°¿ô¤òÆÀ¤ë('°Å¾ÚÈÖ¹æ : ',between(0,9999,_°Å¾ÚÈÖ¹æ),_°Å¾ÚÈÖ¹æ), °Å¾ÚÈÖ¹æ(_¸ýºÂÈÖ¹æ,_°Å¾ÚÈÖ¹æ),!. 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(_¸ýºÂÈÖ¹æ) :- ¥á¥Ë¥å¡¼É½¼¨, À°¿ô¤òÆÀ¤ë('0-4¤Î¿ô»ú',between(0,3,_ÁªÂò),_ÁªÂò), 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(_ÁªÂò,_¸ýºÂÈÖ¹æ). ¥á¥Ë¥å¡¼É½¼¨ :- writef('\n0..½ªÎ»\n\n1..Æþ¶â\n2..½Ð¶â\n3..»Ä¹â»²¾È\n\n'). 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(0,_) :- !. 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(1,_¸ýºÂÈÖ¹æ) :- Æþ¶â(_¸ýºÂÈÖ¹æ). 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(2,_¸ýºÂÈÖ¹æ) :- ½Ð¶â(_¸ýºÂÈÖ¹æ). 'Æþ¶â/½Ð¶â/»Ä¹â»²¾È'(3,_¸ýºÂÈÖ¹æ) :- »Ä¹â»²¾È(_¸ýºÂÈÖ¹æ). Æþ¶â(_¸ýºÂÈÖ¹æ) :- write('»æÊ¾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), »æÊ¾¤ò¿ô¤¨¤ë(_ÆþÎϳÛ,Àµ¾ï½ªÎ»), writef('%t ±ßÆþÎϤµ¤ì¤Þ¤·¤¿ : \n',[_ÆþÎϳÛ]), ¸ýºÂ»Ä¹â¤ÎÆþ¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_Æþ¶â³Û). ¸ýºÂ»Ä¹â¤ÎÆþ¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_Æþ¶â³Û) :- retract(¸ýºÂ»Ä¹â(_¸ýºÂÈÖ¹æ,_¸ýºÂ»Ä¹â)), _¹¹¿·¤µ¤ì¤¿¸ýºÂ»Ä¹â is _¸ýºÂ»Ä¹â + _Æþ¶â³Û, assertz(¸ýºÂ»Ä¹â(_¸ýºÂÈÖ¹æ,_¹¹¿·¤µ¤ì¤¿¸ýºÂ»Ä¹â)). ½Ð¶â(_¸ýºÂÈÖ¹æ) :- À°¿ô¤òÆÀ¤ë('½Ð¶â³Û¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : ',true,_½Ð¶â³Û), '¿ÇÃÇ:: ½Ð¶â³Û¤ÎÆþÎÏ'(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û), »æÊ¾¤ò½ÐÎϤ·¤Æ¸ýºÂ»Ä¹â¤Î½Ð¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û),!. ½Ð¶â(_¸ýºÂÈÖ¹æ) :- ½Ð¶â(_¸ýºÂÈÖ¹æ). '¿ÇÃÇ:: ½Ð¶â³Û¤ÎÆþÎÏ'(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û) :- ¸ýºÂ»Ä¹â(_¸ýºÂÈÖ¹æ,_¸ýºÂ»Ä¹â), _¸ýºÂ»Ä¹â >= _½Ð¶â³Û,!. '¿ÇÃÇ:: ½Ð¶â³Û¤ÎÆþÎÏ'(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û) :- writef('ÆþÎϤµ¤ì¤¿½Ð¶â³Û%t¤Ï»Ä¹âÉÔ­¤Ç¤¹\nºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n',[_½Ð¶â³Û]), fail. »æÊ¾¤ò½ÐÎϤ·¤Æ¸ýºÂ»Ä¹â¤Î½Ð¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û) :- »æÊ¾¤ò½ÐÎϤ·¤Æ(_½Ð¶â³Û,Àµ¾ï½ªÎ»), ¸ýºÂ»Ä¹â¤Î½Ð¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û),!. »æÊ¾¤ò½ÐÎϤ·¤Æ¸ýºÂ»Ä¹â¤Î½Ð¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û) :- write('¸½ºß»æÊ¾¤Î½ÐÎϤ¬¤Ç¤­¤Þ¤»¤ó¡£\n¤Ê¤ª¡¢¸ýºÂ»Ä¹â¤ÏÊѹ¹¤´¤¶¤¤¤Þ¤»¤ó\n'), fail. ¸ýºÂ»Ä¹â¤Î½Ð¶â¹¹¿·(_¸ýºÂÈÖ¹æ,_½Ð¶â³Û) :- retract(¸ýºÂ»Ä¹â(_¸ýºÂÈÖ¹æ,_¸ýºÂ»Ä¹â)), _¹¹¿·¤µ¤ì¤¿¸ýºÂ»Ä¹â is _¸ýºÂ»Ä¹â - _½Ð¶â³Û, assertz(¸ýºÂ»Ä¹â(_¸ýºÂÈÖ¹æ,_¹¹¿·¤µ¤ì¤¿¸ýºÂ»Ä¹â)). »Ä¹â»²¾È(_¸ýºÂÈÖ¹æ) :- ¸Ä¿Í¸ýºÂ»Ä¹â¤Îɽ¼¨(_¸ýºÂÈÖ¹æ). »æÊ¾¤ò¿ô¤¨¤ë(_ÆþÎϳÛ,Àµ¾ï½ªÎ»). »æÊ¾¤ò½ÐÎϤ·¤Æ(_½Ð¶â³Û,Àµ¾ï½ªÎ»). 'Ω̿ÂÀϺ¤Î¸ýºÂÈÖ¹æ¤Ï1234¤Ç¡¤Í¶â»Ä¹â¤ò1,234,560±ß¤ËÀßÄꤹ¤ë¡¥' :- assertz(¸ýºÂ̾µÁ(1234,Ω̿ÂÀϺ)), °Å¾ÚÈÖ¹æ(1234,_°Å¾ÚÈÖ¹æ), assertz(°Å¾ÚÈÖ¹æ(1234,_°Å¾ÚÈÖ¹æ)), assertz(¸ýºÂ»Ä¹â(1234,1234560)). 'ÌîÏ©²Ö»Ò¤Î¸ýºÂÈÖ¹æ¤Ï5678¤Ç¡¤Í¶â»Ä¹â¤ò987,600±ß¤ËÀßÄꤹ¤ë¡¥' :- assertz(¸ýºÂ̾µÁ(5678,ÌîÏ©²Ö»Ò)), °Å¾ÚÈÖ¹æ(5678,_°Å¾ÚÈÖ¹æ), assertz(°Å¾ÚÈÖ¹æ(5678,_°Å¾ÚÈÖ¹æ)), assertz(¸ýºÂ»Ä¹â(5678,987600)). '°á³Þ°ìϺ¤Î¸ýºÂÈÖ¹æ¤Ï9012¤Ç¡¤Í¶â»Ä¹â¤ò538,600±ß¤ËÀßÄꤹ¤ë¡¥' :- assertz(¸ýºÂ̾µÁ(9012,°á³Þ°ìϺ)), °Å¾ÚÈÖ¹æ(9012,_°Å¾ÚÈÖ¹æ), assertz(°Å¾ÚÈÖ¹æ(9012,_°Å¾ÚÈÖ¹æ)), assertz(¸ýºÂ»Ä¹â(9012,538600)). '°Å¾ÚÈÖ¹æ¤Ï¸ýºÂÈÖ¹æ¤Ë1111¤ò­¤·¤Æ10000¤Ç³ä¤Ã¤¿Í¾¤ê¤ËÀßÄꤹ¤ë¡¥ ¤³¤³¤Ç°Å¾ÚÈÖ¹æ¤Ï¡¢¸ýºÂÈÖ¹æ¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¡¢¤½¤ì¤Ë1111¤ò­¤·¤Æ10000¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤ÆÀßÄꤹ¤ë¤³¤È¡¥'(_¸ýºÂÈÖ¹æ,_°Å¾ÚÈÖ¹æ) :- °Å¾ÚÈÖ¹æ(_¸ýºÂÈÖ¹æ,_°Å¾ÚÈÖ¹æ). °Å¾ÚÈÖ¹æ(_¸ýºÂÈÖ¹æ,_°Å¾ÚÈÖ¹æ) :- _°Å¾ÚÈÖ¹æ is (_¸ýºÂÈÖ¹æ + 1111) mod 10000. '¾åµ­¤ÎÊýË¡¤Ç½é´üÃͤòÀßÄꤷ¡¢ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¢¤Ò¤È¤êʬ¤ÎͶâ»Ä¹â¤òɽ¼¨¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤Æ¡¢¤³¤ì¤ò·«¤êÊÖ¤·»È¤Ã¤Æ3¿Í¤ÎͶâ»Ä¹â¤ò½ÐÎϤ¹¤ë¤³¤È¡¥' :- 'Ω̿ÂÀϺ¤Î¸ýºÂÈÖ¹æ¤Ï1234¤Ç¡¤Í¶â»Ä¹â¤ò1,234,560±ß¤ËÀßÄꤹ¤ë¡¥', 'ÌîÏ©²Ö»Ò¤Î¸ýºÂÈÖ¹æ¤Ï5678¤Ç¡¤Í¶â»Ä¹â¤ò987,600±ß¤ËÀßÄꤹ¤ë¡¥', '°á³Þ°ìϺ¤Î¸ýºÂÈÖ¹æ¤Ï9012¤Ç¡¤Í¶â»Ä¹â¤ò538,600±ß¤ËÀßÄꤹ¤ë¡¥', ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë. ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë :- ¸ýºÂ̾µÁ(_¸ýºÂÈÖ¹æ,_), ¸Ä¿Í¸ýºÂ»Ä¹â¤Îɽ¼¨(_¸ýºÂÈÖ¹æ), fail. ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë. ¸Ä¿Í¸ýºÂ»Ä¹â¤Îɽ¼¨(_¸ýºÂÈÖ¹æ) :- ¸ýºÂ̾µÁ(_¸ýºÂÈÖ¹æ,_¸ýºÂ̾µÁ), ¸ýºÂ»Ä¹â(_¸ýºÂÈÖ¹æ,_¸ýºÂ»Ä¹â), writef('%t (%t) %t ±ß\n',[_¸ýºÂ̾µÁ,_¸ýºÂÈÖ¹æ,_¸ýºÂ»Ä¹â]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 161ÂåÌÜ #839 # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # Ǥ°Õ¤Î0¡Án¤ÎÀ°¿ô¤«¤é¡¢½ÅÊ£¤òµö¤·¤Æm¸Ä¤ÎÀ°¿ô¤òÁª¤Ó½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì¡£ # 'Ǥ°Õ¤Î0¡Án¤ÎÀ°¿ô¤«¤é¡¢½ÅÊ£¤òµö¤·¤Æm¸Ä¤ÎÀ°¿ô¤òÁª¤Ó½ÐÎϤ¹¤ë'(_m¸Ä,_n) :- 'Ǥ°Õ¤Î0¡Án¤ÎÀ°¿ô¤«¤é¡¢½ÅÊ£¤òµö¤·¤Æm¸Ä¤ÎÀ°¿ô¤òÁª¤Ó'(_m¸Ä,_À°¿ô¤Ê¤é¤Ó), ½ÐÎϤ¹¤ë(_À°¿ô¤Ê¤é¤Ó). 'Ǥ°Õ¤Î0¡Án¤ÎÀ°¿ô¤«¤é¡¢½ÅÊ£¤òµö¤·¤Æm¸Ä¤ÎÀ°¿ô¤òÁª¤Ó'(_m¸Ä,_À°¿ô¤Ê¤é¤Ó) :- findall(_À°¿ô,( m¸Ä¤Î(_m¸Ä), 'Ǥ°Õ¤Î0¡Án¤ÎÀ°¿ô¤«¤é'(_n,_À°¿ô)),_À°¿ô¤Ê¤é¤Ó). m¸Ä¤Î(_m¸Ä) :- between(1,_m¸Ä,_). 'Ǥ°Õ¤Î0¡Án¤ÎÀ°¿ô¤«¤é'(_n,_À°¿ô) :- _À°¿ô is random(_n + 1). ½ÐÎϤ¹¤ë(_À°¿ô¤Ê¤é¤Ó) :- forall(member(_À°¿ô,_À°¿ô¤Ê¤é¤Ó),writef('%t\n',[_À°¿ô])). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/648 # # [1] ¼ø¶Èñ¸µ¡§C¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ²¼µ­¤Î¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡Ê¿ô»ú¤ÎÍåÎó¡Ë¤òÆÉ¤ß¹þ¤ß¡¢Ê¤ÓÂØ¤¨ÊýË¡¡Ê¾º½ç/¹ß½ç¡Ë¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(out.txt) # ¤Ø½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # http://ime.nu/www1.axfc.net/uploader/He/so/280605 # °Ê²¼¼Â¹Ô·ë²Ì # # ʤÓÂØ¤¨ÊýË¡¤ò¤·¤Æ¤¤¤·¤Æ¤¯¤À¤µ¤¤¡Ê1:¾º½ç¡¢2:¹ß½ç) # 1 # # ʤÓÂØ¤¨¤¿¥Õ¥¡¥¤¥ë¤Ø½ÐÎϤ·¤Þ¤·¤¿¡£ # # cat out.txt ¢«cat¥³¥Þ¥ó¥É¤ÇÃæ¿È³Îǧ # 1 # 3 # 3 # 3 # '¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡Ê¿ô»ú¤ÎÍåÎó¡Ë¤òÆÉ¤ß¹þ¤ß¡¢Ê¤ÓÂØ¤¨ÊýË¡¡Ê¾º½ç/¹ß½ç¡Ë¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(out.txt)¤Ø½ÐÎϤ¹¤ë'(_¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾) :- '¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡Ê¿ô»ú¤ÎÍåÎó¡Ë¤òÆÉ¤ß¹þ¤ß'(_¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾,_¹Ô¤Ê¤é¤Ó), 'ʤÓÂØ¤¨ÊýË¡¡Ê¾º½ç/¹ß½ç¡Ë¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(out.txt)¤Ø½ÐÎϤ¹¤ë'(_¹Ô¤Ê¤é¤Ó). '¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡Ê¿ô»ú¤ÎÍåÎó¡Ë¤òÆÉ¤ß¹þ¤ß'(_¹Ô¤Ê¤é¤Ó) :- get_lines('input.txt',_¹Ô¤Ê¤é¤Ó). 'ʤÓÂØ¤¨ÊýË¡¡Ê¾º½ç/¹ß½ç¡Ë¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(out.txt)¤Ø½ÐÎϤ¹¤ë'(_¹Ô¤Ê¤é¤Ó) :- 'ʤÓÂØ¤¨ÊýË¡¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡Ê1:¾º½ç¡¢2:¹ß½ç)'(_ʤÓÂØ¤¨ÊýË¡), ʤÓÂØ¤¨(_ʤÓÂØ¤¨ÊýË¡,_¹Ô¤Ê¤é¤Ó,_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó), '»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(out.txt)¤Ø½ÐÎϤ¹¤ë'(_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó). 'ʤÓÂØ¤¨ÊýË¡¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡Ê1:¾º½ç¡¢2:¹ß½ç)'(_ʤÓÂØ¤¨ÊýË¡) :- write('ʤÓÂØ¤¨ÊýË¡¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡Ê1:¾º½ç¡¢2:¹ß½ç)'), À°¿ô¤òÆÀ¤ë('ʤÓÂØ¤¨ÊýË¡¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡Ê1:¾º½ç¡¢2:¹ß½ç)',between(1,2,N),N), ʤÓÂØ¤¨ÊýË¡(N,_ʤÓÂØ¤¨ÊýË¡). ʤÓÂØ¤¨ÊýË¡(1,¾º½ç). ʤÓÂØ¤¨ÊýË¡(2,¹ß½ç). ʤÓÂØ¤¨(¾º½ç,_¹Ô¤Ê¤é¤Ó,_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó) :- À°Îó(_¹Ô¤Ê¤é¤Ó,_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó). ʤÓÂØ¤¨(¹ß½ç,_¹Ô¤Ê¤é¤Ó,_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó) :- À°Îó(_¹Ô¤Ê¤é¤Ó,_ʤÓÂØ¤¨¤¿¾º½ç¹Ô¤Ê¤é¤Ó), reverse(_ʤÓÂØ¤¨¤¿¾º½ç¹Ô¤Ê¤é¤Ó,_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó). '»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(out.txt)¤Ø½ÐÎϤ¹¤ë'(_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó) :- put_lines('out.txt',_ʤÓÂØ¤¨¤¿¹Ô¤Ê¤é¤Ó). put_lines(_¥Õ¥¡¥¤¥ë̾,_¹Ô¤Ê¤é¤Ó) :- open(_¥Õ¥¡¥¤¥ë̾,write,Outstream), forall(nth1(_,_¹Ô¤Ê¤é¤Ó,_¹Ô),writef(Outstream,'%t\n',[_¹Ô])), close(Outstream). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/386 # # Æó¤Ä¤Î£²¡ß£³·¿¹ÔÎó¤ò # A¡á1.1¡¡-2.2¡¡0.9 # ¡¡-0.2¡¡ 2.7 0.3 # # B= 1.8 0.5 1.3 # -0.4 0.6 -0.3 # ¤ÈÄêµÁ¤¹¤ë¡£ # # ¤³¤ì¤é¤ÎÆó¤Ä¤Î¹ÔÎó¤ÎÀë¸À¡¢½é´ü²½¤·¡¢C¢áA+B¡¡C¢áA-B¤ò»»½Ð¤·¤Æ # £²¡ß£³·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢¹ÔÎóC¤ÈD¤Ï¸ÇÄêĹ # ÇÛÎó¤È¤·¡¢´Ø¿ôÆâ¤Î±é»»¤ò¹Ô¤¦¤³¤È # # ¾åµ­¤ÎÌäÂê¤ÈƱ¤¸¤è¤¦¤Ë¹ÔÎóA¡¢B¤òÍѤ¤¤Æ¡¢ÀÑC¢áAB£ô¡¡¤ò»»½Ð¤·¡¢£²¡ß£²·¿¤Îɽ # ·Á¼°¤Ç½ÐÎϤ»¤è¡£¤¿¤À¤·¡¢B¤ÎžÃÖ¹ÔÎó¡¢Bt¤Ï¥×¥í¥°¥é¥àÃæ¤ËľÀܵ­½Ò¤¹¤ë¤Î¤Ç¤Ï # ¤Ê¤¯¡¢B¤è¤êºîÀ®¤¹¤ë¤³¤È¡£¤Þ¤¿¡¢C¤Ïnew±é»»»Ò¤Ë¤è¤ê¥á¥â¥ê¤ò³ÎÊݤ·¡¢´Ø¿ôÆâ¤Ç # ±é»»¤ò¹Ô¤¦¤³¤È¡£ # # # ¤À¤ì¤«¤³¤Î¥×¥í¥°¥é¥à¤ª¤·¤¨¤Æ¤¯¤À¤µ¤¤m(_ _)m # # '¹ÔÎóA¡¢B¤òÍѤ¤¤Æ¡¢ÀÑC¢áAB£ô¡¡¤ò»»½Ð¤·¡¢£²¡ß£²·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ»¤è¡£¤¿¤À¤·¡¢B¤ÎžÃÖ¹ÔÎó¡¢Bt¤Ï¥×¥í¥°¥é¥àÃæ¤ËľÀܵ­½Ò¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢B¤è¤êºîÀ®¤¹¤ë¤³¤È¡£'(A,B,C) :- žÃÖ(B,Bt), ¹ÔÎó¤Î³Ý»»_1(A,Bt,C), '£²¡ß£²·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ»¤è'(C). žÃÖ([[]|_],[]) :- !. žÃÖ(L,[L1|R2]) :- žÃÖ(L,L2,L1), žÃÖ(L2,R2) . žÃÖ([],[],[]) :- !. žÃÖ([[A|R1]|R2],[R1|R3],[A|R4]) :- žÃÖ(R2,R3,R4). ¹ÔÎó¤Î³Ý»»_1([],_,[]) :- !. ¹ÔÎó¤Î³Ý»»_1([A|R1],L,[S1|R3]) :- ¹ÔÎó¤Î³Ý»»_2(A,L,S1), ¹ÔÎó¤Î³Ý»»_1(R1,L,R3). ¹ÔÎó¤Î³Ý»»_2(_,[],[]) :- !. ¹ÔÎó¤Î³Ý»»_2(A,[B|R2],[C|R3]) :- ¹ÔÎó¤Î³Ý»»_3(A,B,C), ¹ÔÎó¤Î³Ý»»_2(A,R2,R3). ¹ÔÎó¤Î³Ý»»_3([],[],0) :- !. ¹ÔÎó¤Î³Ý»»_3([A|R1],[B|R2],S) :- ʬ¿ô¤ò´Þ¤à³Ý»»(A,B,S1), ¹ÔÎó¤Î³Ý»»_3(R1,R2,S2), ʬ¿ô¤ò´Þ¤à²Ã»»(S1,S2,S),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A1 / A2,B1 / B2,C) :- S1 is A1 * B2 + A2 * B1, S2 is A2 * B2, Ìóʬ(S1 / S2,C),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A1 / A2,B,C) :- S1 is A1 + A2 * B, Ìóʬ(S1 / A2,C),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A,B1 / B2,C) :- S1 is B1 + B2 * A, Ìóʬ(S1 / B2,C),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A,B,C) :- C is A + B. Ìóʬ(B / A,X) :- ºÇÂç¸øÌó¿ô(B,A,C), _ʬ»Ò is B // C, _ʬÊì is A // C, Ìóʬ¤ÎÆó(_ʬ»Ò,_ʬÊì,X),!. Ìóʬ¤ÎÆó(0,_,0) :- !. Ìóʬ¤ÎÆó(0.0,_,0) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,1,_ʬ»Ò) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,1.0,_ʬ»Ò) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,_ʬÊì,_ʬ»Ò / _ʬÊì). ºÇÂç¸øÌó¿ô(M,N,X) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X),!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X). '£²¡ß£²·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ»¤è'(LL) :- 'M¡ßN¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(2,2,LL). 'M¡ßN¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(M,N,LL) :- 'NÎ󥫥ó¥Þ¶èÀÚ¤ê¹Ôɽ¼¨·Á¼°'(N,_¹Ôɽ¼¨·Á¼°), nth1(_nth1,LL,L), writef(_¹Ôɽ¼¨·Á¼°,L), _nth1 = M. 'NÎ󥫥ó¥Þ¶èÀÚ¤ê¹Ôɽ¼¨·Á¼°'(N,_¹Ôɽ¼¨·Á¼°) :- findall('%t',between(1,N,_),PL), atomic_list_concat(PL,',',S1), atom_concat(S1,'\n',_¹Ôɽ¼¨·Á¼°). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/386 # # Æó¤Ä¤Î£²¡ß£³·¿¹ÔÎó¤ò # A¡á1.1¡¡-2.2¡¡0.9 # ¡¡-0.2¡¡ 2.7 0.3 # # B= 1.8 0.5 1.3 # -0.4 0.6 -0.3 # ¤ÈÄêµÁ¤¹¤ë¡£ # # ¤³¤ì¤é¤ÎÆó¤Ä¤Î¹ÔÎó¤ÎÀë¸À¡¢½é´ü²½¤·¡¢C¢áA+B¡¡C¢áA-B¤ò»»½Ð¤·¤Æ # £²¡ß£³·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢¹ÔÎóC¤ÈD¤Ï¸ÇÄêĹ # ÇÛÎó¤È¤·¡¢´Ø¿ôÆâ¤Î±é»»¤ò¹Ô¤¦¤³¤È # # ¾åµ­¤ÎÌäÂê¤ÈƱ¤¸¤è¤¦¤Ë¹ÔÎóA¡¢B¤òÍѤ¤¤Æ¡¢ÀÑC¢áAB£ô¡¡¤ò»»½Ð¤·¡¢£²¡ß£²·¿¤Îɽ # ·Á¼°¤Ç½ÐÎϤ»¤è¡£¤¿¤À¤·¡¢B¤ÎžÃÖ¹ÔÎó¡¢Bt¤Ï¥×¥í¥°¥é¥àÃæ¤ËľÀܵ­½Ò¤¹¤ë¤Î¤Ç¤Ï # ¤Ê¤¯¡¢B¤è¤êºîÀ®¤¹¤ë¤³¤È¡£¤Þ¤¿¡¢C¤Ïnew±é»»»Ò¤Ë¤è¤ê¥á¥â¥ê¤ò³ÎÊݤ·¡¢´Ø¿ôÆâ¤Ç # ±é»»¤ò¹Ô¤¦¤³¤È¡£ # # # ¤À¤ì¤«¤³¤Î¥×¥í¥°¥é¥à¤ª¤·¤¨¤Æ¤¯¤À¤µ¤¤m(_ _)m # # 'Æó¤Ä¤Î£²¡ß£³·¿¹ÔÎó¤ò A¡á1.1¡¡-2.2¡¡0.9 ¡¡-0.2¡¡ 2.7 0.3 B= 1.8 0.5 1.3 -0.4 0.6 -0.3 ¤ÈÄêµÁ¤¹¤ë¡£ ¤³¤ì¤é¤ÎÆó¤Ä¤Î¹ÔÎó¤ÎÀë¸À¡¢½é´ü²½¤·¡¢C¢áA+B¡¡C¢áA-B¤ò»»½Ð¤·¤Æ £²¡ß£³·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë' :- ¤³¤ì¤é¤ÎÆó¤Ä¤Î¹ÔÎó¤ÎÀë¸À(A,B), 'C¢áA+B¡¡C¢áA-B¤ò»»½Ð¤·¤Æ'(A,B,C), '£²¡ß£³·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(C), '£²¡ß£³·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(D). ¤³¤ì¤é¤ÎÆó¤Ä¤Î¹ÔÎó¤ÎÀë¸À(A,B) :- A = [[1.1,-2.2,0.9],[-0.2,2.7,0.3]], B = [[1.8,0.5,1.3],[-0.4,0.6,-0.3]]. 'C¢áA+B¡¡C¢áA-B¤ò»»½Ð¤·¤Æ'(A,B,C) :- ¹ÔÎó¤ÎÏÂ(A,B,C), ¹ÔÎó¤Îº¹(A,B,D). ¹ÔÎó¤ÎÏÂ([],[],[]). ¹ÔÎó¤ÎÏÂ([L1|R1],[L2|R2],[L3|R3]) :- ¹Ô¤ÎÏÂ(L1,L2,L3), ¹ÔÎó¤ÎÏÂ(R1,R2,R3). ¹Ô¤ÎÏÂ([],[],[]). ¹Ô¤ÎÏÂ([A|R1],[B|R2],[C|R3]) :- ʬ¿ô¤ò´Þ¤à²Ã»»(A,B,C), ¹Ô¤ÎÏÂ(R1,R2,R3). ¹ÔÎó¤Îº¹([],[],[]). ¹ÔÎó¤Îº¹([L1|R1],[L2|R2],[L3|R3]) :- ¹Ô¤Îº¹(L1,L2,L3), ¹ÔÎó¤Îº¹(R1,R2,R3). ¹Ô¤Îº¹([],[],[]). ¹Ô¤Îº¹([A|R1],[B|R2],[C|R3]) :- B_1 is B * (-1). ʬ¿ô¤ò´Þ¤à²Ã»»(A,B_1,C), ¹Ô¤Îº¹(R1,R2,R3). ʬ¿ô¤ò´Þ¤à²Ã»»(A1 / A2,B1 / B2,C) :- S1 is A1 * B2 + A2 * B1, S2 is A2 * B2, Ìóʬ(S1 / S2,C),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A1 / A2,B,C) :- S1 is A1 + A2 * B, Ìóʬ(S1 / A2,C),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A,B1 / B2,C) :- S1 is B1 + B2 * A, Ìóʬ(S1 / B2,C),!. ʬ¿ô¤ò´Þ¤à²Ã»»(A,B,C) :- C is A + B. Ìóʬ(B / A,X) :- ºÇÂç¸øÌó¿ô(B,A,C), _ʬ»Ò is B // C, _ʬÊì is A // C, Ìóʬ¤ÎÆó(_ʬ»Ò,_ʬÊì,X),!. Ìóʬ¤ÎÆó(0,_,0) :- !. Ìóʬ¤ÎÆó(0.0,_,0) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,1,_ʬ»Ò) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,1.0,_ʬ»Ò) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,_ʬÊì,_ʬ»Ò / _ʬÊì). ºÇÂç¸øÌó¿ô(M,N,X) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X),!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X). '£²¡ß£³·¿¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(LL) :- 'M¡ßN¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(2,3,LL). 'M¡ßN¤Îɽ·Á¼°¤Ç½ÐÎϤ¹¤ë'(M,N,LL) :- 'NÎ󥫥ó¥Þ¶èÀÚ¤ê¹Ôɽ¼¨·Á¼°'(N,_¹Ôɽ¼¨·Á¼°), nth1(_nth1,LL,L), writef(_¹Ôɽ¼¨·Á¼°,L), _nth1 = M. 'NÎ󥫥ó¥Þ¶èÀÚ¤ê¹Ôɽ¼¨·Á¼°'(N,_¹Ôɽ¼¨·Á¼°) :- findall('%t',between(1,N,_),PL), atomic_list_concat(PL,',',S1), atom_concat(S1,'\n',_¹Ôɽ¼¨·Á¼°). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349545643/864 # # # 0 ~ 64 ¤Î 65 ¸Ä¤Î¿ô»ú¤ò # °Ê²¼¤Î¤è¤¦¤Ê¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë¾ì¹ç # ³Æ¸À¸ì¤Ç¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡© # ÊØµ¹¾å¤½¤ì¤¾¤ì¤Î¿ô»ú¤Î·¿¤Ï int ¤È¤·¤Æ¤¯¤À¤µ¤¤ # # 0 1 2 3 4 # 5 6 7 8 # 9 10 11 12 # 13 14 15 16 17 # 18 19 20 21 # 22 23 24 25 # 26 27 28 29 30 # 31 32 33 34 # 35 36 37 38 # 39 40 41 42 43 # 44 45 46 47 # 48 49 50 51 # 52 53 54 55 56 # 57 58 59 60 # 61 62 63 64 '0 ~ 64 ¤Î 65 ¸Ä¤Î¿ô»ú¤ò °Ê²¼¤Î¤è¤¦¤Ê¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë¾ì¹ç ³Æ¸À¸ì¤Ç¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡© ÊØµ¹¾å¤½¤ì¤¾¤ì¤Î¿ô»ú¤Î·¿¤Ï int ¤È¤·¤Æ¤¯¤À¤µ¤¤ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64' :- '0 ~ 64 ¤Î 65 ¸Ä¤Î¿ô»ú¤ò'(_¿ô¤Ê¤é¤Ó), ¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë(_¿ô¤Ê¤é¤Ó,[5,4,4]). '0 ~ 64 ¤Î 65 ¸Ä¤Î¿ô»ú¤ò'(_¿ô¤Ê¤é¤Ó) :- findall(N,between(0,64,N),_¿ô¤Ê¤é¤Ó). ¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë(_¿ô¤Ê¤é¤Ó,[_¸Ä¿ô|_»Ä¤êɽ¼¨¥Ñ¥¿¡¼¥ó]) :- ¸Ä¿ôËè¤Ë(_¿ô¤Ê¤é¤Ó,_¸Ä¿ô,_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó,_»Ä¤ê¿ô¤Ê¤é¤Ó), ²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë(_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó), ¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë(_»Ä¤ê¿ô¤Ê¤é¤Ó,_»Ä¤êɽ¼¨¥Ñ¥¿¡¼¥ó). ¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë([_¿ô|_»Ä¤ê¿ô¤Ê¤é¤Ó],[]) :- ¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë([_¿ô|_»Ä¤ê¿ô¤Ê¤é¤Ó],[5,4,4]). ¸Ä¿ôËè¤Ë²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë(_,_). ¸Ä¿ôËè¤Ë(_¿ô¤Ê¤é¤Ó,_¸Ä¿ô,_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó,_»Ä¤ê¿ô¤Ê¤é¤Ó) :- length(_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó,_¸Ä¿ô), append(_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó,_»Ä¤ê¿ô¤Ê¤é¤Ó,_¿ô¤Ê¤é¤Ó),!. ²þ¹Ô¤·¤ÆÉ½¼¨¤¹¤ë(_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó) :- atomic_list_concat(_¸Ä¿ôʬ¤Î¿ô¤Ê¤é¤Ó,' ',_¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¿ô¤Ê¤é¤Óʸ»úÎó), writef('%t\n',[_¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¿ô¤Ê¤é¤Óʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/188 # # [1]C¸À¸ì # [2]hash¤Ë¤Ä¤¤¤Æ # ÌäÂêʸ http://ime.nu/www.dotup.org/uploda/www.dotup.org3723526.jpg # [3]Linux # [3.1]gcc C¸À¸ì # [4]ÌÚÍËÆü6:00¤Þ¤Ç # [5]µ¹¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Ä # # # ÌäÂê1. À°¿ô¥Ç¡¼¥¿¤ËÂФ·¤Æ¥Ï¥Ã¥·¥åõº÷¤ò¹Ô¤¦¤³¤È¤ò¹Í¤¨¤ë¡£ # (1) 1~50¤Þ¤Ç¤ÎÃͤÎÍð¿ô¤ò20²ó¸Æ¤Ó½Ð¤·¡¢¥Æ¡¼¥Ö¥ëŤ¬23¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë # ¤Ë¥Á¥§¥¤¥óË¡¤Ë¤è¤Ã¤Æ¥Ç¡¼¥¿¤ò³ÊǼ¤»¤è¡£¤³¤³¤Ç¥Ï¥Ã¥·¥å´Ø¿ô¤Ï(mod23)¤È # ¤¹¤ë¡£ # (2) hashɽ¤ÎÆâÍÆ¤ò¤¹¤Ù¤Æ²èÌÌɽ¼¨¤¹¤ë´Ø¿ôprint_hash¤òÄêµÁ¤·¤Æ¡¢³Îǧ¤·¤Ê # ¤µ¤¤¡£ # (3) (2)¤Ë¤è¤Ã¤Æ³ÊǼ¤µ¤ì¤¿¥Ç¡¼¥¿¤ËÂФ·¤Æ³Æi(1=% °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1355011916/ # # ¤ä¤í¤¦¤È¤·¤Æ¤¤¤ë¤³¤È¤Ï¡¢²ÄÊÑĹ¤ÎÆó¼¡¸µÇÛÎó¤Ç¤Ï¤Ê¤¯¤Æ # ²ÄÊÑŤÎÇÛÎó¤Î²ÄÊÑŤÎÇÛÎó¤À¤í¡£ # ¤Ä¤Þ¤ê¡¢Í×ÁÇ¿ô¤¬Î㤨¤Ð2x100¤È¤«¤Ç¤Ï¤Ê¤¯100+50+30+200¤Î¤è¤¦¤Ê¡£ # C++¤Ç¸À¤¦¤È¤³¤í¤Îstd::vector >¤Ç¤Û¤Ü¤Ç¤­¤ë¤³¤È¤À¤±¤É¡¢C¤À¤È # ÊÌÅÓ´ÉÍýÇÛÎó¤òÍ×ÁǤ¹¤ëɬÍפ¬¤¢¤ë¤Í¡£ 'n¸Ä¤Î²ÄÊÑÍ×ÁǤΥꥹ¥È¤òÀ¸À®¤¹¤ë'(_n,LL) :- findall(L,( between(1,_n,L)), LL). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://test/read.cgi/tech/1354715494/33 # # ¡Ú¤ªÂê¡Û # ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤ò»È¤Ã¤ÆÁÇ¿ô¤òȽÄꤹ¤ë´Ø¿ôis_prime¤ò¼ÂÁõ¤·¡¢ # 10000°Ê²¼¤ÎÁÇ¿ô°Ê³°¤Î¿ô¤ÎϤòµá¤á¤è # # ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý # p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0 :- dynamic(f/2). a(A) :- b(B,(between(1,10000,B),\+(d(B))),A). b(A,B,C) :- findall(A,B,D),c(D,C). c([],0). c([A|B],C) :- c(B,D),C is A + D. d(A) :- e(A). e(A) :- A > 0,B is A - 1,f(B,C),0 is (C + 1) mod B,!. f(0,1) :- !. f(1,1) :- !. f(A,B) :- B is A - 1,f(B,C),B is A * C,asserta((f(A,B) :- !)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://test/read.cgi/tech/1354715494/33 # # ¡Ú¤ªÂê¡Û # ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤ò»È¤Ã¤ÆÁÇ¿ô¤òȽÄꤹ¤ë´Ø¿ôis_prime¤ò¼ÂÁõ¤·¡¢ # 10000°Ê²¼¤ÎÁÇ¿ô°Ê³°¤Î¿ô¤ÎϤòµá¤á¤è # # ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý # p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0 :- dynamic(³¬¾èÊݸ·×»»/2). :- retract((³¬¾èÊݸ·×»»(_,_) :- _)),fail;true. '¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤ò»È¤Ã¤ÆÁÇ¿ô¤òȽÄꤹ¤ë´Ø¿ôis_prime¤ò¼ÂÁõ¤·¡¢ 10000°Ê²¼¤ÎÁÇ¿ô°Ê³°¤Î¿ô¤ÎϤòµá¤á¤è ¥¦¥£¥ë¥½¥ó¤ÎÄêÍý p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0'(_10000°Ê²¼¤ÎÁÇ¿ô°Ê³°¤Î¿ô¤ÎÏÂ) :- findsum(_p,( between(1,10000,_p), \+(is_prime(_p))), _10000°Ê²¼¤ÎÁÇ¿ô°Ê³°¤Î¿ô¤ÎÏÂ). is_prime(_p) :- '¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤È¤Ï p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0'(_p). '¥¦¥£¥ë¥½¥ó¤ÎÄêÍý¤È¤Ï p¤¬ÁÇ¿ô <=> (p-1)!+1 (mod p) == 0'(_p) :- _p > 0, Y is _p - 1, ³¬¾èÊݸ·×»»(Y,Z), 0 is (Z + 1) mod _p,!. ³¬¾èÊݸ·×»»(0,1) :- !. ³¬¾èÊݸ·×»»(1,1) :- !. ³¬¾èÊݸ·×»»(N,X) :- N2 is N - 1, ³¬¾èÊݸ·×»»(N2,Y), X is N * Y, asserta((³¬¾èÊݸ·×»»(N,X) :- !)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # Í¿¤¨¤é¤ì¤¿¿ô x ¤Î3¾èº¬¤òÊÖ¤¹ cube_root(x)¤È¤³¤ì¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢1¤«¤é10¤Þ¤Ç¤Î # 3¾èº¬¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # 'Í¿¤¨¤é¤ì¤¿¿ô x ¤Î3¾èº¬¤òÊÖ¤¹ cube_root(x)¤È¤³¤ì¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢1¤«¤é10¤Þ¤Ç¤Î3¾èº¬¤òɽ¼¨¤¹¤ë' :- between(1,10,_x), cube_root(_x,_3¾èº¬), writef('%t: ',[_x]), format('~6f\n',[_3¾èº¬]), _x = 10. cube_root(_x,_3¾èº¬) :- _x_2 is _x / 2, Æóʬˡ¤Ç3¾èº¬¤ò¼ý«¤µ¤»¤ë(100,_x,_x,_x_2,_3¾èº¬). Æóʬˡ¤Ç3¾èº¬¤ò¼ý«¤µ¤»¤ë(0,_ÃÍ,_3¾èº¬,_,_3¾èº¬) :- !. Æóʬˡ¤Ç3¾èº¬¤ò¼ý«¤µ¤»¤ë(N,_ÃÍ,_ÃÍ_1,_ÃÍ_2,_3¾èº¬) :- _ÃÍ >= _ÃÍ_2 * _ÃÍ_2 * _ÃÍ_2, _ÃÍ_3 is (_ÃÍ_1 + _ÃÍ_2) / 2, N_1 is N - 1, Æóʬˡ¤Ç3¾èº¬¤ò¼ý«¤µ¤»¤ë(N_1,_ÃÍ,_ÃÍ_1,_ÃÍ_3,_3¾èº¬). Æóʬˡ¤Ç3¾èº¬¤ò¼ý«¤µ¤»¤ë(N,_ÃÍ,_ÃÍ_1,_ÃÍ_2,_3¾èº¬) :- _ÃÍ < _ÃÍ_2 * _ÃÍ_2 * _ÃÍ_2, _ÃÍ_3 is _ÃÍ_2 / 2, N_1 is N - 1, Æóʬˡ¤Ç3¾èº¬¤ò¼ý«¤µ¤»¤ë(N_1,_ÃÍ,_ÃÍ_2,_ÃÍ_3,_3¾èº¬). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/84 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¥³¥Þ¥ó¥ÉÁªÂò¤Ç¡¤0) ½ªÎ»¡¤1) Äɲá¤2) ¸¡º÷(id)¡¤3) ¥ê¥¹¥Èɽ¼¨¡¤4) Êѹ¹ 5) ºï½ü 6) ÆÃ¼ìµ¡Ç½ ¤¬¹Ô¤¨¤ë¾¦Éʺ߸˴ÉÍý¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£ # ¥Ç¡¼¥¿¤Ï¡¤¾¦ÉʤÎÈÖ¹æ ¾¦ÉÊ̾ ¿ô ñ²Á ¤Î·Á¼°¤Ç¾¦ÉʤΥǡ¼¥¿¤ò»ý¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¤¹¤ë¡¥ # ¾å¤Îµ¡Ç½¥ë¡¼¥Á¥ó¤Ï¡¤Á´¤Æ´Ø¿ô¤È¤·¤ÆºîÀ®¤¹¤ë¤³¤È¡¥ # ¤¿¤À¤·¡¤Äɲäȸ¡º÷¤Ï¼ÂÁõºÑ¤ß¤Ç¤¢¤ë¡¥ # # '¥³¥Þ¥ó¥ÉÁªÂò¤Ç¡¤0) ½ªÎ»¡¤1) Äɲá¤2) ¸¡º÷(id)¡¤3) ¥ê¥¹¥Èɽ¼¨¡¤4) Êѹ¹ 5) ºï½ü 6) ÆÃ¼ìµ¡Ç½ ¤¬¹Ô¤¨¤ë¾¦Éʺ߸˴ÉÍý¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£¥Ç¡¼¥¿¤Ï¡¤¾¦ÉʤÎÈÖ¹æ ¾¦ÉÊ̾ ¿ô ñ²Á ¤Î·Á¼°¤Ç¾¦ÉʤΥǡ¼¥¿¤ò»ý¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¤¹¤ë¡¥' :- reconsult('ºß¸Ë´ÉÍý.pro'), ¥³¥Þ¥ó¥ÉÁªÂò¤Ç(_¥³¥Þ¥ó¥É), '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(_¥³¥Þ¥ó¥É), 'ºß¸Ë´ÉÍý.pro¤ÎÊݸ'. ¥³¥Þ¥ó¥ÉÁªÂò¤Ç(_¥³¥Þ¥ó¥É) :- À°¿ô¤òÆÀ¤ë('0) ½ªÎ»¡¤1) Äɲá¤2) ¸¡º÷(id)¡¤3) ¥ê¥¹¥Èɽ¼¨¡¤4) Êѹ¹ 5) ºï½ü 6) ÆÃ¼ìµ¡Ç½¤òÀ°¿ô¤Ç',member(_À°¿ô,between(0,6,_À°¿ô),_À°¿ô), nth0(_À°¿ô,[½ªÎ»,ÄɲÃ,'¸¡º÷(id)',¥ê¥¹¥Èɽ¼¨,Êѹ¹,ºï½ü,ÆÃ¼ìµ¡Ç½],_¥³¥Þ¥ó¥É). '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(½ªÎ») :- !. '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(ÄɲÃ) :- ºß¸ËÄɲÃ. '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(¸¡º÷) :- ºß¸Ë¸¡º÷. '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(¥ê¥¹¥Èɽ¼¨) :- ¥ê¥¹¥Èɽ¼¨. '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(Êѹ¹) :- ºß¸ËÊѹ¹. '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(ºï½ü) :- ºß¸Ëºï½ü. '½ªÎ»¡¤Äɲᤸ¡º÷(id)¡¤¥ê¥¹¥Èɽ¼¨¡¤Êѹ¹¡¤ºï½ü¡¤ÆÃ¼ìµ¡Ç½¡¤¤¬¹Ô¤¨¤ë'(ÆÃ¼ìµ¡Ç½) :- ÆÃ¼ìµ¡Ç½. ºß¸ËÄɲà :- ¾¦ÉÊ̾¤òÆÀ¤ë(_¾¦ÉÊ̾), ¿ôÎ̤òÆÀ¤ë(_¿ôÎÌ), ºß¸ËÄɲÃ(_¾¦ÉÊ̾,_¿ôÎÌ). ºß¸ËÄɲÃ(_¾¦ÉÊ̾,_¿ôÎÌ). retract(ºß¸Ë(_¾¦ÉÊ̾,_¸½ºß¤Î¿ôÎÌ)), _¹¹¿·¤µ¤ì¤¿¿ôÎÌ is _¸½ºß¤Î¿ôÎÌ + _¿ôÎÌ, asserta(ºß¸Ë(_¾¦ÉÊ̾,_¹¹¿·¤µ¤ì¤¿¿ôÎÌ)),!. ºß¸ËÄɲÃ(ÄɲÃ,_¾¦ÉÊ̾,_¿ôÎÌ) :- asserta(ºß¸Ë(_¾¦ÉÊ̾,_¿ôÎÌ)),!. 'ºß¸Ë¸¡º÷(id)' :- ¾¦ÉÊ̾¤òÆÀ¤ë(_¾¦ÉÊ̾), ºß¸Ë(_¾¦ÉÊ̾,_¿ôÎÌ), writef('¸½ºß¤Îºß¸Ë¿ôÎÌ¤Ï %t ¤Ç¤¹\n',[_¿ôÎÌ]),!. 'ºß¸Ë¸¡º÷(id)' :- write('¸½ºß¤Îºß¸Ë¤Ï¤¢¤ê¤Þ¤»¤ó\n'). ¥ê¥¹¥Èɽ¼¨ :- ºß¸Ë(_¾¦ÉÊ̾,_¿ôÎÌ), writef('%t,%t\n',[_¾¦ÉÊ̾,_¿ôÎÌ]), fail. ¥ê¥¹¥Èɽ¼¨. ºß¸ËÊѹ¹ :- À°¿ô¤òÆÀ¤ë('1..¾¦ÉÊ̾ 2..¿ôÎÌ ¤É¤Á¤é¤òÊѹ¹¤¹¤ë¤«',between(1,2,_À°¿ô),_À°¿ô), ºß¸ËÊѹ¹(_À°¿ô). ºß¸ËÊѹ¹(1) :- ¸½ºß¤Î¾¦ÉÊ̾¤òÆÀ¤ë(_¸½ºß¤Î¾¦ÉÊ̾), Àµ¤·¤¤¾¦ÉÊ̾¤òÆÀ¤ë(_Àµ¤·¤¤¾¦ÉÊ̾), ºß¸ËÊѹ¹(_¸½ºß¤Î¾¦ÉÊ̾,_Àµ¤·¤¤¾¦ÉÊ̾),!. ºß¸ËÊѹ¹(1) :- ºß¸ËÊѹ¹(1). ºß¸ËÊѹ¹(2) :- ¾¦ÉÊ̾¤òÆÀ¤ë(_¾¦ÉÊ̾), '¿ÇÃÇ:: ¾¦ÉÊ̾'(_¾¦ÉÊ̾), ¿ôÎ̤òÆÀ¤ë(_¿ôÎÌ), retract(ºß¸Ë(_¾¦ÉÊ̾,_)), asserta(ºß¸Ë(_¾¦ÉÊ̾,_¿ôÎÌ)),!. ¸½ºß¤Î¾¦ÉÊ̾¤òÆÀ¤ë(_¸½ºß¤Î¾¦ÉÊ̾) :- write('¸½ºß¤Î¾¦ÉÊ̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_¸½ºß¤Î¾¦ÉÊ̾), '¿ÇÃÇ:: ¸½ºß¤Î¾¦ÉÊ̾'(_¸½ºß¤Î¾¦ÉÊ̾),!. '¿ÇÃÇ:: ¸½ºß¤Î¾¦ÉÊ̾'(_¸½ºß¤Î¾¦ÉÊ̾) :- ºß¸Ë(_¸½ºß¤Î¾¦ÉÊ̾,_),!. '¿ÇÃÇ:: ¸½ºß¤Î¾¦ÉÊ̾'(_¾¦ÉÊ̾) :- writef('ÆþÎϤµ¤ì¤¿¾¦ÉÊ̾¤Îºß¸Ë¤Ï¤¢¤ê¤Þ¤»¤ó\n',[_¾¦ÉÊ̾]), fail. Àµ¤·¤¤¾¦ÉÊ̾¤òÆÀ¤ë(_Àµ¤·¤¤¾¦ÉÊ̾) :- write('Àµ¤·¤¤¾¦ÉÊ̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_Àµ¤·¤¤¾¦ÉÊ̾),!. '¿ÇÃÇ:: ¾¦ÉÊ̾'(_¾¦ÉÊ̾) :- ºß¸Ë(_¾¦ÉÊ̾,_),!. '¿ÇÃÇ:: ¾¦ÉÊ̾'(_¾¦ÉÊ̾) :- writef('»ØÄꤵ¤ì¤¿¾¦ÉÊ̾¤Î %t ¤Îºß¸ËÅÐÏ¿¤Ï¤¢¤ê¤Þ¤»¤ó\n',[_¾¦ÉÊ̾]), fail. ºß¸ËÊѹ¹(_¸½ºß¤Î¾¦ÉÊ̾,_Àµ¤·¤¤¾¦ÉÊ̾) :- retract(ºß¸Ë(_¸½ºß¤Î¾¦ÉÊ̾,_¿ôÎÌ)), asserta(ºß¸Ë(_Àµ¤·¤¤¤Î¾¦ÉÊ̾,_¿ôÎÌ)),!. ºß¸Ëºï½ü :- ¾¦ÉÊ̾¤òÆÀ¤ë(_¾¦ÉÊ̾), retract(ºß¸Ë(_¾¦ÉÊ̾,_)). ÆÃ¼ìµ¡Ç½. ¿ôÎ̤òÆÀ¤ë(_¿ôÎÌ) :- ¿ô¤òÆÀ¤ë(¿ôÎÌ,true,_¿ôÎÌ). 'ºß¸Ë´ÉÍý.pro¤ÎÊݸ' :- tell('ºß¸Ë´ÉÍý.pro'), listing(ºß¸Ë), told. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/70 # # [1] c¸À¸ì # [2] (­µ) ¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¡¤ # ¡Ê1¡Ë 0°Ê¾å10̤Ëþ # ¡Ê2¡Ë 10 °Ê¾å20̤Ëþ # ¡Ê3¡Ë 20 °Ê¾å30̤Ëþ # ¡¥¡¥¡¥¡¥¡¥ # ¡Ê10¡Ë 90 °Ê¾å100 ̤Ëþ # ¡Ê11¡Ë 100 # ¤Î11 Ãʳ¬¤ËʬÎष¤ÆÉÑÅÙ¤òÄ´¤Ù¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç # ¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌ # ɽ¼¨¤·¤ÆÉÑÅ٤ˤϿô¤¨¤Ê¤¤¤³¤È¡¥ # # (­¶)À°¿ôÃͤòÍ×ÁǤˤâ¤Äk ¹Ôm Îó¹ÔÎóA ¤Èm ¹Ôn Îó¹ÔÎóB ¤òÀë¸À¤·¡¤¤½¤ì¤é¤ÎÍ×ÁǤò¥­¡¼¥Ü¡¼ # ¥É¤«¤éÆþÎϤ·¤ÆA¡ßB ¤ò»»½Ð¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¤k¡¤m¡¤n ¤Ïk¡âm¡¤m¡ân¡¤k¡æ2¡¤ # m¡æ2¡¤n¡æ2 ¤òËþ¤¿¤¹Ç¤°Õ¤ÎÃͤò¥×¥í¥°¥é¥àÆâ¤Ç³Æ¼«ÀßÄꤷ¤Æ¤è¤¤¡¥¤¿¤À¤·¡¤A¡ßB ¤ÎÃͤò²èÌÌ # ɽ¼¨¤¹¤ëÁ°¤Ë¡¤k ¹ÔnÎó¹ÔÎóC ¤ËÃͤòÂåÆþ¤·¤Æ¤ª¤¯¤³¤È¡¥ # # ' ¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¡¤ ¡Ê1¡Ë 0°Ê¾å10̤Ëþ ¡Ê2¡Ë 10 °Ê¾å20̤Ëþ ¡Ê3¡Ë 20 °Ê¾å30̤Ëþ ¡¥¡¥¡¥¡¥¡¥ ¡Ê10¡Ë 90 °Ê¾å100 ̤Ëþ ¡Ê11¡Ë 100 ¤Î11 Ãʳ¬¤ËʬÎष¤ÆÉÑÅÙ¤òÄ´¤Ù¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç ¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤·¤ÆÉÑÅ٤ˤϿô¤¨¤Ê¤¤¤³¤È¡¥' :- ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(0,_ÉÑÅ٤ʤé¤Ó¤Î½é´ü¾õÂÖ), '¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¡¤11 Ãʳ¬¤ËʬÎष¤ÆÉÑÅÙ¤òÄ´¤Ù¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤·¤ÆÉÑÅ٤ˤϿô¤¨¤Ê¤¤¤³¤È'(_ÉÑÅ٤ʤé¤Ó¤Î½é´ü¾õÂÖ,_ÉÑÅ٤ʤé¤Ó,·Ñ³), ¸½ºß¤ÎÉÑÅÙ¤Îɽ¼¨(_ÉÑÅ٤ʤé¤Ó). ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(100,[[100,101,0]]) :- '100¤Î¾ì¹ç¤À¤±¤ÏÈϰϻØÄê¤Ë¤Ê¤é¤Ê¤¤¤¬¡¢¤³¤³¤Ç¤Ï101̤Ëþ¤È¤·¤Æ·Á¼°Åª¤Ë°ìÃפµ¤»¤ë',!. ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(N,[[N,N_2,0]|R]) :- N_2 is N + 10, ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(N_2,R). '100¤Î¾ì¹ç¤À¤±¤ÏÈϰϻØÄê¤Ë¤Ê¤é¤Ê¤¤¤¬¡¢¤³¤³¤Ç¤Ï101̤Ëþ¤È¤·¤Æ·Á¼°Åª¤Ë°ìÃפµ¤»¤ë'. '¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¡¤11 Ãʳ¬¤ËʬÎष¤ÆÉÑÅÙ¤òÄ´¤Ù¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤·¤ÆÉÑÅ٤ˤϿô¤¨¤Ê¤¤¤³¤È'(_,_ÉÑÅ٤ʤé¤Ó,_ÉÑÅ٤ʤé¤Ó,½ªÎ») :- !. '¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¡¤11 Ãʳ¬¤ËʬÎष¤ÆÉÑÅÙ¤òÄ´¤Ù¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤·¤ÆÉÑÅ٤ˤϿô¤¨¤Ê¤¤¤³¤È'(_ÆþÎϤµ¤ì¤¿À°¿ô,_ÉÑÅ٤ʤé¤Ó_1,_ÉÑÅ٤ʤé¤Ó,_) :- ¸½ºß¤ÎÉÑÅÙ¤Îɽ¼¨(_ÉÑÅ٤ʤé¤Ó_1), ' ¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ¹¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤¹¤ë¡¥'(_ÆþÎϤµ¤ì¤¿À°¿ô), ÉÑÅ٤ʤé¤Ó¤Î¹¹¿·(_ÆþÎϤµ¤ì¤¿À°¿ô,_ÉÑÅ٤ʤé¤Ó_1,_ÉÑÅ٤ʤé¤Ó_2,_¾õÂÖ_2), '¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¡¤¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤11 Ãʳ¬¤ËʬÎष¤ÆÉÑÅÙ¤òÄ´¤Ù¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤·¤ÆÉÑÅ٤ˤϿô¤¨¤Ê¤¤¤³¤È'(_ÆþÎϤµ¤ì¤¿À°¿ô,[],_ÉÑÅ٤ʤé¤Ó,_¾õÂÖ_2). ' ¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ¹¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤¹¤ë¡¥'(_À°¿ô) :- write('0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(Line), '¿ÇÃÇ::À°¿ôÆþÎÏ'(Line,_À°¿ô),!. ' ¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ¹¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤¹¤ë¡¥'(_À°¿ô) :- ' ¥­¡¼¥Ü¡¼¥É¤«¤é0 °Ê¾å100°Ê²¼¤ÎÀ°¿ô¤òÆþÎϤ¹¤ë¡¥¤¿¤À¤·¡¤Éé¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¡¤101 °Ê¾å¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ë¤ÏÆþÎÏÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤ò²èÌÌɽ¼¨¤¹¤ë¡¥'(_À°¿ô). '¿ÇÃÇ::À°¿ôÆþÎÏ'(Line,_À°¿ô) :- atom_to_term(Line,_À°¿ô,_), integer(_À°¿ô), _À°¿ô < 101,!. '¿ÇÃÇ::À°¿ôÆþÎÏ'(Line,_À°¿ô) :- writef('ÆþÎϤµ¤ì¤¿%t¤«¤é¤Ï0°Ê¾å100°Ê²¼¤ÎÀ°¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[Line]), fail. ÉÑÅ٤ʤé¤Ó¤Î¹¹¿·(_ÆþÎϤµ¤ì¤¿À°¿ô,_ÉÑÅ٤ʤé¤Ó_1,_ÉÑÅ٤ʤé¤Ó_2,·Ñ³) :- between(0,100,_ÆþÎϤµ¤ì¤¿À°¿ô), ÉÑÅ٤ʤé¤Ó¤Î¹¹¿·(_ÆþÎϤµ¤ì¤¿À°¿ô,_ÉÑÅ٤ʤé¤Ó_1,_ÉÑÅ٤ʤé¤Ó_2),!. ÉÑÅ٤ʤé¤Ó¤Î¹¹¿·(N,_ÉÑÅ٤ʤé¤Ó,_ÉÑÅ٤ʤé¤Ó,½ªÎ») :- N < 0,!. ÉÑÅ٤ʤé¤Ó¤Î¹¹¿·(_ÆþÎϤµ¤ì¤¿À°¿ô,_ÉÑÅ٤ʤé¤Ó_1,_ÉÑÅ٤ʤé¤Ó_2) :- append(L0,[[_Èϰϰʾå,_ÈϰÏ̤Ëþ,_ÉÑÅÙ_1]|R],_ÉÑÅ٤ʤé¤Ó_1), _ÆþÎϤµ¤ì¤¿À°¿ô >= _Èϰϰʾå, _ÆþÎϤµ¤ì¤¿À°¿ô < _ÈϰÏ̤Ëþ, _ÉÑÅÙ_2 is _ÉÑÅÙ_1 + 1, append(L0,[[_Èϰϰʾå,_ÈϰÏ̤Ëþ,_ÉÑÅÙ_2]|R],_ÉÑÅ٤ʤé¤Ó_2). ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(100,[[100,101,0]]) :- !. ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(N,[[N,N_2,0]|R]) :- N_2 is N + 10, ÉÑÅ٤ʤé¤Ó¤Î½é´ü²½(N_2,R). ¸½ºß¤ÎÉÑÅÙ¤Îɽ¼¨([[100,101,_ÉÑÅÙ]]) :- writef('%t ÉÑÅÙ=%t\n',[_ÉÑÅÙ]),!. ¸½ºß¤ÎÉÑÅÙ¤Îɽ¼¨([[_Èϰϰʾå,_ÈϰÏ̤Ëþ,_ÉÑÅÙ]|R]) :- writef('%t °Ê¾å %t ̤Ëþ ÉÑÅÙ=%t\n',[_Èϰϰʾå,_ÈϰÏ̤Ëþ,_ÉÑÅÙ]), ¸½ºß¤ÎÉÑÅÙ¤Îɽ¼¨(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/49 # # [1] ¼ø¶Èñ¸µ¡§·×»»µ¡¼Â½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ http://ime.nu/codepad.org/eMHdX9DL # ¾åµ­¤Î¥×¥í¥°¥é¥à¤òÊѹ¹¤·¤Æ¡¤¥­¡¼¥Ü¡¼¥É¤«¤é(x, y)¤ÎºÂɸ¤È¥Þ¥¹¤Î¾õÂÖ¤òÆþÎϤ·¡¤È¿±Ç¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡¥ # ÆþÎϤκݤˤϺÂɸ¤ä¾õÂÖ¤¬ÈϰϤòͤ¨¤Æ¤¤¤Ê¤¤¤«³Îǧ¤·¡¤±Û¤¨¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¤â¤¦°ìÅÙÆþÎϤ¹¤ë¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡¥ # # #include # int plot[8][8]; # char state[3][5] = {"¡¡","¡û ","¡ü "}; # # # void print_board(){ # int x,y; # printf("\033[2J"); # printf("\033[%d;%dH",0,0); # for(y = 0;y < 8;y++){ # for (x = 0;x < 8;x++){ # printf("%s|",state[plot[x][y]]); # } # printf("\n"); # printf("--+--+--+--+--+--+--+--+\n"); # } # } # # int main(){ # int x,y; # # for(y = 0;y < 8;y++)for(x = 0;x < 8;x++)plot[x][y] = 0; # plot[3][3] = plot[4][4] = 1; # plot[3][4] = plot[4][3] = 2; # # print_board(); # } # # 1 2 3 4 5 6 7 8 # +--+--+--+--+--+--+--+--+ # 1 |¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 2 |¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 3 |¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 4 |¡¡|¡¡|¡¡|¡û|¡ü|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 5 |¡¡|¡¡|¡¡|¡ü|¡û|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 6 |¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 7 |¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # 8 |¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡|¡¡| # +--+--+--+--+--+--+--+--+ # :- dynamic(¥Ü¡¼¥ÉÊݸ/1). '¥­¡¼¥Ü¡¼¥É¤«¤é(x, y)¤ÎºÂɸ¤È¥Þ¥¹¤Î¾õÂÖ¤òÆþÎϤ·¡¤È¿±Ç¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡¥ÆþÎϤκݤˤϺÂɸ¤ä¾õÂÖ¤¬ÈϰϤòͤ¨¤Æ¤¤¤Ê¤¤¤«³Îǧ¤·¡¤±Û¤¨¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¤â¤¦°ìÅÙÆþÎϤ¹¤ë¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡¥' :- ¥Ü¡¼¥É¤Î½é´ü¾õÂÖ(_¥Ü¡¼¥È), ¥Ü¡¼¥É¥²¡¼¥à(_¥Ü¡¼¥É). ¥Ü¡¼¥É¤Î½é´ü¾õÂÖ(_¥Ü¡¼¥È) :- findall(L,( between(1,8,_), length(L,8), all(L,'¡¡')), _¥Ü¡¼¥É). ¥Ü¡¼¥É¥²¡¼¥à(_¸½ºß¤Î¥Ü¡¼¥É) :- ¥Ü¡¼¥É(_¸½ºß¤Î¥Ü¡¼¥É,_°ì¼ê¿Ê¤ó¤À¥Ü¡¼¥É), ¥Ü¡¼¥É¥²¡¼¥à(_°ì¼ê¿Ê¤ó¤À¥Ü¡¼¥É),!. ¥Ü¡¼¥É¥²¡¼¥à(_¸½ºß¤Î¥Ü¡¼¥É) :- ¥Ü¡¼¥Éɽ¼¨(_¸½ºß¤Î¥Ü¡¼¥É), write('¥²¡¼¥à½ªÎ»¤Ç¤¹¡£\n'), ½ªÎ»»þÅÀ¤Î¥Ü¡¼¥É¤òÊݸ¤¹¤ë(_¸½ºß¤Î¥Ü¡¼¥É). ¥Ü¡¼¥É(_¸½ºß¤Î¥Ü¡¼¥É) :- Ãå¼ê¤¹¤ë¤Ù¤­¥Þ¥¹¤¬»Ä¤Ã¤Æ¤¤¤ë(_¸½ºß¤Î¥Ü¡¼¥É), '¥­¡¼¥Ü¡¼¥É¤«¤é(x, y)¤ÎºÂɸ¤È¥Þ¥¹¤Î¾õÂÖ¤òÆþÎϤ·'(X,Y), ¥Ü¡¼¥É¤ò¹¹¿·¤¹¤ë(X,Y,_¸½ºß¤Î¥Ü¡¼¥É,_°ì¼ê¿Ê¤ó¤À¥Ü¡¼¥É), ¥Ü¡¼¥É¤òɽ¼¨¤¹¤ë(_°ì¼ê¿Ê¤ó¤À¥Ü¡¼¥É),!. Ãå¼ê¤¹¤ë¤Ù¤­¥Þ¥¹¤¬»Ä¤Ã¤Æ¤¤¤ë([L|R]) :- member('¡¡',L), Ãå¼ê¤¹¤ë¤Ù¤­¥Þ¥¹¤¬»Ä¤Ã¤Æ¤¤¤ë(R),!. '¥­¡¼¥Ü¡¼¥É¤«¤é(x, y)¤ÎºÂɸ¤È¥Þ¥¹¤Î¾õÂÖ¤òÆþÎϤ·'(X,Y,_¥Þ¥¹¤Î¾õÂÖ) :- À°¿ô¤òÆÀ¤ë('x(0¤Ï½ªÎ»)',between(0,8,X),X), \+(X = 0), À°¿ô¤òÆÀ¤ë('y',between(1,8,Y),Y), ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë(_¥Þ¥¹¤Î¾õÂÖ). ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë(_¥Þ¥¹¤Î¾õÂÖ) :- write('¡¡..0¤«¡ü..1¤«¡û..2¤òÃå¼ê¤·¤Æ¤¯¤À¤µ¤¤ : '), get_Line(Line), '¿ÇÃÇ: ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë'(Line,_¥Þ¥¹¤Î¾õÂÖ),!. ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë(_¥Þ¥¹¤Î¾õÂÖ) :- ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë(_¥Þ¥¹¤Î¾õÂÖ). '¿ÇÃÇ: ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë'('0','¡¡') :- !. '¿ÇÃÇ: ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë'('1','¡û') :- !. '¿ÇÃÇ: ¥Þ¥¹¤Î¾õÂÖ¤òÆÀ¤ë'('2','¡ü') :- !. ¥Ü¡¼¥É¤ò¹¹¿·¤¹¤ë(X,Y,_Ãå¼ê,_¸½ºß¤Î¥Ü¡¼¥É,_°ì¼ê¿Ê¤ó¤À¥Ü¡¼¥É) :- 'Á°¤Î¹Ô¤Ê¤é¤Ó¡¢Âоݹԡ¢¸å¤Î¹Ô¤Ê¤é¤Ó'(Y,_¸½ºß¤Î¥Ü¡¼¥É,_Á°¤Î¹Ô¤Ê¤é¤Ó,_ÂоݹÔ,_¸å¤Î¹Ô¤Ê¤é¤Ó), ÂоݹԤò¹¹¿·¤¹¤ë(X,_Ãå¼ê,_ÂоݹÔ,_¹¹¿·¤µ¤ì¤¿ÂоݹÔ), append(_Á°¤Î¹Ô¤Ê¤é¤Ó,[_¹¹¿·¤µ¤ì¤¿ÂоݹÔ|_¸å¤Î¹Ô¤Ê¤é¤Ó],_°ì¼ê¿Ê¤ó¤À¥Ü¡¼¥É). 'Á°¤Î¹Ô¤Ê¤é¤Ó¡¢Âоݹԡ¢¸å¤Î¹Ô¤Ê¤é¤Ó'(Y,_¸½ºß¤Î¥Ü¡¼¥É,_Á°¤Î¹Ô¤Ê¤é¤Ó,_ÂоݹÔ,_¸å¤Î¹Ô¤Ê¤é¤Ó) :- append(_Á°¤Î¹Ô¤Ê¤é¤Ó,[_ÂоݹÔ|_¸å¤Î¹Ô¤Ê¤é¤Ó],_¸½ºß¤Î¥Ü¡¼¥É), length([_|_Á°¤Î¹Ô¤Ê¤é¤Ó],Y). ÂоݹԤò¹¹¿·¤¹¤ë(X,_Ãå¼ê,_ÂоݹÔ,_¹¹¿·¤µ¤ì¤¿ÂоݹÔ) :- append(L0,[_|R],_ÂоݹÔ), length([_|L0],X), append(L0,[_Ãå¼ê|R],_¹¹¿·¤µ¤ì¤¿ÂоݹÔ). ¥Ü¡¼¥Éɽ¼¨(_¥Ü¡¼¥É) :- append(L0,[L|R],_¥Ü¡¼¥É), ¥Ü¡¼¥É¤Î°ì¹Ô¤òɽ¼¨¤¹¤ë(L0,L), R = [], writef(' +--+--+--+--+--+--+--+--+\n'),!. ¥Ü¡¼¥É¤Î°ì¹Ô¤òɽ¼¨¤¹¤ë(L0,L) :- length([_|L0],N), writef(' +--+--+--+--+--+--+--+--+\n'), atomic_list_concat(L,'|',S), writef('%t %t|\n',[N,S]). ½ªÎ»»þÅÀ¤Î¥Ü¡¼¥É¤òÊݸ¤¹¤ë(_¸½ºß¤Î¥Ü¡¼¥É) :- asserta(¥Ü¡¼¥ÉÊݸ(½ªÎ»»þÅÀ¤Î¥Ü¡¼¥É¤òÊݸ¤¹¤ë(_¸½ºß¤Î¥Ü¡¼¥É)). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1351769173/599 # # 2¿Ê¿ô3·å¤Î¥Ñ¥¹¥ï¡¼¥É¥í¥Ã¥¯¤Î¥×¥í¥°¥é¥à¤òºî¤ë¤Î¤Ç¤¹¤¬¡¢¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹¤Îµ¡Ç½¤âÄɲ䷤ʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤É¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤òÁȤá¤ÐÎɤ¤¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó¡£¤Ê¤Ë¤«¥¢¥É¥Ð¥¤¥¹Äº¤±¤Þ¤»¤ó¤«¡© # # :- dynamic(¥Ñ¥¹¥ï¡¼¥É/4). ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹([],_ID) :- !,fail. ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹(Ln,_ID) :- ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤Î¼ê³¤­(_ID),!. ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹([_|Ln],_ID) :- ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹(Ln,_ID). ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤Î¼ê³¤­(_ID) :- ¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3), ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎÏ(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2), ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎºÆÆþÎÏ(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2), ¥Ñ¥¹¥ï¡¼¥É¤Î½ñ¤­´¹¤¨(_ID,_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2),!. ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎºÆÆþÎÏ(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2) :- write('ǰ¤Î¤¿¤á¤â¤¦°ìÅÙ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2). ¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3) :- write('¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë(_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3), ¥Ñ¥¹¥ï¡¼¥É¸¡ºº(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3,Âú). ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎÏ(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2) :- write('¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2),!. ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎºÆÆþÎÏ(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2) :- write('ǰ¤Î¤¿¤á¡¢¤â¤¦°ìÅÙ¡¢¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë(_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2),!. ¥Ñ¥¹¥ï¡¼¥É¤Î½ñ¤­´¹¤¨(_ID,_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2) :- retract(¥Ñ¥¹¥ï¡¼¥É(_ID,_,_,_)), assertz(¥Ñ¥¹¥ï¡¼¥É(_ID,_ÆþÎÏ1_2,_ÆþÎÏ2_2,_ÆþÎÏ3_2)). ¥Ñ¥¹¥ï¡¼¥É¸¡ºº(_ID) :- ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë(_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3), ¥Ñ¥¹¥ï¡¼¥É¸¡ºº(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3,_¿ÇÃÇ), ¥Ñ¥¹¥ï¡¼¥É¸¡ººÉ½¼¨(_ID,_¿ÇÃÇ). ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë(_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3) :- À°¿ô¤òÆÀ¤ë('0¤«1',between(0,1,_ÆþÎÏ1),_ÆþÎÏ1), À°¿ô¤òÆÀ¤ë('0¤«1',between(0,1,_ÆþÎÏ2),_ÆþÎÏ2), À°¿ô¤òÆÀ¤ë('0¤«1',between(0,1,_ÆþÎÏ3),_ÆþÎÏ3). ¥Ñ¥¹¥ï¡¼¥É¸¡ºº(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3,Âú) :- ¥Ñ¥¹¥ï¡¼¥É(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3),!. ¥Ñ¥¹¥ï¡¼¥É¸¡ºº(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3,µñ) :- \+(¥Ñ¥¹¥ï¡¼¥É(_ID,_ÆþÎÏ1,_ÆþÎÏ2,_ÆþÎÏ3)). ¥Ñ¥¹¥ï¡¼¥É¸¡ººÉ½¼¨(_ID,µñ) :- writef('¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹\n'),!. ¥Ñ¥¹¥ï¡¼¥É¸¡ººÉ½¼¨(_ID,Âú) :- !. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/7 # # [1] ¼ø¶Èñ¸µ¡§ÌäÂ꣱¡§Æó¼¡¸µÇÛÎó¡¡ÌäÂꣲ¡§´Ø¿ô # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ÌäÂ꣱¡§¥Õ¥¡¥¤¥ë¤«¤éÆþÎϤ·¤¿±Ñ¾®Ê¸»úa-z¤ÎÉÑÅ٤Υҥ¹¥È¥°¥é¥à¤ò # ½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤ò»È¤¨¤ÐÎɤ¤¡£ # # ÌäÂꣲ¡§£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤· # ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹´Ø¿ô¤òºîÀ®¤·¥­¡¼¥Ü¡¼¥É¤«¤é # ʸ»úÆþÎϤȤ·¤Æ¤³¤Î´Ø¿ô¤Îưºî¤ò³Îǧ¤»¤è¡£ # [3.1] OS¡§ windows vista # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§visual studio2010 # ¡¡[3.3] ¸À¸ì¡§ C¸À¸ì # [4] ´ü¸Â¡§ 11·î30Æü # [5]¥Ý¥¤¥ó¥¿¤Ï¤ä¤Ã¤Æ¤Þ¤»¤ó¡£µ¹¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ ¡£ # # '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤· ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹´Ø¿ô¤òºîÀ®¤·¥­¡¼¥Ü¡¼¥É¤«¤é ʸ»úÆþÎϤȤ·¤Æ¤³¤Î´Ø¿ô¤Îưºî¤ò³Îǧ¤»¤è¡£' '¥­¡¼¥Ü¡¼¥É¤«¤éʸ»úÆþÎϤȤ·¤Æ¤³¤Î´Ø¿ô¤Îưºî¤ò³Îǧ¤»¤è'. '¥­¡¼¥Ü¡¼¥É¤«¤éʸ»úÆþÎϤȤ·¤Æ¤³¤Î´Ø¿ô¤Îưºî¤ò³Îǧ¤»¤è' :- get_char(_ʸ»ú), '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤µ¤ì¤¿Ê¸»ú_1), to_upper(_ʸ»ú,_ÊÖ¤µ¤ì¤¿Ê¸»ú_2), writef('¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿Ê¸»ú "%t",ÊÖ¤µ¤ì¤¿Ê¸»ú "%t"\n',[_ÊÖ¤µ¤ì¤¿Ê¸»ú_1,_ÊÖ¤µ¤ì¤¿Ê¸»ú_2]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- to_upper(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú), Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð(_ʸ»ú), _ÊÖ¤¹Ê¸»ú = _ʸ»ú. ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú) :- _ʸ»ú @>= 'a', _ʸ»ú @=< 'z'. Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- nth1(Nth,[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z],_ʸ»ú), nth1(Nth,['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],_ÊÖ¤¹Ê¸»ú). ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð(_ʸ»ú) :- \+(_ʸ»ú @>= 'a'),!. ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð(_ʸ»ú) :- \+(_ʸ»ú @=< 'z'),!. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú) :- char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É), between(97,122,_ʸ»ú¥³¡¼¥É). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú) :- char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É), _ʸ»ú¥³¡¼¥É >= 97, _ʸ»ú¥³¡¼¥É =< 122. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¾®Ê¸»úÂçʸ»ú(_ʸ»ú,_Âçʸ»ú). ¾®Ê¸»úÂçʸ»ú(a,'A'). ¾®Ê¸»úÂçʸ»ú(b,'B'). ¾®Ê¸»úÂçʸ»ú(c,'C'). ¾®Ê¸»úÂçʸ»ú(d,'D'). ¾®Ê¸»úÂçʸ»ú(e,'E'). ¾®Ê¸»úÂçʸ»ú(f,'F'). ¾®Ê¸»úÂçʸ»ú(g,'G'). ¾®Ê¸»úÂçʸ»ú(h,'H'). ¾®Ê¸»úÂçʸ»ú(i,'I'). ¾®Ê¸»úÂçʸ»ú(j,'J'). ¾®Ê¸»úÂçʸ»ú(k,'K'). ¾®Ê¸»úÂçʸ»ú(l,'L'). ¾®Ê¸»úÂçʸ»ú(m,'M'). ¾®Ê¸»úÂçʸ»ú(n,'N'). ¾®Ê¸»úÂçʸ»ú(o,'O'). ¾®Ê¸»úÂçʸ»ú(p,'P'). ¾®Ê¸»úÂçʸ»ú(q,'Q'). ¾®Ê¸»úÂçʸ»ú(r,'R'). ¾®Ê¸»úÂçʸ»ú(s,'S'). ¾®Ê¸»úÂçʸ»ú(t,'T'). ¾®Ê¸»úÂçʸ»ú(u,'U'). ¾®Ê¸»úÂçʸ»ú(v,'V'). ¾®Ê¸»úÂçʸ»ú(w,'W'). ¾®Ê¸»úÂçʸ»ú(x,'X'). ¾®Ê¸»úÂçʸ»ú(y,'Y'). ¾®Ê¸»úÂçʸ»ú(z,'Z'). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É), _Âçʸ»ú¤Îʸ»ú¥³¡¼¥É is _ʸ»ú¥³¡¼¥É - 32, char_code(_ÊÖ¤¹Ê¸»ú,_Âçʸ»ú¤Îʸ»ú¥³¡¼¥É),!. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¾®Ê¸»úÂçʸ»ú(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). ¾®Ê¸»úÂçʸ»ú(a,'A') :- !. ¾®Ê¸»úÂçʸ»ú(b,'B') :- !. ¾®Ê¸»úÂçʸ»ú(c,'C') :- !. ¾®Ê¸»úÂçʸ»ú(d,'D') :- !. ¾®Ê¸»úÂçʸ»ú(e,'E') :- !. ¾®Ê¸»úÂçʸ»ú(f,'F') :- !. ¾®Ê¸»úÂçʸ»ú(g,'G') :- !. ¾®Ê¸»úÂçʸ»ú(h,'H') :- !. ¾®Ê¸»úÂçʸ»ú(i,'I') :- !. ¾®Ê¸»úÂçʸ»ú(j,'J') :- !. ¾®Ê¸»úÂçʸ»ú(k,'K') :- !. ¾®Ê¸»úÂçʸ»ú(l,'L') :- !. ¾®Ê¸»úÂçʸ»ú(m,'M') :- !. ¾®Ê¸»úÂçʸ»ú(n,'N') :- !. ¾®Ê¸»úÂçʸ»ú(o,'O') :- !. ¾®Ê¸»úÂçʸ»ú(p,'P') :- !. ¾®Ê¸»úÂçʸ»ú(q,'Q') :- !. ¾®Ê¸»úÂçʸ»ú(r,'R') :- !. ¾®Ê¸»úÂçʸ»ú(s,'S') :- !. ¾®Ê¸»úÂçʸ»ú(t,'T') :- !. ¾®Ê¸»úÂçʸ»ú(u,'U') :- !. ¾®Ê¸»úÂçʸ»ú(v,'V') :- !. ¾®Ê¸»úÂçʸ»ú(w,'W') :- !. ¾®Ê¸»úÂçʸ»ú(x,'X') :- !. ¾®Ê¸»úÂçʸ»ú(y,'Y') :- !. ¾®Ê¸»úÂçʸ»ú(z,'Z') :- !. ¾®Ê¸»úÂçʸ»ú(_ʸ»ú,_ʸ»ú). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1354070278/7 # # [1] ¼ø¶Èñ¸µ¡§ÌäÂ꣱¡§Æó¼¡¸µÇÛÎó¡¡ÌäÂꣲ¡§´Ø¿ô # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ÌäÂ꣱¡§¥Õ¥¡¥¤¥ë¤«¤éÆþÎϤ·¤¿±Ñ¾®Ê¸»úa-z¤ÎÉÑÅ٤Υҥ¹¥È¥°¥é¥à¤ò # ½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤ò»È¤¨¤ÐÎɤ¤¡£ # # ÌäÂꣲ¡§£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤· # ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹´Ø¿ô¤òºîÀ®¤·¥­¡¼¥Ü¡¼¥É¤«¤é # ʸ»úÆþÎϤȤ·¤Æ¤³¤Î´Ø¿ô¤Îưºî¤ò³Îǧ¤»¤è¡£ # [3.1] OS¡§ windows vista # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§visual studio2010 # ¡¡[3.3] ¸À¸ì¡§ C¸À¸ì # [4] ´ü¸Â¡§ 11·î30Æü # [5]¥Ý¥¤¥ó¥¿¤Ï¤ä¤Ã¤Æ¤Þ¤»¤ó¡£µ¹¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ ¡£ # # '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- to_upper(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú), Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð(_ʸ»ú), _ÊÖ¤¹Ê¸»ú = _ʸ»ú. ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú) :- _ʸ»ú @>= 'a', _ʸ»ú @=< 'z'. Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- nth1(Nth,[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z],_ʸ»ú), nth1(Nth,['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],_ÊÖ¤¹Ê¸»ú). ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð(_ʸ»ú) :- \+(_ʸ»ú @>= 'a'),!. ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð(_ʸ»ú) :- \+(_ʸ»ú @=< 'z'),!. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú) :- char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É), between(97,122,_ʸ»ú¥³¡¼¥É). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤Ð(_ʸ»ú) :- char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É), _ʸ»ú¥³¡¼¥É >= 97, _ʸ»ú¥³¡¼¥É =< 122. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¾®Ê¸»úÂçʸ»ú(_ʸ»ú,_Âçʸ»ú). ¾®Ê¸»úÂçʸ»ú(a,'A'). ¾®Ê¸»úÂçʸ»ú(b,'B'). ¾®Ê¸»úÂçʸ»ú(c,'C'). ¾®Ê¸»úÂçʸ»ú(d,'D'). ¾®Ê¸»úÂçʸ»ú(e,'E'). ¾®Ê¸»úÂçʸ»ú(f,'F'). ¾®Ê¸»úÂçʸ»ú(g,'G'). ¾®Ê¸»úÂçʸ»ú(h,'H'). ¾®Ê¸»úÂçʸ»ú(i,'I'). ¾®Ê¸»úÂçʸ»ú(j,'J'). ¾®Ê¸»úÂçʸ»ú(k,'K'). ¾®Ê¸»úÂçʸ»ú(l,'L'). ¾®Ê¸»úÂçʸ»ú(m,'M'). ¾®Ê¸»úÂçʸ»ú(n,'N'). ¾®Ê¸»úÂçʸ»ú(o,'O'). ¾®Ê¸»úÂçʸ»ú(p,'P'). ¾®Ê¸»úÂçʸ»ú(q,'Q'). ¾®Ê¸»úÂçʸ»ú(r,'R'). ¾®Ê¸»úÂçʸ»ú(s,'S'). ¾®Ê¸»úÂçʸ»ú(t,'T'). ¾®Ê¸»úÂçʸ»ú(u,'U'). ¾®Ê¸»úÂçʸ»ú(v,'V'). ¾®Ê¸»úÂçʸ»ú(w,'W'). ¾®Ê¸»úÂçʸ»ú(x,'X'). ¾®Ê¸»úÂçʸ»ú(y,'Y'). ¾®Ê¸»úÂçʸ»ú(z,'Z'). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Âçʸ»ú¤Ë¤·¤ÆÊÖ¤·(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- char_code(_ʸ»ú,_ʸ»ú¥³¡¼¥É), _Âçʸ»ú¤Îʸ»ú¥³¡¼¥É is _ʸ»ú¥³¡¼¥É - 32, char_code(_ÊÖ¤¹Ê¸»ú,_Âçʸ»ú¤Îʸ»ú¥³¡¼¥É),!. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '£±Ê¸»ú¤ò°ú¿ô¤È¤·¤Æ¤½¤ì¤¬¾®Ê¸»ú¤Ç¤¢¤ì¤ÐÂçʸ»ú¤Ë¤·¤ÆÊÖ¤·¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¤Þ¤Þʸ»ú¤òÊÖ¤¹'(_ʸ»ú,_ÊÖ¤¹Ê¸»ú) :- ¾®Ê¸»úÂçʸ»ú(_ʸ»ú,_ÊÖ¤¹Ê¸»ú). ¾®Ê¸»úÂçʸ»ú(a,'A') :- !. ¾®Ê¸»úÂçʸ»ú(b,'B') :- !. ¾®Ê¸»úÂçʸ»ú(c,'C') :- !. ¾®Ê¸»úÂçʸ»ú(d,'D') :- !. ¾®Ê¸»úÂçʸ»ú(e,'E') :- !. ¾®Ê¸»úÂçʸ»ú(f,'F') :- !. ¾®Ê¸»úÂçʸ»ú(g,'G') :- !. ¾®Ê¸»úÂçʸ»ú(h,'H') :- !. ¾®Ê¸»úÂçʸ»ú(i,'I') :- !. ¾®Ê¸»úÂçʸ»ú(j,'J') :- !. ¾®Ê¸»úÂçʸ»ú(k,'K') :- !. ¾®Ê¸»úÂçʸ»ú(l,'L') :- !. ¾®Ê¸»úÂçʸ»ú(m,'M') :- !. ¾®Ê¸»úÂçʸ»ú(n,'N') :- !. ¾®Ê¸»úÂçʸ»ú(o,'O') :- !. ¾®Ê¸»úÂçʸ»ú(p,'P') :- !. ¾®Ê¸»úÂçʸ»ú(q,'Q') :- !. ¾®Ê¸»úÂçʸ»ú(r,'R') :- !. ¾®Ê¸»úÂçʸ»ú(s,'S') :- !. ¾®Ê¸»úÂçʸ»ú(t,'T') :- !. ¾®Ê¸»úÂçʸ»ú(u,'U') :- !. ¾®Ê¸»úÂçʸ»ú(v,'V') :- !. ¾®Ê¸»úÂçʸ»ú(w,'W') :- !. ¾®Ê¸»úÂçʸ»ú(x,'X') :- !. ¾®Ê¸»úÂçʸ»ú(y,'Y') :- !. ¾®Ê¸»úÂçʸ»ú(z,'Z') :- !. ¾®Ê¸»úÂçʸ»ú(_ʸ»ú,_ʸ»ú). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/889 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂê # 0¤«¤é255¤Þ¤Ç¤ÎÀ°¿ô¤ò8bit¤Î2¿Ê¿ô¤Çɽ¤ï¤·¡¢¾®¤µ¤¤Êý¤«¤é½ç¤Ëº¸¤«¤é±¦¤ØÊ¤١¢ # ¤½¤ì¤é¤ò¾å°Ì¤Îbit¤«¤é6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­¡¢ # (ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë) # ÊÑ´¹¸å¤Î¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤Î½Ð¸½¿ô¤ò¥«¥¦¥ó¥È¤·¡¢À°¿ô¤È¤½¤Î½Ð¸½¿ô¤òɽ¼¨¤¹¤ë¡£ # ɽ¼¨¤¹¤ëºÝ¤Ï¡¢À°¿ô¤Ï6bit¤Çɽ¼¨¤·¡¢À°¿ô¤Î¾®¤µ¤¤½ç¤Ë½ÐÎϤ¹¤ë¤³¤È¡£ # Îã¡§ # 00000000 00000001 00000010 ... # ¢­ # 000000 000000 000100 000010 ... # ¢­ # 000000 XX²ó # 000001 XX²ó # ... # 111111 XX²ó # # '0¤«¤é255¤Þ¤Ç¤ÎÀ°¿ô¤ò8bit¤Î2¿Ê¿ô¤Çɽ¤ï¤·¡¢¾®¤µ¤¤Êý¤«¤é½ç¤Ëº¸¤«¤é±¦¤ØÊ¤١¢ ¤½¤ì¤é¤ò¾å°Ì¤Îbit¤«¤é6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­¡¢ (ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë) ÊÑ´¹¸å¤Î¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤Î½Ð¸½¿ô¤ò¥«¥¦¥ó¥È¤·¡¢À°¿ô¤È¤½¤Î½Ð¸½¿ô¤òɽ¼¨¤¹¤ë¡£ ɽ¼¨¤¹¤ëºÝ¤Ï¡¢À°¿ô¤Ï6bit¤Çɽ¼¨¤·¡¢À°¿ô¤Î¾®¤µ¤¤½ç¤Ë½ÐÎϤ¹¤ë¤³¤È¡£ Îã¡§ 00000000 00000001 00000010 ... ¢­ 000000 000000 000100 000010 ... ¢­ 000000 XX²ó 000001 XX²ó ... 111111 XX²ó' :- '0¤«¤é255¤Þ¤Ç¤ÎÀ°¿ô¤ò8bit¤Î2¿Ê¿ô¤Çɽ¤ï¤·'(_256¸Ä¤Î2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó), '¤½¤ì¤é¤ò¾å°Ì¤Îbit¤«¤é6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­(ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë)'(_256¸Ä¤Î2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó), 'ÊÑ´¹¸å¤Î¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤Î½Ð¸½¿ô¤ò¥«¥¦¥ó¥È¤·¡¢À°¿ô¤È¤½¤Î½Ð¸½¿ô¤òɽ¼¨¤¹¤ë'(_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó). '0¤«¤é255¤Þ¤Ç¤ÎÀ°¿ô¤ò8bit¤Î2¿Ê¿ô¤Çɽ¤ï¤·'(_256¸Ä¤Î2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó) :- findall(_Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,( between(0,255,N), Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó(N,[],_Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó)), _256¸Ä¤Î2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó). Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó(0,L,L) :- !. Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó(N,L1,L) :- M is N mod 2, D is N // 2, Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó(D,[M|L1],L). '¤½¤ì¤é¤ò¾å°Ì¤Îbit¤«¤é6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­(ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë)'(_256¸Ä¤Î2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó) :- flatten(_256¸Ä¤Î2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_ʿ󲽤µ¤ì¤¿¥Ó¥Ã¥È¤Ê¤é¤Ó), '6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­(ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë)'(_ʿ󲽤µ¤ì¤¿¥Ó¥Ã¥È¤Ê¤é¤Ó,_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó). '6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­(ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë)'([_1,_2,_3,_4,_5,_6|R1],[[_1,_2,_3,_4,_5,_6],R2]) :- '6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­(ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë)'(R1,R2). '6bit¤Å¤Ä¶èÀڤäÆ342¸Ä¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤È¤­(ºÇ¸å¤Ë2bit¤¢¤Þ¤ë¤Î¤Ç²¼°Ì4bit¤ò0¤ÇËä¤á¤ë)'(_2bit¤¢¤Þ¤ê,[_²¼°Ì4bit0¤ÇËä¤á¤¿6¸ÄÁÈ]) :- append(_2bit¤¢¤Þ¤ê,[0,0,0,0],_²¼°Ì4bit0¤ÇËä¤á¤¿6¸ÄÁÈ). 'ÊÑ´¹¸å¤Î¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤Î½Ð¸½¿ô¤ò¥«¥¦¥ó¥È¤·¡¢À°¿ô¤È¤½¤Î½Ð¸½¿ô¤òɽ¼¨¤¹¤ë'(_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó) :- _2¤Î6¾è¤Î¾å¸ÂÃÍ is truncate(2 ^ 6 - 1), between(0,_2¤Î6¾è¤Î¾å¸ÂÃÍ,N), '¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤Î½Ð¸½¿ô¤ò¥«¥¦¥ó¥È¤·'(_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,N,_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_ÉÑÅÙ), À°¿ô¤È¤½¤Î½Ð¸½¿ô¤òɽ¼¨¤¹¤ë(_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_ÉÑÅÙ), N = _2¤Î6¾è¤Î¾å¸ÂÃÍ. '¤½¤ì¤¾¤ì¤ÎÀ°¿ô¤Î½Ð¸½¿ô¤ò¥«¥¦¥ó¥È¤·'(_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,N,_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_ÉÑÅÙ) :- '6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó'(N,_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó), count(member(_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_342¸Ä¤Î6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó),_ÉÑÅÙ). '6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó'(N,L) :- length(L,6), Æó¿Ê¿ôɽ¼¨¤Ê¤é¤Ó(N,[],L1), append(L0,L1,L), all(L0,0). all([],_). all([A|R],A) :- all(R,A). À°¿ô¤È¤½¤Î½Ð¸½¿ô¤òɽ¼¨¤¹¤ë(_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_ÉÑÅÙ) :- atomic_list_concat(_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨¤Ê¤é¤Ó,_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨Ê¸»úÎó), À°¿ô¤«¤éƬÉô¶õÇòʸ»úÎó(3,_ÉÑÅÙ,_ÉÑÅÙɽ¼¨Ê¸»úÎó), writef('%t%t²ó\n',[_6¥Ó¥Ã¥È2¿Ê¿ôɽ¼¨Ê¸»úÎó,_ÉÑÅÙɽ¼¨Ê¸»úÎó]). À°¿ô¤«¤éƬÉô¶õÇòʸ»úÎó(N·å,_À°¿ô,_À°¿ôɽ¼¨Ê¸»úÎó) :- length(L,N·å), nuber_chars(_À°¿ô,L1), append(L0,L1,L), all(L0,' '), atomic_list_concat(L,_À°¿ôɽ¼¨Ê¸»úÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349545643/775 # # ¡Ú¤ªÂê¡Û # ¥³¥é¥Ã¥ÄͽÁۤȤϡ¢¡ÖǤ°Õ¤Î0¤Ç¤Ê¤¤¼«Á³¿ôn¤ò¤È¤ê¡¢ # ¡¦n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë # ¡¦n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹ # ¤È¤¤¤¦Áàºî¤ò·«¤êÊÖ¤¹¤È¡¢Í­¸Â²ó¤Ç1¤ËÅþ㤹¤ë¡×¤È¤¤¤¦¼çÄ¥¤Ç¤¢¤ë¡£ # # n¤«¤é¥¹¥¿¡¼¥È¤·¤Æ1¤ËÅþ㤹¤ë¤Þ¤Ç¤Î¥¹¥Æ¥Ã¥×¤òs¤È¤·¤¿¤È¤­¡¢ # n = 1 .. 100000¤Ë¤Ä¤¤¤Æs¤ò·×»»¤·¡¢ºÇŤÎs¤ò½ÐÎϤ»¤è¡£ # # ¤¿¤À¤·¡¢¤½¤ì¤¾¤ì¤În¤ËÂФ¹¤ës¤Î·×»»¤ÏÊÂÎó¡Ê¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹Ìä¤ï¤Ê¤¤¡Ë¤Ç¹Ô¤¦»ö¡£ # # '¥³¥é¥Ã¥ÄͽÁۤȤϡ¢¡ÖǤ°Õ¤Î0¤Ç¤Ê¤¤¼«Á³¿ôn¤ò¤È¤ê¡¢ ¡¦n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë ¡¦n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹ ¤È¤¤¤¦Áàºî¤ò·«¤êÊÖ¤¹¤È¡¢Í­¸Â²ó¤Ç1¤ËÅþ㤹¤ë¡×¤È¤¤¤¦¼çÄ¥¤Ç¤¢¤ë¡£ n¤«¤é¥¹¥¿¡¼¥È¤·¤Æ1¤ËÅþ㤹¤ë¤Þ¤Ç¤Î¥¹¥Æ¥Ã¥×¤òs¤È¤·¤¿¤È¤­¡¢ n = 1 .. 100000¤Ë¤Ä¤¤¤Æs¤ò·×»»¤·¡¢ºÇŤÎs¤ò½ÐÎϤ»¤è¡£'(_n,_ºÇŤÎs) :- findall(_Id¤Ê¤é¤Ó,( between(1,100000,_n), message_queue_create(_Id), thread_create(¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_ID,_n),_,[])), _Id¤Ê¤é¤Ó), ºÇŤÎs¤ò½ÐÎϤ¹¤ë(_Id¤Ê¤é¤Ó). ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_ID,_n) :- ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n,0,_²ó¿ô), thread_send_massage(_ID,_²ó¿ô). ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(1,_²ó¿ô,_²ó¿ô) :- !. ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n,_²ó¿ô_1,_²ó¿ô) :- 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2), _²ó¿ô_2 is _²ó¿ô_1 + 1, ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n_2,_²ó¿ô_2,_²ó¿ô),!. 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,n_2) :- 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë'(_n,_n_2). 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2) :- 'n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2). 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë'(_n,_n_2) :- _n_2 is _n // 2. 'n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2) :- 1 is _n mod 2, _n_2 is _n * 3 + 1. ºÇŤÎs¤ò½ÐÎϤ¹¤ë(_Id¤Ê¤é¤Ó) :- findmax(_n,( between(1,100000,_), repeat, thread_get_massage(_Id,_n)), _ºÇŤÎs), writef('ºÇŤÎs¤Ï %t ¤Ç¤¹¡£\n',[_ºÇŤÎs]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349545643/775 # # ¡Ú¤ªÂê¡Û # ¥³¥é¥Ã¥ÄͽÁۤȤϡ¢¡ÖǤ°Õ¤Î0¤Ç¤Ê¤¤¼«Á³¿ôn¤ò¤È¤ê¡¢ # ¡¦n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë # ¡¦n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹ # ¤È¤¤¤¦Áàºî¤ò·«¤êÊÖ¤¹¤È¡¢Í­¸Â²ó¤Ç1¤ËÅþ㤹¤ë¡×¤È¤¤¤¦¼çÄ¥¤Ç¤¢¤ë¡£ # # n¤«¤é¥¹¥¿¡¼¥È¤·¤Æ1¤ËÅþ㤹¤ë¤Þ¤Ç¤Î¥¹¥Æ¥Ã¥×¤òs¤È¤·¤¿¤È¤­¡¢ # n = 1 .. 100000¤Ë¤Ä¤¤¤Æs¤ò·×»»¤·¡¢ºÇŤÎs¤ò½ÐÎϤ»¤è¡£ # # ¤¿¤À¤·¡¢¤½¤ì¤¾¤ì¤În¤ËÂФ¹¤ës¤Î·×»»¤ÏÊÂÎó¡Ê¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹Ìä¤ï¤Ê¤¤¡Ë¤Ç¹Ô¤¦»ö¡£ # # '¥³¥é¥Ã¥ÄͽÁۤȤϡ¢¡ÖǤ°Õ¤Î0¤Ç¤Ê¤¤¼«Á³¿ôn¤ò¤È¤ê¡¢ ¡¦n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë ¡¦n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹ ¤È¤¤¤¦Áàºî¤ò·«¤êÊÖ¤¹¤È¡¢Í­¸Â²ó¤Ç1¤ËÅþ㤹¤ë¡×¤È¤¤¤¦¼çÄ¥¤Ç¤¢¤ë¡£ n¤«¤é¥¹¥¿¡¼¥È¤·¤Æ1¤ËÅþ㤹¤ë¤Þ¤Ç¤Î¥¹¥Æ¥Ã¥×¤òs¤È¤·¤¿¤È¤­¡¢ n = 1 .. 100000¤Ë¤Ä¤¤¤Æs¤ò·×»»¤·¡¢ºÇŤÎs¤ò½ÐÎϤ»¤è¡£'(_n,_ºÇŤÎs) :- findmax(_²ó¿ô,( between(1,100000,_n), ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n,_²ó¿ô)), _ºÇŤÎs). ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n,_²ó¿ô) :- ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n,0,_²ó¿ô). ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(1,_²ó¿ô,_²ó¿ô) :- !. ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n,_²ó¿ô_1,_²ó¿ô) :- 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2), _²ó¿ô_2 is _²ó¿ô_1 + 1, ¥³¥é¥Ã¥Ä¤ÎͽÁÛ(_n_2,_²ó¿ô_2,_²ó¿ô),!. 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,n_2) :- 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë'(_n,_n_2). 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2) :- 'n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2). 'n¤¬¶ö¿ô¤Î¾ì¹ç¡¢n¤ò2¤Ç³ä¤ë'(_n,_n_2) :- _n_2 is _n // 2. 'n¤¬´ñ¿ô¤Î¾ì¹ç¡¢n¤Ë3¤ò¤«¤±¤Æ1¤ò­¤¹'(_n,_n_2) :- 1 is _n mod 2, _n_2 is _n * 3 + 1. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349545643/769 # # ¡Ú¤ªÂê¡Û # 1) 1¡Á100¤«¤é¥é¥ó¥À¥à¤ËÃê½Ð¤·¤¿À°¿ô10¸Ä¤òÍ×ÁǤ˻ý¤ÄÇÛÎó¤òºîÀ®¤·¡¢ # 2) ¤½¤ÎÊ¿¶ÑÃͤȡ¢ # 3) ³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤÎÊ¿¶Ñ¤ÎÊ¿Êýº¬¡Êɸ½àÊк¹¡Ë¤ò»»½Ð¤·¤Æ¡¢ # 4) 1)¡Á3)¤Î·ë²Ì¤ò½ÐÎϤ¹¤ë¥³¡¼¥É¤ò¤É¤¦½ñ¤¯¡© # # ¸À¸ì¤Î¥Ù¡¼¥µ¥ë¤Êɽ¸½¼ÂÁõÎϤ¬¸«¤Æ¤ß¤¿¤¤¤Î¤Ç¡¢ # ²Äǽ¤Ç¤¢¤ì¤Ð import ¤ä require Åù¤Î # µ¡Ç½Äɲäò¤·¤Ê¤¤ÁǤξõÂ֤ǤΥÁ¥ã¥ì¥ó¥¸¤¬Ë¾¤Þ¤·¤¤¡£ # # ½ÐÎÏÎã¡§ # [77, 62, 26, 17, 88, 40, 14, 11, 4, 49] # 38.8 # 27.85964823898536 # # ÀµÄ¾¡¢¥Ç¥Õ¥©¤Ç¤³¤ì¤éµ¡Ç½¤òÍ­¤¹¤ëÅý·×½èÍý¤ÎLLã¤Î¥¢¥Ô¡¼¥ë¤ò´üÂÔ¤·¤¿¤ªÂê¤À¤±¤ì¤É # ¥ë¡¼¥×Åù¤Ç¤·¤«½ñ¤±¤½¤¦¤â¤Ê¤¤ÉáÄ̤ÎLLÀª¤â¤Ò¤Í¤ê¤ò²Ã¤¨¤ë¤Ê¤É¤·¤ÆÌÌÇò¤¯¤·¤ÆÍߤ·¤¤¡£ # # '1) 1¡Á100¤«¤é¥é¥ó¥À¥à¤ËÃê½Ð¤·¤¿À°¿ô10¸Ä¤òÍ×ÁǤ˻ý¤ÄÇÛÎó¤òºîÀ®¤·¡¢ 2) ¤½¤ÎÊ¿¶ÑÃͤȡ¢ 3) ³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤÎÊ¿¶Ñ¤ÎÊ¿Êýº¬ ɸ½àÊк¹¡Ë¤ò»»½Ð¤·¤Æ¡¢ 4) 1)¡Á3)¤Î·ë²Ì¤ò½ÐÎϤ¹¤ë' :- '1) 1¡Á100¤«¤é¥é¥ó¥À¥à¤ËÃê½Ð¤·¤¿À°¿ô10¸Ä¤òÍ×ÁǤ˻ý¤ÄÇÛÎó¤òºîÀ®¤·¡¢'(_À°¿ô¥ê¥¹¥È), '2) ¤½¤ÎÊ¿¶ÑÃͤȡ¢'(_À°¿ô¥ê¥¹¥È,_Ê¿¶ÑÃÍ), '3) ³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤÎÊ¿¶Ñ¤ÎÊ¿Êýº¬¡Êɸ½àÊк¹¡Ë¤ò»»½Ð¤·¤Æ¡¢ '(_À°¿ô¥ê¥¹¥È,_Ê¿¶ÑÃÍ,_ɸ½àÊк¹), '4) 1)¡Á3)¤Î·ë²Ì¤ò½ÐÎϤ¹¤ë'(_À°¿ô¥ê¥¹¥È,_Ê¿¶ÑÃÍ,_ɸ½àÊк¹). '1) 1¡Á100¤«¤é¥é¥ó¥À¥à¤ËÃê½Ð¤·¤¿À°¿ô10¸Ä¤òÍ×ÁǤ˻ý¤ÄÇÛÎó¤òºîÀ®¤·¡¢'(_À°¿ô¥ê¥¹¥È) :- findall(_¥é¥ó¥À¥à¤ËÃê½Ð¤·¤¿À°¿ô,( between(1,10,_), _¥é¥ó¥À¥à¤ËÃê½Ð¤·¤¿À°¿ô is random(100) + 1), _À°¿ô¥ê¥¹¥È). '2) ¤½¤ÎÊ¿¶ÑÃͤȡ¢'(_À°¿ô¥ê¥¹¥È,_Ê¿¶ÑÃÍ) :- length(_À°¿ô¥ê¥¹¥È,_Í×ÁÇ¿ô), sum(_À°¿ô¥ê¥¹¥È,_¹ç·×), _Ê¿¶ÑÃÍ is _¹ç·× / _Í×ÁÇ¿ô. '3) ³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤÎÊ¿¶Ñ¤ÎÊ¿Êýº¬¡Êɸ½àÊк¹¡Ë¤ò»»½Ð¤·¤Æ¡¢ '(_À°¿ô¥ê¥¹¥È,_Ê¿¶ÑÃÍ,_ɸ½àÊк¹) :- length(_À°¿ô¥ê¥¹¥È,_Í×ÁÇ¿ô), '³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×'(_À°¿ô¥ê¥¹¥È,_Ê¿¶ÑÃÍ,_³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×), Æó¾èÃͤÎÊ¿¶Ñ¤ÎÊ¿Êýº¬(_Í×ÁÇ¿ô,_³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×,_ɸ½àÊк¹). '³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×'([],_,0). '³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×'([_Í×ÁÇ|R],_Ê¿¶ÑÃÍ,S_1) :- '³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×'(R,_Ê¿¶ÑÃÍ,S_2), S_1 is (_Ê¿¶ÑÃÍ - _Í×ÁÇ) * (_Ê¿¶ÑÃÍ - _Í×ÁÇ) + S_2. Æó¾èÃͤÎÊ¿¶Ñ¤ÎÊ¿Êýº¬(_Í×ÁÇ¿ô,_³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·×,_ɸ½àÊк¹) :- _Æó¾èÃͤÎÊ¿¶Ñ is _³ÆÍ×ÁǤÎÊ¿¶ÑÃͤ«¤é¤Îº¹¤ÎÆó¾èÃͤιç·× / _Í×ÁÇ¿ô, _ɸ½àÊк¹ is sqrt(_Æó¾èÃͤÎÊ¿¶Ñ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1343899481/271 # # Oracle11gR2¤Ç # # ID¡¡¡¡Count # 1 3 # 2 2 # 3 3 # # ¤³¤¦¤¤¤¦¥Ç¡¼¥¿¤ò¸µ¤Ë # # Seq ID # 1 1 # 2 1 # 3 1 # 4 2 # 5 2 # 6 3 # 7 3 # 8 3 # # ¤³¤ó¤Ê´¶¤¸¤ÎCount(*)¤ÎµÕ¤òºî¤ê¤¿¤¤¤±¤É¡¢PL/SQL»È¤ï¤º¤Ëºî¤ë¤Ë¤Ï¡¢¤É¤¦¤·¤¿¤é¤¤¤¤¡© # Seq¤Ï¤Ê¤¯¤Æ¤â¤¤¤¤ # 'ID¡¡¡¡Count 1 3 2 2 3 3 ¤³¤¦¤¤¤¦¥Ç¡¼¥¿¤ò¸µ¤Ë Seq ID 1 1 2 1 3 1 4 2 5 2 6 3 7 3 8 3 ¤³¤ó¤Ê´¶¤¸¤ÎCount(*)¤ÎµÕ¤òºî¤ê¤¿¤¤¤±¤É¡¢PL/SQL»È¤ï¤º¤Ëºî¤ë¤Ë¤Ï¡¢¤É¤¦¤·¤¿¤é¤¤¤¤¡©'(_¥Æ¡¼¥Ö¥ë̾,_Seq,_ID) :- ¼Â¹Ô¹à¤ÎÀ¸À®(_¥Æ¡¼¥Ö¥ë̾,_ID,_¼Â¹Ô¹à), 'ID¤´¤È¤Î¥«¥¦¥ó¥È¤ò¼è¤ë'(_ID,_¼Â¹Ô¹à,_ID_ÉÑÅ٤ʤé¤Ó), sort(_ID_ÉÑÅ٤ʤé¤Ó,_À°Îó¤·¤¿_ID_ÉÑÅ٤ʤé¤Ó), 'SeqÁȤòÀ¸À®'(1,_À°Îó¤·¤¿_ID_ÉÑÅ٤ʤé¤Ó,_Seq,_ID). ¼Â¹Ô¹à¤ÎÀ¸À®(_¥Æ¡¼¥Ö¥ë̾,_ID,_¼Â¹Ô¹à) :- findmax(Nth1,¥Æ¡¼¥Ö¥ëÄêµÁ(_¥Æ¡¼¥Ö¥ë̾,Nth1,_),_ÁȤÎÍ×ÁÇ¿ô), length(L,_ÁȤÎÍ×ÁÇ¿ô), _¼Â¹Ô¹à =.. [_¥Æ¡¼¥Ö¥ë̾|L], ¥Æ¡¼¥Ö¥ëÄêµÁ(_¥Æ¡¼¥Ö¥ë̾,_ID¤Î°ÌÃÖ,'ID'), nth1(_ID¤Î°ÌÃÖ,L,_ID). 'ID¤´¤È¤Î¥«¥¦¥ó¥È¤ò¼è¤ë'(_ID,_¼Â¹Ô¹à,_ID_ÉÑÅ٤ʤé¤Ó) :- setof(_ID,[_ID,_¼Â¹Ô¹à] ^_¼Â¹Ô¹à,_ID¤Ê¤é¤Ó), findall([_ID,_ÉÑÅÙ],( member(_ID,_ID¤Ê¤é¤Ó), count(_¼Â¹Ô¹à,_ÉÑÅ٤ʤé¤Ó)),_ID_ÉÑÅ٤ʤé¤Ó). 'SeqÁȤòÀ¸À®'(N_1,[[_ID,_ÉÑÅÙ]|R],_Seq,_ID) :- N_2 is N_1 + _ÉÑÅÙ - 1, between(N_1,N_2,_Seq). 'SeqÁȤòÀ¸À®'(N_1,[[_ID,_ÉÑÅÙ]|R],_Seq,_ID) :- N_2 is N_1 + _ÉÑÅÙ, 'SeqÁȤòÀ¸À®'(N_2,R,_Seq,_ID). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/867 # # [1] ¥×¥í¥°¥é¥ß¥ó¥°´ðÁà # [2] 5¿Í¤Î³ØÀ¸¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢ÂνŤòÆþÎϤ· # Ê¿¶Ñ¿ÈĹave_heigh¡¢Ê¿¶ÑÂνÅave_weight¤òµá¤á¤ë¡£ # ¤¿¤À¤·¡¢³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹¤Ï 2¼¡¸µÇÛÎódata[5][5]¤Ë³ÊǼ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ # # ³ØÀ¸Èֹ桢¿ÈĹ¡¢ÂνŤγơ¹¤òkey¤Ë¤·¤Æ¾º½ç¡¢¹ß½ç¤Î¤É¤Á¤é¤Ç¤â¥½¡¼¥È¤Ç¤­¤ë¤è¤¦¤Ë¤»¤è¡£ # ¤¿¤À¤·¡¢¥½¡¼¥È½èÍý¤Ï´Ø¿ô²½¤·¥½¡¼¥È¥¢¥ë¥´¥ê¥º¥à¤Ë¤ÏÁªÂò¥½¡¼¥È¡¢¥Ð¥Ö¥ë¥½¡¼¥È¡¢¥¯¥¤¥Ã¥¯¥½¡¼¥È¤Î²¿¤ì¤«¤òÁªÂò²Äǽ¤È¤¹¤ë¤³¤È¡£ # '5¿Í¤Î³ØÀ¸¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢ÂνŤòÆþÎϤ·¡¢ Ê¿¶Ñ¿ÈĹ¡¢Ê¿¶ÑÂνŤòµá¤á¤ë¡£ ³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹¤òÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'(_¤Ê¤é¤Ó) :- '5¿Í¤Î³ØÀ¸¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢ÂνŤòÆþÎϤ·'(_5¿Í¤Î³ØÀ¸¤Î³ØÀ¸ÈÖ¹æ_¿ÈĹ_ÂνÅ), '5¿Í¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤòÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'(_5¿Í¤Î³ØÀ¸¤Î³ØÀ¸ÈÖ¹æ_¿ÈĹ_ÂνÅ,_¤Ê¤é¤Ó). '5¿Í¤Î³ØÀ¸¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢ÂνŤòÆþÎϤ·'(_5¿Í¤Î³ØÀ¸¤Î³ØÀ¸ÈÖ¹æ_¿ÈĹ_ÂνÅ) :- findall([_³ØÀ¸ÈÖ¹æ,_¿ÈĹ,_ÂνÅ],( between(1,5,_), À°¿ô¤òÆÀ¤ë(³ØÀ¸ÈÖ¹æ,_³ØÀ¸ÈÖ¹æ > 0,_³ØÀ¸ÈÖ¹æ), ¿ô¤òÆÀ¤ë(¿ÈĹ,_¿ÈĹ > 0,_¿ÈĹ), ¿ô¤òÆÀ¤ë(ÂνÅ,_ÂνŠ> 0,_ÂνÅ)), _5¿Í¤Î³ØÀ¸¤Î³ØÀ¸ÈÖ¹æ_¿ÈĹ_ÂνÅ). '5¿Í¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤòÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'(_5¿Í¤Î³ØÀ¸¤Î³ØÀ¸ÈÖ¹æ_¿ÈĹ_ÂνÅ,_¤Ê¤é¤Ó) :- '5¿Í¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤòÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'(_5¿Í¤Î³ØÀ¸¤Î³ØÀ¸ÈÖ¹æ_¿ÈĹ_ÂνÅ,0,0,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ,_¤Ê¤é¤Ó). '5¿Í¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤòÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'([],_¿ÈĹ¤Î¹ç·×,_ÂνŤιç·×,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ,[]) :- '5¿Í¤Î¿ÈĹ¡¢ÂνŤÎÊ¿¶Ñ¤ò»»½Ð¤¹¤ë'(_¿ÈĹ¹ç·×,_ÂνŹç·×,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ). '5¿Í¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤòÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'([[_³ØÀ¸ÈÖ¹æ,_¿ÈĹ,_ÂνÅ]|R1],_¿ÈĹ¹ç·×_1,_ÂνŹç·×_1,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ,[[_³ØÀ¸ÈÖ¹æ,_¿ÈĹ,_¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹,_ÂνÅ,_ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹]|R2]) :- '¿ÈĹ¹ç·×¡¢ÂνŹç·×¤Ë²Ã»»¤¹¤ë'(_¿ÈĹ,_ÂνÅ,_¿ÈĹ¹ç·×_1,_ÂνŹç·×_1,_¿ÈĹ¹ç·×_2,_ÂνŹç·×_2), '5¿Í¤Î³ØÀ¸Èֹ桢¿ÈĹ¡¢¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢Âνš¢ÂνŤòÁȤȤ¹¤ë¤Ê¤é¤Ó¤Ë³ÊǼ¤¹¤ë'(R1,_¿ÈĹ¹ç·×_2,_ÂνŹç·×_2,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ,R2), '¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹¤òµá¤á¤ë'(_¿ÈĹ,_ÂνÅ,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ,_¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹,_ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹). '5¿Í¤Î¿ÈĹ¡¢ÂνŤÎÊ¿¶Ñ¤ò»»½Ð¤¹¤ë'(_¿ÈĹ¹ç·×,_ÂνŹç·×,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ) :- _¿ÈŤÎÊ¿¶Ñ is _¿ÈĹ¤Î¹ç·× / 5, _ÂνŤÎÊ¿¶Ñ is _ÂνŤιç·× / 5. '¿ÈĹ¹ç·×¡¢ÂνŹç·×¤Ë²Ã»»¤¹¤ë'(_¿ÈĹ,_ÂνÅ,_¿ÈĹ¹ç·×_1,_ÂνŹç·×_1,_¿ÈĹ¹ç·×_2,_ÂνŹç·×_2) :- _¿ÈĹ¹ç·×_2 is _¿ÈĹ¹ç·×_1 + _¿ÈĹ, _ÂνŹç·×_2 is _ÂνŹç·×_1 + _ÂνÅ. '¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹¡¢ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹¤òµá¤á¤ë'(_¿ÈĹ,_ÂνÅ,_¿ÈŤÎÊ¿¶Ñ,_ÂνŤÎÊ¿¶Ñ,_¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹,_ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹) :- _¿ÈŤÎÊ¿¶Ñ¤«¤é¤Îº¹ is _¿ÈĹ - _¿ÈŤÎÊ¿¶Ñ, _ÂνŤÎÊ¿¶Ñ¤«¤é¤Îº¹ is _ÂνŠ- _ÂνŤÎÊ¿¶Ñ. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/837 # # ñ¸µ £Ã¸À¸ìÇÛÎó # ÌäÂ꣱¡¡Float·¿ÇÛÎó¤Ë¥Þ¥¯¥í¤Ç»ØÄꤷ¤¿¸Ä¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ # ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # ÌäÂꣲ¡¡¾åµ­¤ÎÌäÂê¤Ç·ë²Ì¤ò¾®¤µ¤¤½ç¤Çɽµ­¤»¤è¡£ # ´Ä¶­¡¡Linux gcc £Ã¸À¸ì # ´ü¸Â¡¡º£½µÆüÍËÆü¤Þ¤Ç # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ # # '¤Ê¤é¤Ó¤Ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ¡¢¾®¤µ¤¤½ç¤Çɽµ­¤»¤è¡£'(_»ØÄꤷ¤¿¸Ä¿ô) :- '¤Ê¤é¤Ó¤Ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ'(_»ØÄꤷ¤¿¸Ä¿ô,_¤Ê¤é¤Ó), À°Îó(_¤Ê¤é¤Ó,_À°Îó¤·¤¿¤Ê¤é¤Ó), writef('%t\n',[_À°Îó¤·¤¿¤Ê¤é¤Ó]). '¤Ê¤é¤Ó¤Ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ'(_»ØÄꤷ¤¿¸Ä¿ô,_¤Ê¤é¤Ó) :- findall(_ÉâÆ°¾®¿ôÅÀ¿ô,( between(1,_»ØÄꤷ¤¿¸Ä¿ô,_), _ÉâÆ°¾®¿ôÅÀ¿ô is (-1 ^ (random(2)+1)) * random(10000) / (random(10000) + 1)), _¤Ê¤é¤Ó). À°Îó([],[]). À°Îó([A|R],L) :- ʬ³ä(A,R,L1,L2), À°Îó(L1,L1_2), À°Îó(L2,L2_2), append(L1_2,[A|L2_2],L). ʬ³ä(_,[],[],[]). ʬ³ä(A,[B|R1],[B|R2],R3) :- B @=< A, ʬ³ä(A,R1,R2,R3). ʬ³ä(A,[B|R1],R2,[B|R3]) :- A @< B, ʬ³ä(A,R1,R2,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/837 # # ñ¸µ £Ã¸À¸ìÇÛÎó # ÌäÂ꣱¡¡Float·¿ÇÛÎó¤Ë¥Þ¥¯¥í¤Ç»ØÄꤷ¤¿¸Ä¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ # ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # ÌäÂꣲ¡¡¾åµ­¤ÎÌäÂê¤Ç·ë²Ì¤ò¾®¤µ¤¤½ç¤Çɽµ­¤»¤è¡£ # ´Ä¶­¡¡Linux gcc £Ã¸À¸ì # ´ü¸Â¡¡º£½µÆüÍËÆü¤Þ¤Ç # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ # # '¤Ê¤é¤Ó¤Ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë'(_»ØÄꤷ¤¿¸Ä¿ô) :- '¤Ê¤é¤Ó¤Ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ'(_»ØÄꤷ¤¿¸Ä¿ô,_¤Ê¤é¤Ó), ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë(_¤Ê¤é¤Ó). '¤Ê¤é¤Ó¤Ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎÍð¿ô¡Êrand¤ò»È¤¦¡Ë¤ò³ÊǼ¤·¤Æ'(_»ØÄꤷ¤¿¸Ä¿ô,_¤Ê¤é¤Ó) :- findall(_ÉâÆ°¾®¿ôÅÀ¿ô,( between(1,_»ØÄꤷ¤¿¸Ä¿ô,_), _ÉâÆ°¾®¿ôÅÀ¿ô is (-1 ^ (random(2)+1)) * random(10000) / (random(10000) + 1)), _¤Ê¤é¤Ó). ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿¸Ä¿ô,[_Âè°ìÍ×ÁÇ|_»Ä¤ê¤Ê¤é¤Ó]) :- ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿¸Ä¿ô,_¤Ê¤é¤Ó,_Âè°ìÍ×ÁÇ,_ºÇÂçÃÍ,0.0,_Ê¿¶ÑÃÍ), writef('Ê¿¶ÑÃÍ = %t, ºÇÂçÃÍ = %t\n',[_Ê¿¶ÑÃÍ,_ºÇÂçÃÍ]). ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿¸Ä¿ô,[],_ºÇÂçÃÍ,_ºÇÂçÃÍ,_¹ç·×,_Ê¿¶ÑÃÍ) :- _Ê¿¶ÑÃÍ is _¹ç·× / _»ØÄꤷ¤¿¸Ä¿ô,!. ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿¸Ä¿ô,[_ÃÍ|R],_ºÇÂçÃÍ_1,_ºÇÂçÃÍ,_¹ç·×_1,_Ê¿¶ÑÃÍ) :- ºÇÂçÃͤϤɤÁ¤é¤«(_ÃÍ,_ºÇÂçÃÍ_1,_ºÇÂçÃÍ_2), _¹ç·×_2 is _¹ç·×_1 + _ÃÍ, ¤½¤ÎÊ¿¶ÑÃͤȺÇÂçÃͤò½ÐÎϤ¹¤ë(_»ØÄꤷ¤¿¸Ä¿ô,R,_ÃÍ,_ºÇÂçÃÍ,_¹ç·×_2,_Ê¿¶ÑÃÍ). ºÇÂçÃͤϤɤÁ¤é¤«(_ÃÍ,_ºÇÂçÃÍ_1,_ÃÍ) :- _ÃÍ > _ºÇÂçÃÍ_1,!. ºÇÂçÃͤϤɤÁ¤é¤«(_ÃÍ,_ºÇÂçÃÍ_1,_¤³¤ì¤Þ¤Ç¤ÎºÇÂçÃÍ) :- _ÃÍ =< _ºÇÂçÃÍ_1. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/828 # # ñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°£± # ÌäÂê¡§¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò¤«¤±¡£ # ´Ä¶­¡§gcc¡¡£Ã¸À¸ì # ´ü¸Â¡§11/20¤Þ¤Ç # # ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë :- À°¿ô¤òÆÀ¤ë(¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô > 2,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô), ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë(_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô). ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë(_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô) :- ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Ê¤é¤Ó(_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Ê¤é¤Ó), ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Ê¤é¤Ó). ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Ê¤é¤Ó(_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Ê¤é¤Ó) :- ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎµÕ½çÁÇ¿ô¤Ê¤é¤Ó(1,-1,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,[3,2],_µÕ½çÁÇ¿ô¤Ê¤é¤Ó), reverse(_µÕ½çÁÇ¿ô¤Ê¤é¤Ó,__¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎÁÇ¿ô¤Ê¤é¤Ó),!. ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎµÕ½çÁÇ¿ô¤Ê¤é¤Ó(N,P_M,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,L,L) :- length(L,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô),!. ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎµÕ½çÁÇ¿ô¤Ê¤é¤Ó(M_1,_Plus_Minus,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,L1,L) :- ÁÇ¿ô¤Ï6¤ÎÇÜ¿ô¤ÎÁ°¸å¤Ë¤·¤«¸½¤ì¤Ê¤¤(M_1,_Plus_Minus,L1,L2,M_2,_Plus_Minus_2), ¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô¤ÎµÕ½çÁÇ¿ô¤Ê¤é¤Ó(M_2,_Plus_Minus_2,_¤¢¤ë»ØÄꤷ¤¿¸Ä¿ô,L2,L). ÁÇ¿ô¤Ï6¤ÎÇÜ¿ô¤ÎÁ°¸å¤Ë¤·¤«¸½¤ì¤Ê¤¤(M,-1,L1,[J|L1],N,1) :- N is 6 * M - 1, 'N¤ÏÁÇ¿ô¤«'(N),!. ÁÇ¿ô¤Ï6¤ÎÇÜ¿ô¤ÎÁ°¸å¤Ë¤·¤«¸½¤ì¤Ê¤¤(M,-1,L1,L1,M,1). ÁÇ¿ô¤Ï6¤ÎÇÜ¿ô¤ÎÁ°¸å¤Ë¤·¤«¸½¤ì¤Ê¤¤(M,1,L1,[J|L1],M_2,-1) :- N is 6 * M + 1, 'N¤ÏÁÇ¿ô¤«'(N), M_2 is M + 1,!. ÁÇ¿ô¤Ï6¤ÎÇÜ¿ô¤ÎÁ°¸å¤Ë¤·¤«¸½¤ì¤Ê¤¤(M,1,L1,L1,M_2,-1) :- M_2 is M + 1. 'N¤ÏÁÇ¿ô¤«'(N) :- N_2 is N // 2, between(2,N_2,M), 0 is N mod M,!, fail. 'N¤ÏÁÇ¿ô¤«'(_). ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó) :- length(_10¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,10), append(_10¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,_»Ä¤êÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤Ê¤é¤Ó), °ì¹Ô½ÐÎϤ¹¤ë(_10¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó), ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_»Ä¤êÁÇ¿ô¤Ê¤é¤Ó). ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_»Ä¤Ã¤¿ÁÇ¿ô¤Ê¤é¤Ó) :- °ì¹Ô½ÐÎϤ¹¤ë(_»Ä¤Ã¤¿ÁÇ¿ô¤Ê¤é¤Ó). °ì¹Ô½ÐÎϤ¹¤ë([]). °ì¹Ô½ÐÎϤ¹¤ë([A]) :- writef('%t\n',[A]),!. °ì¹Ô½ÐÎϤ¹¤ë([A|R]) :- writef('%t,',[A]), °ì¹Ô½ÐÎϤ¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/827 # # ñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°£± # ÌäÂê¡§¤¢¤ë»ØÄꤷ¤¿ÃͤޤǤÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò¤«¤±¡£ # ´Ä¶­¡§gcc¡¡£Ã¸À¸ì # ´ü¸Â¡§11/20¤Þ¤Ç # # ¤¢¤ë»ØÄꤷ¤¿ÃͤޤǤÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë :- ¤¢¤ë»ØÄꤷ¤¿ÃÍ(_¤¢¤ë»ØÄꤷ¤¿ÃÍ), ¤¢¤ë»ØÄꤷ¤¿ÃͤޤǤÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë(_¤¢¤ë»ØÄꤷ¤¿ÃÍ). ¤¢¤ë»ØÄꤷ¤¿ÃÍ(_¤¢¤ë»ØÄꤷ¤¿ÃÍ) :- À°¿ô¤òÆÀ¤ë('ÁÇ¿ô¤Îɽ¤Î¾å¸ÂÃÍ',_¤¢¤ë»ØÄꤷ¤¿ÃÍ > 0,_¤¢¤ë»ØÄꤷ¤¿ÃÍ),!. ¤¢¤ë»ØÄꤷ¤¿ÃͤޤǤÎÁÇ¿ô¤Îɽ¤ò½ÐÎϤ¹¤ë(_¤¢¤ë»ØÄꤷ¤¿ÃÍ) :- findall(N,( between(2,_¤¢¤ë»ØÄꤷ¤¿ÃÍ,N)), _2¤«¤é¤ÎÀ°¿ô¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤é¤ÎÀ°¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤Ê¤é¤Ó), ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_ÁÇ¿ô¤Ê¤é¤Ó) :- length(_10¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,10), append(_10¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó,_»Ä¤êÁÇ¿ô¤Ê¤é¤Ó,_ÁÇ¿ô¤Ê¤é¤Ó), °ì¹Ô½ÐÎϤ¹¤ë(_10¸Ä¤ÎÁÇ¿ô¤Ê¤é¤Ó), ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_»Ä¤êÁÇ¿ô¤Ê¤é¤Ó). ÁÇ¿ô¤Ê¤é¤Ó¤ò°ì¹Ô¤Ë10Í×ÁǤº¤Ä¤Îɽ¤È¤·¤Æ½ÐÎϤ¹¤ë(_»Ä¤Ã¤¿ÁÇ¿ô¤Ê¤é¤Ó) :- °ì¹Ô½ÐÎϤ¹¤ë(_»Ä¤Ã¤¿ÁÇ¿ô¤Ê¤é¤Ó). °ì¹Ô½ÐÎϤ¹¤ë([]). °ì¹Ô½ÐÎϤ¹¤ë([A]) :- writef('%t\n',[A]),!. °ì¹Ô½ÐÎϤ¹¤ë([A|R]) :- writef('%t,',[A]), °ì¹Ô½ÐÎϤ¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # Ï¢È֤Υ¨¥í²èÁü¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¥¹¥¯¥ê¥×¥È¤¯¤À¤µ¤¤ # # # %%% ¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë anonymouget %%% # anonymousget2 $2 $3 | ftp -n $1 # # %%% ¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë anonymousget2 %%% # echo user anonymous ***** # echo binary # echo get $1 $2 | plustosp # echo close # echo quit # # %%% plustosp.c %%% # #include # main() { # unsigned int c0,n; # n=0; # while((c0=getchar()) != EOF) { # if(c0=='+') # putchar(32); # else # putchar(c0); # } # } Ï¢È֤Υ¨¥í²èÁü¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë(_ftp¥µ¥¤¥È̾,_¥Õ¥¡¥¤¥ë̾,_¥µ¥Õ¥£¥Ã¥¯¥¹,_Ï¢ÈÖ·å¿ô,_Ï¢ÈÖµ¯ÅÀ,_Ï¢ÈÖ½ªÅÀ) :- Ï¢ÈÖ¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë(_ftp¥µ¥¤¥È̾,_¥Õ¥¡¥¤¥ë̾,_¥µ¥Õ¥£¥Ã¥¯¥¹,_Ï¢ÈÖ·å¿ô,_Ï¢ÈÖµ¯ÅÀ,_Ï¢ÈÖ½ªÅÀ). Ï¢ÈÖ¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë(_ftp¥µ¥¤¥È̾,_¥Õ¥¡¥¤¥ë̾,_¥µ¥Õ¥£¥Ã¥¯¥¹,_Ï¢ÈÖ·å¿ô,_Ï¢ÈÖµ¯ÅÀ,_Ï¢ÈÖ½ªÅÀ) :- anonymousget¤Î½àÈ÷, ¥À¥¦¥ó¥í¡¼¥ÉÂоݥե¡¥¤¥ë¤òÆÀ¤ë(_ftp¥µ¥¤¥È̾,_¥Õ¥¡¥¤¥ë̾,_¥µ¥Õ¥£¥Ã¥¯¥¹,_Ï¢ÈÖ·å¿ô,_Ï¢ÈÖµ¯ÅÀ,_Ï¢ÈÖ½ªÅÀ,_Ï¢ÈÖ,_¥Õ¥¡¥¤¥ë̾_2), anonymousget(_ftp¥µ¥¤¥È̾,_¥Õ¥¡¥¤¥ë̾_2,_¥Õ¥¡¥¤¥ë̾_2), _Ï¢ÈÖ½ªÅÀ = _Ï¢ÈÖ. ¥À¥¦¥ó¥í¡¼¥ÉÂоݥե¡¥¤¥ë¤òÆÀ¤ë(_ftp¥µ¥¤¥È̾,_¥Õ¥¡¥¤¥ë̾,_¥µ¥Õ¥£¥Ã¥¯¥¹,_Ï¢ÈÖ·å¿ô,_Ï¢ÈÖµ¯ÅÀ,_Ï¢ÈÖ½ªÅÀ,_Ï¢ÈÖ,_¥Õ¥¡¥¤¥ë̾_2) :- between(_Ï¢ÈÖµ¯ÅÀ,_Ï¢ÈÖ½ªÅÀ,_Ï¢ÈÖ), À°¿ô¤«¤éʸ»úÎó(_Ï¢ÈÖ·å¿ô,_Ï¢ÈÖ,_Ï¢ÈÖʸ»úÎó), atomic_list_concat([_¥Õ¥¡¥¤¥ë̾,_Ï¢ÈÖʸ»úÎó,'.',_¥µ¥Õ¥£¥Ã¥¯¥¹],_¥Õ¥¡¥¤¥ë̾_2). anonymousget¤Î½àÈ÷ :- ¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ëanonymousget¤ÎÀ¸À®, ¥³¥Þ¥ó¥É¥Ç¡¼¥¿anonymousget2¤ÎÀ¸À®, ¼Â¹Ô¥×¥í¥°¥é¥àplustosp¤ÎÀ¸À®. ¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ëanonymousget¤ÎÀ¸À® :- open(anonymousget,write,Outstream), write(Outstream,'anonymousget2 $2 $3 | ftp -n $1\n'), close(Outstream), shell('chmod 777 anonymousget'),!. ¥³¥Þ¥ó¥É¥Ç¡¼¥¿anonymousget2¤ÎÀ¸À® :- open(anonymousget2,write,Outstream), write(Outstream,'echo user anonymous *****\necho binary\necho get $1 $2 | plustosp\necho close\necho quit\n'), close(Outstream). ¼Â¹Ô¥×¥í¥°¥é¥àplustosp¤ÎÀ¸À® :- open('plustosp.c',write,Outstream), write(Outstream,'#include \nmain() {\n unsigned int c0,n;\n n=0;\n while((c0=getchar()) != EOF) {\n if(c0==\'+\')\n putchar(32);\n else\n putchar(c0);\n }\n}\n'), close(Outstream), shell('cc -o plustosp plustosp.c';chmod 777 plustosp),!. anonymousget(_ftp¥µ¥¤¥È̾,_ÆþÎÏ¥Õ¥¡¥¤¥ë̾,_½ÐÎÏ¥Õ¥¡¥¤¥ë̾) :- atomic_list_concat(['anonymousget ',_ftp¥µ¥¤¥È̾,' "',_ÆþÎÏ¥Õ¥¡¥¤¥ë̾,'" "',_½ÐÎÏ¥Õ¥¡¥¤¥ë̾,'"'],S), shell(S),!. À°¿ô¤«¤éʸ»úÎó(_ʸ»ú·å,_À°¿ô,_¿ôÃÍʸ»úÎó) :- length(L,_ʸ»ú·å), number_chars(_À°¿ô,Chars), append(L0,Chars,L), all(L0,'0'). all([],_). all([A|R],A) :- all(R,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1343899481/228 # # ¤´¶µ¼¨¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # SQL Server2008 # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¥Æ¡¼¥Ö¥ë̾¡§½»½ê_MST # ID¡¡½»½ê # ------------ # 001 ½»½êA # 002 ½»½êB # 003 ½»½êC # 004 ½»½êD # 005 ½»½êE # 006 ½»½êF # 008 ½»½êG # 010 ½»½êH # # ¡¦Íߤ·¤¤·ë²Ì # ID¤Ë007¤òÀßÄꤷ¤ÆINSERT¤·¤¿¤¤¤Î¤Ç¤¹¤¬¾å¼ê¤¯SQLʸ¤¬É⤫¤Ó¤Þ¤»¤ó¤Ç¤·¤¿ # »ÅÍͤȤ·¤Þ¤·¤Æ¤Ï°ìÈּ㤤ID¤«¤é¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ID¤ò¼èÆÀ¤·¤ÆINSERT¤·¤Þ¤¹ # ¤Ê¤ª¡¢ID¤Ï¥­¡¼ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹ # # ·ë²Ì¤Ï²¼µ­¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹ # ID¡¡½»½ê # ------------ # 001 ½»½êA # 002 ½»½êB # 003 ½»½êC # 004 ½»½êD # 005 ½»½êE # 006 ½»½êF # 007 ¿·½»½ê # 008 ½»½êG # 010 ½»½êH # # '¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó SQL Server2008 ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ ¥Æ¡¼¥Ö¥ë̾¡§½»½ê_MST ID¡¡½»½ê ------------ 001 ½»½êA 002 ½»½êB 003 ½»½êC 004 ½»½êD 005 ½»½êE 006 ½»½êF 008 ½»½êG 010 ½»½êH ¡¦Íߤ·¤¤·ë²Ì ID¤Ë007¤òÀßÄꤷ¤ÆINSERT¤·¤¿¤¤¤Î¤Ç¤¹¤¬¾å¼ê¤¯SQLʸ¤¬É⤫¤Ó¤Þ¤»¤ó¤Ç¤·¤¿ »ÅÍͤȤ·¤Þ¤·¤Æ¤Ï°ìÈּ㤤ID¤«¤é¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ID¤ò¼èÆÀ¤·¤ÆINSERT¤·¤Þ¤¹ ¤Ê¤ª¡¢ID¤Ï¥­¡¼ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹ ·ë²Ì¤Ï²¼µ­¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹ ID¡¡½»½ê ------------ 001 ½»½êA 002 ½»½êB 003 ½»½êC 004 ½»½êD 005 ½»½êE 006 ½»½êF 007 ¿·½»½ê 008 ½»½êG 010 ½»½êH '(_½»½ê) :- '°ìÈּ㤤ID¤«¤é¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ID¤ò¼èÆÀ¤·¤ÆINSERT¤·¤Þ¤¹'(_½»½ê). '°ìÈּ㤤ID¤«¤é¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ID¤ò¼èÆÀ¤·¤ÆINSERT¤·¤Þ¤¹'(_½»½ê) :- between(1,999,N), ƬÉôÎíʸ»úÎó(3,N,_ID), \+(½»½ê_MST(_ID,_)), assertz(½»½ê_MST(_ID,_½»½ê)),!. ƬÉôÎíʸ»úÎó(_Ťµ,_À°¿ô,_ƬÉôÎíʸ»úÎó) :- length(_ƬÉôÎíʸ»ú¤Ê¤é¤Ó,_Ťµ), number_chars(_À°¿ô,Chars), append(L0,Chars,_ƬÉôÎíʸ»ú¤Ê¤é¤Ó), all(L0,'0'), atom_chars(_ƬÉôÎíʸ»úÎó,_ƬÉôÎíʸ»ú¤Ê¤é¤Ó),!. all([],_). all([A|R],A) :- all(R,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/649 # # [1] ¾ðÊó½èÍý±é½¬­¶ # [2] ¤³¤³¤ÎNo.384¤Ç¤¹ # http://ime.nu/s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi # 9. x ¤ò-3.14 °Ê¾å 3.14 °Ê²¼¤ÎÈÏ°Ï¤Ç 0.02 ¤º¤ÄÊѲ½¤µ¤»¡¤ y = cos x µÚ¤Ó y = sin x¤ÎÃͤò²èÌÌɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¤ y = cos x µÚ¤Ó y = sin x¤Ï¡¤¼¡¼°¤Ë¼¨¤¹Â¿¹à¼° # cos(X) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! # sin(X) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! # ¤Ë¤è¤ê·×»»¤¹¤ë¤³¤È¡¥¤Þ¤¿¡¤¤³¤ì¤é¤Î·×»»¤ò¹Ô¤¦´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ò¤½¤ì¤¾¤ì¡Ödouble # mycos(double)¡×¡¤¡Ödouble mysin(double)¡×¤È¤·¡¤3 ¤ÇºîÀ®¤·¤¿¡Ökaijo()¡×´Ø¿ô¤òÍøÍѤ¹¤ë¤³¤È¡¥ # # 14. 1 °Ê¾å¤ÎÀ°¿ô n ¤òÆþÎϤ·¡¤n ¤Î³¬¾è¤ò·×»»¤·¤Æ²èÌÌɽ¼¨¤¹¤ë¤è¤¦¤Ê void ·¿¤Î´Ø¿ô void # factorial(int) ¤òÍѤ¤¤Æ n ¤Î³¬¾è¤òµá¤á¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤Þ¤¿¤³¤Î¥×¥í¥°¥é¥à¤È 3 ¤ÇºîÀ®¤·¤¿¥×¥í¥°¥é¥à¤òÈæ³Ó¤»¤è¡¥ 'x ¤ò-3.14 °Ê¾å 3.14 °Ê²¼¤ÎÈÏ°Ï¤Ç 0.02 ¤º¤ÄÊѲ½¤µ¤»¡¤ y = cos x µÚ¤Ó y = sin x¤ÎÃͤò²èÌÌɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¤ y = cos x µÚ¤Ó y = sin x¤Ï¡¤¼¡¼°¤Ë¼¨¤¹Â¿¹à¼° cos(X) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! sin(X) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! ¤Ë¤è¤ê·×»»¤¹¤ë¤³¤È' :- between(1,314,N), X is -3.14 + N * 0.02, 'y = cos x µÚ¤Ó y = sin x¤ÎÃͤòɽ¼¨¤¹¤ë'(X), N = 314. 'y = cos x µÚ¤Ó y = sin x¤ÎÃͤòɽ¼¨¤¹¤ë'(X) :- cos(X,_cosX), sin(X,_sinX), ɽ¼¨¤¹¤ë(X,_cosX,_sinX). cos(X,_cosX) :- findall(U,( for(1,0,5), N_2 is N * 2, ³¬¾è(N_2,N_2_¤Î³¬¾è), U is (((-1) ^ N) * (X ^ 2)) / N_2_¤Î³¬¾è), _cosX). sin(X,_cosX) :- findall(U,( for(1,0,5), N_2 is 1 + N * 2, ³¬¾è(N_2,N_2_¤Î³¬¾è), U is (((-1) ^ N) * (X ^ 2)) / N_2_¤Î³¬¾è), _sinX), ɽ¼¨¤¹¤ë(X,_cosX,_sinX) :- writef('%t: %t, %t\n',[X,_cosX,_sinX]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # [1] ¼ø¶Èñ¸µ¡§ ¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¡ý¸«¤Ë¤¯¤¯¤Ê¤ê¤½¤¦¤Ê¤Î¤Ç°ìÈÖ²¼¤Ë½ñ¤­¤Þ¤¹¡£ # [3] ´Ä¶­ # ¡¡[3.1] OS¡§Windows # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§VC++ 2005 # ¡¡[3.3] ¸À¸ì¡§£Ã¡Ü¡Ü # [4] ´ü¸Â¡§ÌÀÆü¡¡11/3 # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ ɸ½àÆþ½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ç¡¢ # # À°¿ô½ü»»¤Ë¤è¤ë¾¦¤Î·×»»É½¡Ê²¼µ­¤ÎÎã¤ò»²¾È¡Ë¤òɽ¼¨¤¹¤ë¡¥ # # # | 1 2 3 4 5 6 7 8 9 # --+------------------ # 1 | 1 0 0 0 0 0 0 0 0 # 2 | 2 1 0 0 0 0 0 0 0 # 3 | 3 1 1 0 0 0 0 0 0 # 4 | 4 2 1 1 0 0 0 0 0 # 5 | 5 2 1 1 1 0 0 0 0 # 6 | 6 3 2 1 1 1 0 0 0 # 7 | 7 3 2 1 1 1 1 0 0 # 8 | 8 4 2 2 1 1 1 1 0 # 9 | 9 4 3 2 1 1 1 1 1 # # ¤³¤ì¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ 'À°¿ô½ü»»¤Ë¤è¤ë¾¦¤Î·×»»É½¡Ê²¼µ­¤ÎÎã¤ò»²¾È¡Ë¤òɽ¼¨¤¹¤ë' :- ¾¦¤Î·×»»É½ËÜÂÎ(_¾¦¤Î·×»»É½ËÜÂÎ), ¾¦¤Î·×»»É½¸«½Ð¤·É½¼¨, ¾¦¤Î·×»»É½ËÜÂΤÎɽ¼¨(_¾¦¤Î·×»»É½ËÜÂÎ). ¾¦¤Î·×»»É½ËÜÂÎ(_¾¦¤Î·×»»É½ËÜÂÎ) :- findall(_ɽ¼¨¹Ô,( between(1,9,_Èï½ü¿ô), ɽ¼¨¹Ô(_Èï½ü¿ô,_ɽ¼¨¹Ô)), _¾¦¤Î·×»»É½ËÜÂÎ). ɽ¼¨¹Ô(_Èï½ü¿ô,_ɽ¼¨¹Ô) :- findall(N,( between(1,9,_½ü¿ô), N is _Èï½ü¿ô // _½ü¿ô), _¾¦É½¼¨¤Ê¤é¤Ó), atomic_list_concat([_Èï½ü¿ô,'|'|_¾¦É½¼¨¤Ê¤é¤Ó],' ',_ɽ¼¨¹Ô). ¾¦¤Î·×»»É½¸«½Ð¤·É½¼¨ :- write(' | 1 2 3 4 5 6 7 8 9\n--+------------------\n'). ¾¦¤Î·×»»É½ËÜÂΤÎɽ¼¨(_¾¦¤Î·×»»É½ËÜÂÎ) :- append(_,[_ɽ¼¨¹Ô|R],_¾¦¤Î·×»»É½ËÜÂÎ), write('%t\n',[_ɽ¼¨¹Ô]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Îº÷°ú # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ( # ¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿¥á¥Ë¥å¡¼ÈÖ¹æ¤Ë±è¤Ã¤¿¿Þ·Á¤ò¡Ö*¡×¤Çɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò # ºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢¥×¥í¥°¥é¥àºîÀ®»þ¤Ï°Ê²¼¤Î»ÅÍͤ˽¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£ # ¥Õ¥¡¥¤¥ë̾¡§ kadai3.c # ¡Ú ÌäÂêºîÀ®»þ¤ÎÃí°ÕÅÀ ¡Û # ¡¦¥á¥Ë¥å¡¼ÈÖ¹æ¤È¿Þ·Á¤Î¼ïÎà¤Ï°Ê²¼¤ÎÄ̤ê¤È¤·¤Þ¤¹¡£¤Ê¤ª¡¢¥­¡¼¥Ü¡¼¥É¤«¤é # ÆþÎϤ·¤¿Ãͤ¬°Ê²¼¤ÎÈÖ¹æ°Ê³°¤Î¾ì¹ç¡¢ºÆ¤Ó¥á¥Ë¥å¡¼ÈÖ¹æ¤òÆþÎϤ¹¤ë¤è¤¦¤Ë # ¤·¤Æ¤¯¤À¤µ¤¤¡£ # 1 »°³Ñ·Á # 2 »Í³Ñ·Á # ¡¦¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤Ï¡¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢¥­¡¼¥Ü¡¼¥É # ¤«¤éÆþÎϤ·¤¿¿ô¤¬1 °Ê²¼¤Î¾ì¹ç¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢exit ´Ø¿ô¤Ç # ¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£ # ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ÎÎã¡Ë wrong number # ¡¦¿Þ·Á¤Îɽ¼¨¤Ë¤Ï´Ø¿ô¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡£´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï°Ê²¼¤Î # Ä̤ê¤È¤·¤Þ¤¹¡£ # void DrawTriangle(int); # void DrawRectangle(int); # [3] ´Ä¶­ # ¡¡[3.1] OS¡§ Windows # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§ gcc 3.4 # ¡¡[3.3] ¸À¸ì¡§ C++ # [4] ´ü¸Â¡§ ([2006ǯ11·î2Æü17:30¤Þ¤Ç # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§¤Ê¤· '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿¥á¥Ë¥å¡¼ÈÖ¹æ¤Ë±è¤Ã¤¿¿Þ·Á¤ò¡Ö*¡×¤Çɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò ºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢¥×¥í¥°¥é¥àºîÀ®»þ¤Ï°Ê²¼¤Î»ÅÍͤ˽¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£ l¡¦¥á¥Ë¥å¡¼ÈÖ¹æ¤È¿Þ·Á¤Î¼ïÎà¤Ï°Ê²¼¤ÎÄ̤ê¤È¤·¤Þ¤¹¡£¤Ê¤ª¡¢¥­¡¼¥Ü¡¼¥É¤«¤é ÆþÎϤ·¤¿Ãͤ¬°Ê²¼¤ÎÈÖ¹æ°Ê³°¤Î¾ì¹ç¡¢ºÆ¤Ó¥á¥Ë¥å¡¼ÈÖ¹æ¤òÆþÎϤ¹¤ë¤è¤¦¤Ë ¤·¤Æ¤¯¤À¤µ¤¤¡£ 1 »°³Ñ·Á 2 »Í³Ñ·Á ¡¦¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤Ï¡¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢¥­¡¼¥Ü¡¼¥É ¤«¤éÆþÎϤ·¤¿¿ô¤¬1 °Ê²¼¤Î¾ì¹ç¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢exit ´Ø¿ô¤Ç ¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿ 1 »°³Ñ·Á 2 »Í³Ñ·Á ¤Î¥á¥Ë¥å¡¼ÈÖ¹æ'(_¥á¥Ë¥å¡¼ÈÖ¹æ), '¥á¥Ë¥å¡¼ÈÖ¹æ¤Ë±è¤Ã¤¿¿Þ·Á¤ò¡Ö*¡×¤Çɽ¼¨¤¹¤ë'(_¥á¥Ë¥å¡¼ÈÖ¹æ). '¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤¿ 1 »°³Ñ·Á 2 »Í³Ñ·Á ¤Î¥á¥Ë¥å¡¼ÈÖ¹æ'(_¥á¥Ë¥å¡¼ÈÖ¹æ) :- write('º¸Â¦¤Î¿ô»ú¤ÇÁªÂò¤·¤Æ¤¯¤À¤µ¤¤\n\n1 »°³Ñ·Á\n2 »Í³Ñ·Á\n\n'), À°¿ô¤òÆÀ¤ë('¥á¥Ë¥å¡¼ÈÖ¹æ[1/2]',member(_¥á¥Ë¥å¡¼ÈÖ¹æ,[1,2]),_¥á¥Ë¥å¡¼ÈÖ¹æ). '¥á¥Ë¥å¡¼ÈÖ¹æ¤Ë±è¤Ã¤¿¿Þ·Á¤ò¡Ö*¡×¤Çɽ¼¨¤¹¤ë'(1) :- »°³Ñ·Á¤Îɽ¼¨. '¥á¥Ë¥å¡¼ÈÖ¹æ¤Ë±è¤Ã¤¿¿Þ·Á¤ò¡Ö*¡×¤Çɽ¼¨¤¹¤ë'(2) :- »Í³Ñ·Á¤Îɽ¼¨. »°³Ñ·Á¤Îɽ¼¨ :- '¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤Î¹â¤µ), »°³Ñ·Á¤Î¿Þ·ÁÁü(_¿Þ·Á¤Î¹â¤µ,_¿Þ·ÁÁü), ¿Þ·Áɽ¼¨(_¿Þ·ÁÁü). »°³Ñ·Á¤Î¿Þ·ÁÁü(_¿Þ·Á¤Î¹â¤µ,_¿Þ·ÁÁü,_¿Þ·ÁÁü) :- findall(_ɽ¼¨À±Îó,( between(1,_¿Þ·Á¤ÎÃÊ¿ô,_¸½ºß¤ÎÃÊ), »°³Ñ·Á¤Îɽ¼¨À±Îó(_¸½ºß¤ÎÃÊ,_ɽ¼¨À±Îó)), _¿Þ·ÁÁü). »°³Ñ·Á¤Îɽ¼¨À±Îó(_¸½ºß¤ÎÃÊ,_ɽ¼¨À±Îó) :- length(L,_¸½ºß¤ÎÃÊ), all(L,'*'), atomic_list_concat(L,_ɽ¼¨À±Îó). »Í³Ñ·Á¤Îɽ¼¨ :- Éý¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(_¿Þ·Á¤ÎÉý), '¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤Ï¡¢¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤Î¹â¤µ), »Í³Ñ·Á¤Î¿Þ·ÁÁü(_¿Þ·Á¤ÎÉý,_¿Þ·Á¤Î¹â¤µ,_¿Þ·ÁÁü), ¿Þ·Á¤Îɽ¼¨(_¿Þ·ÁÁü). »Í³Ñ·Á¤Î¿Þ·ÁÁü(_¿Þ·Á¤ÎÉý,_¿Þ·Á¤Î¹â¤µ,_¿Þ·ÁÁü) :- ɽ¼¨À±Îó(_¿Þ·Á¤ÎÉý,_ɽ¼¨À±Îó), findall(_ɽ¼¨À±Îó,( between(1,_¿Þ·Á¤Î¹â¤µ,_), »Í³Ñ·Á¤Îɽ¼¨À±Îó(_¿Þ·Á¤ÎÉý,_ɽ¼¨À±Îó)), _¿Þ·ÁÁü). ¿Þ·Á¤Îɽ¼¨(_¿Þ·ÁÁü) :- append(_,[_ɽ¼¨À±Îó|R],_¿Þ·ÁÁü), writef('%t\n',[_ɽ¼¨À±Îó]), R = []. »Í³Ñ·Á¤Îɽ¼¨À±Îó(_¸½ºß¤ÎÃÊ,_ɽ¼¨À±Îó) :- length(L,_¸½ºß¤ÎÃÊ), all(L,'*'), atomic_list_concat(L,_ɽ¼¨À±Îó). '¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤Î¹â¤µ) :- À°¿ô¤òÆÀ¤ë(¿Þ·Á¤ÎÃÊ¿ô,_¿Þ·Á¤Î¹â¤µ), ¿Þ·Á¤Î¹â¤µ¿ÇÃÇ(_¿Þ·Á¤Î¹â¤µ),!. '¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤Î¹â¤µ) :- '¿Þ·Á¤ÎÃÊ¿ô¡Ê¹â¤µ¡Ë¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤Î¹â¤µ). ¿Þ·Á¤Î¹â¤µ¿ÇÃÇ(_¿Þ·Á¤Î¹â¤µ) :- _¿Þ·Á¤Î¹â¤µ > 1,!. ¿Þ·Á¤Î¹â¤µ¿ÇÃÇ(_¿Þ·Á¤Î¹â¤µ) :- writef('ÆþÎϤµ¤ì¤¿¿Þ·Á¤Î¹â¤µ %t ¤Ï¤³¤Î¿Þ·Á¤Î¹â¤µ¤È¤·¤ÆÅ¬ÀڤǤ¢¤ê¤Þ¤»¤ó¡£\nºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¿Þ·Á¤Î¹â¤µ]), fail. 'Éý¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤ÎÉý) :- À°¿ô¤òÆÀ¤ë(¿Þ·Á¤ÎÃÊ¿ô,_¿Þ·Á¤ÎÉý), ¿Þ·Á¤ÎÉý¿ÇÃÇ(_¿Þ·Á¤ÎÉý),!. 'Éý¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤ÎÉý) :- 'Éý¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤'(_¿Þ·Á¤ÎÉý). ¿Þ·Á¤ÎÉý¿ÇÃÇ(_¿Þ·Á¤ÎÉý) :- _¿Þ·Á¤ÎÉý > 1,!. ¿Þ·Á¤ÎÉý¿ÇÃÇ(_¿Þ·Á¤ÎÉý) :- writef('ÆþÎϤµ¤ì¤¿¿Þ·Á¤ÎÉý %t ¤Ï¤³¤Î¿Þ·Á¤ÎÉý¤È¤·¤ÆÅ¬ÀڤǤ¢¤ê¤Þ¤»¤ó¡£\nºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¿Þ·Á¤ÎÉý]), fail. all([],_). all([A|R],A) :- all(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§¾ðÊó½èÍý # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¥ì¥Ý¡¼¥È²ÝÂê¡§¥Õ¥§¥ë¥Þ¡¼¤ÎͽÁÛ # ¥Õ¥§¥ë¥Þ¡¼¤Ï¡¢x^n+y^n=z^n (x,y,z,n:À°¿ô)¤Ë¤ª¤¤¤Æn¡æ3¤ËÂФ·¤Æ¡¢ # ¤³¤Î¼°¤òËþ¤¿¤¹¤â¤Î¤Ï¤Ê¤¤¤ÈÃǸÀ¤·¤¿¡£¤³¤ì¤Ï¤Ä¤¤ºÇ¶á¤Ë¤Ê¤Ã¤Æ¾ÚÌÀ¤µ¤ì¤¿¡£ # n=3¤ËÂФ·¤Æ¡¢x,y,z¡å100¤ÎÈÏ°ÏÆâ¤Ç¤³¤ì¤ËÂФ¹¤ëÈ¿Î㤬¤Ê¤¤¤«³Îǧ¤»¤è¡£ # ¥Ò¥ó¥È¡§ # °ì¸«¤¹¤ë¤È¡¢3½Å¥ë¡¼¥×¤Ë¤Ê¤ë¤è¤¦¤Ç¤¢¤ë¤¬¡¢ # ¤¦¤Þ¤¯¹©Éפ·¤Æ2½Å¥ë¡¼¥×¤Ë¤»¤è¡£ # [3] ´Ä¶­ # ¡¡[3.1] OS¡§Windows # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§Microsoft Visual C++ 6.0 # ¡¡[3.3] ¸À¸ì¡§ C++ # [4] ´ü¸Â¡§ 2006ǯ11·î7Æü¤Þ¤Ç # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ ´ðÁÃŪ¤ÊÃμ±¤Ç½ÐÍè¤ë¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤ª¤Í¤¬¤¤¤·¤Þ¤¹¡£ 'x^n+y^n=z^n'(_x,_y,_z) :- '_x,_y,_z'(_x,_y,_z), '_x^3,_y^3,_z^3'(X,Y,Z), Z is X + Y. '_x,_y,_z'(_x,_y,_z) :- between(1,100,_x), between(1,100,_y), between(1,100,_z). '_x^3,_y^3,_z^3'(X,Y,Z) :- 'x^n'(_z,3,Z), 'x^n'(_x,3,X), 'x^n'(_y,3,Y). 'x^n'(_,0,1) :- !. 'x^n'(_x,N,X) :- N_1 is N - 1, 'x^n'(_x,N_1,X2), X is _x * X2. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- findall(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,( between(1,6,_), length(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,6)), _¥Ó¥ó¥´¤Îɽ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- length(_¥Ó¥ó¥´¤Îɽ,6), 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'(_¥Ó¥ó¥´¤Îɽ). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'([]). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'([_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È|R]) :- length(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,6), 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'(R). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(6,_¥Ó¥ó¥´¤Îɽ). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(0,[]) :- !. 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N,[_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È|R]) :- length(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,6), N_1 is N - 1, 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N_1,R). %%%%%%%%%%%%%%%% length/2 ¤ò»ÈÍѤ·¤Ê¤¤¤È %%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(6,_¥Ó¥ó¥´¤Îɽ). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(0,[]) :- !. 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N,[_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È|R]) :- '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(6,_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È), N_1 is N - 1, 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N_1,R). '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(0,[]). '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(N,[_|R]) :- N_1 is N - 1, '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(N_1,[_|R]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- findall(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,( between(1,6,_), length(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,6)), _¥Ó¥ó¥´¤Îɽ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- length(_¥Ó¥ó¥´¤Îɽ,6), 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'(_¥Ó¥ó¥´¤Îɽ). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'([]). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'([_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È|R]) :- length(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,6), 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ'(R). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(6,_¥Ó¥ó¥´¤Îɽ). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(0,[]) :- !. 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N,[_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È|R]) :- length(_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È,6), N_1 is N - 1, 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N_1,R). %%%%%%%%%%%%%%%% length/2 ¤ò»ÈÍѤ·¤Ê¤¤¤È %%%%%%%%%%%%%%%%%%%%% 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(_¥Ó¥ó¥´¤Îɽ) :- 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(6,_¥Ó¥ó¥´¤Îɽ). 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(0,[]) :- !. 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N,[_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È|R]) :- '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(6,_6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È), N_1 is N - 1, 'Ãͤηè¤Þ¤é¤Ê¤¤6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤¹¤ë'(N_1,R). '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(0,[]). '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(N,[_|R]) :- N_1 is N - 1, '6Í×ÁǤÎÊÑ¿ô¥ê¥¹¥È¤òÀ¸À®¤¹¤ë'(N_1,[_|R]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§¾ðÊó½èÍý³µÏÀ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # [3] ´Ä¶­ # ¡¡[3.1] OS¡§ Windows£Ø£Ð # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§BorlandC++ # ¡¡[3.3] ¸À¸ì¡§C++ # [4] ´ü¸Â¡§ 10·î30Æü¤Þ¤Ç # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤·¤Ê¤µ¤¤¡£'(_¥Ó¥ó¥´¤Îɽ) :- findall(L,( between(1,6,_), length(L,6)), _¥Ó¥ó¥´¤Îɽ), flatten(_¥Ó¥ó¥´¤Îɽ,_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È), '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤ÆÃͤòËä¤á¤ë'([],_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È). '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤ÆÃͤòËä¤á¤ë'(_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È,_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È) :- !. '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤ÆÃͤòËä¤á¤ë'(L,_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È) :- _Íð¿ô is random(100), \+(member(_Íð¿ô,L)), '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤ÆÃͤòËä¤á¤ë'([_Íð¿ô|L],_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È). '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤ÆÃͤòËä¤á¤ë'(L,_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È) :- '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤ÆÃͤòËä¤á¤ë'(L,_½ÅÊ£¤Î¤Ê¤¤¥ê¥¹¥È). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¼ø¶Èñ¸µ¡§¾ðÊó½èÍý³µÏÀ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤·¤Ê¤µ¤¤¡£ # [3] ´Ä¶­ # ¡¡[3.1] OS¡§ Windows£Ø£Ð # ¡¡[3.2] ¥³¥ó¥Ñ¥¤¥é̾¤È¥Ð¡¼¥¸¥ç¥ó¡§BorlandC++ # ¡¡[3.3] ¸À¸ì¡§C++ # [4] ´ü¸Â¡§ 10·î30Æü¤Þ¤Ç # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ6¡ß6¥Ó¥ó¥´¤Îɽ¤òºîÀ®¤·¤Ê¤µ¤¤¡£'(_¥Ó¥ó¥´¤Îɽ) :- findall(L,( between(1,6,_), length(L,6)), _¥Ó¥ó¥´¤Îɽ), flatten(_¥Ó¥ó¥´¤Îɽ,_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó), '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó¤òºî¤ë'([],_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó). '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó¤òºî¤ë'(_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó,_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó) :- !. '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó¤òºî¤ë'(L,_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó) :- _Íð¿ô is random(100), \+(member(_Íð¿ô,L)), '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó¤òºî¤ë'([_Íð¿ô|L],_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó). '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó¤òºî¤ë'(L,_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó) :- '0¤«¤é99¤ÎÍð¿ô¤ò»È¤Ã¤Æ½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó¤òºî¤ë'(L,_½ÅÊ£¤Î¤Ê¤¤¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # [1] ¥×¥í¥°¥é¥ß¥ó¥° # [2] 50±ßÀڼ꤬ 5 Ëç, 80±ßÀڼ꤬ 4 Ëç, 120±ßÀڼ꤬ 3 Ë礢¤ë¤È¤­, ¥­¡¼¥Ü¡¼¥É¤«¤é¶â³Û t ¤òÆþÎϤ·, ¶â³Û¤Î¹ç·×¤¬¤Á¤ç¤¦¤É t ±ß¤Ë¤Ê¤ë¤è¤¦¤ÊÀÚ¼ê¤ÎËç¿ô¤ÎÁȹ礻¤òµá¤á¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è. # # ¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë¤³¤È¤ò³Îǧ¤»¤è (ɽ¼¨·Á¼°¤Ï³Æ¼«¹©Éפ»¤è). # o 310±ß ¢ª 50±ß¡ß3Ëç¡Ü80±ß¡ß2Ëç¡Ü120±ß¡ß0Ëç # o 390±ß ¢ª 50±ß¡ß3Ëç¡Ü80±ß¡ß0Ëç¡Ü120±ß¡ß2Ëç, 50±ß¡ß3Ëç¡Ü80±ß¡ß3Ëç¡Ü120±ß¡ß0Ëç # [3] ´Ä¶­ # ¡¡[3.1] winXP sp2 # ¡¡[3.2] cygwin # ¡¡[3.3] C # [4] 2006ǯ10·î23Æü23»þ59ʬ # [5] ÅÓÃæ¤Þ¤Ç¤ä¤Ã¤¿¤ó¤ÇËä¤á¤ë·Á¤Ç¤ª´ê¤¤¤·¤Þ¤¹ # ÅÓÃæ¤Þ¤Ç¤ä¤Ã¤¿¤Ö¤ó¤Ï¼¡½ñ¤­¤Þ¤¹ '50±ßÀڼ꤬ 5 Ëç, 80±ßÀڼ꤬ 4 Ëç, 120±ßÀڼ꤬ 3 Ë礢¤ë¤È¤­, ¥­¡¼¥Ü¡¼¥É¤«¤é¶â³Û t ¤òÆþÎϤ·, ¶â³Û¤Î¹ç·×¤¬¤Á¤ç¤¦¤É t ±ß¤Ë¤Ê¤ë¤è¤¦¤ÊÀÚ¼ê¤ÎËç¿ô¤ÎÁȹ礻¤òµá¤á¤Æ¡¢¤³¤ì¤òɽ¼¨¤¹¤ë. ' :- '¥­¡¼¥Ü¡¼¥É¤«¤é¶â³Û t ¤òÆþÎϤ·'(_¶â³Ût), '50±ßÀڼ꤬ 5 Ëç, 80±ßÀڼ꤬ 4 Ëç, 120±ßÀڼ꤬ 3 Ë礢¤ë¤È¤­, ¥­¡¼¥Ü¡¼¥É¤«¤é¶â³Û t ¤òÆþÎϤ·, ¶â³Û¤Î¹ç·×¤¬¤Á¤ç¤¦¤É t ±ß¤Ë¤Ê¤ë¤è¤¦¤ÊÀÚ¼ê¤ÎËç¿ô¤ÎÁȹ礻¤òµá¤á¤ë'(_¶â³Ût,_ÀÚ¼êËç¿ô¤ÎÁȹ礻¤Ê¤é¤Ó), Áȹ礻¤òɽ¼¨¤¹¤ë(_¶â³Ût,_ÀÚ¼êËç¿ô¤ÎÁȹ礻¤Ê¤é¤Ó). '50±ßÀڼ꤬ 5 Ëç, 80±ßÀڼ꤬ 4 Ëç, 120±ßÀڼ꤬ 3 Ë礢¤ë¤È¤­, ¥­¡¼¥Ü¡¼¥É¤«¤é¶â³Û t ¤òÆþÎϤ·, ¶â³Û¤Î¹ç·×¤¬¤Á¤ç¤¦¤É t ±ß¤Ë¤Ê¤ë¤è¤¦¤ÊÀÚ¼ê¤ÎËç¿ô¤ÎÁȹ礻¤òµá¤á¤ë. '(_¶â³Ût,_ÀÚ¼êËç¿ô¤ÎÁȹ礻¤Ê¤é¤Ó) :- setof([_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô], [_¶â³Ût,_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô] ^ Áȹ礻¹ç·×¤¬¶â³Ût¤È°ìÃפ¹¤ë(_¶â³Ût,_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô)),_ÀÚ¼êËç¿ô¤ÎÁȹ礻¤Ê¤é¤Ó). '¥­¡¼¥Ü¡¼¥É¤«¤é¶â³Û t ¤òÆþÎϤ·'(_¶â³Ût) :- À°¿ô¤òÆÀ¤ë('¶â³Ût ',_¶â³Ût > 0,_¶â³Ût). Áȹ礻¹ç·×¤¬¶â³Ût¤È°ìÃפ¹¤ë(_¶â³Ût,_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô) :- Áȹ礻¹ç·×¤¬¶â³Ût¤È°ìÃפ¹¤ë(_L,_¶â³Ût), Áȹ礻Ëç¿ô¤ò¿ô¤¨¤ë(L,_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô). Áȹ礻¹ç·×¤¬¶â³Ût¤È°ìÃפ¹¤ë(_L,_¶â³Ût) :- between(1,12,N), Áȹ礻([50,50,50,50,80,80,80,80,120,120,120],N,L), sum_list(L,_¶â³Ût), Áȹ礻Ëç¿ô¤ò¿ô¤¨¤ë(L,_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô) :- ÅÙ¿ô(member(50,L),_50±ßÀÚ¼ê¤ÎËç¿ô), ÅÙ¿ô(member(80,L),_80±ßÀÚ¼ê¤ÎËç¿ô), ÅÙ¿ô(member(120,L),_120±ßÀÚ¼ê¤ÎËç¿ô). Áȹ礻¤òɽ¼¨¤¹¤ë(_,[]) :- write('ÀÚ¼ê¤ÎÁȹ礻¤Ïºî¤ì¤Þ¤»¤ó\n'). Áȹ礻¤òɽ¼¨¤¹¤ë(_¶â³Ût,_ÀÚ¼êËç¿ô¤ÎÁȹ礻¤Ê¤é¤Ó) :- forall(append(_,[[_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô]|R],_ÀÚ¼êËç¿ô¤ÎÁȹ礻¤Ê¤é¤Ó), writef('%w -> 50±ßÀÚ¼ê¡ß%wËç+80±ßÀÚ¼ê¡ß%wËç+120±ßÀÚ¼ê¡ß%wËç\n',[_¶â³Ût,_50±ßÀÚ¼ê¤ÎËç¿ô,_80±ßÀÚ¼ê¤ÎËç¿ô,_120±ßÀÚ¼ê¤ÎËç¿ô])). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Áȹ礻(L,1,[A]) :- member(A,L). Áȹ礻([A|R1],N,[A|R2]) :- 'N¤ò1¸º¤é¤·¤Æ»Ä¤êÍ×ÁǤÎÁȹ礻'(R1,N,R2). Áȹ礻([_|R1],N,R2) :- 'N¤Ï¤½¤Î¤Þ¤Þ¤Ç»Ä¤êÍ×ÁǤÎÁȹ礻'(R1,N,R2). 'N¤ò1¸º¤é¤·¤Æ»Ä¤êÍ×ÁǤÎÁȹ礻'(R1,N,R2) :- N > 1, succ(N_1,N), Áȹ礻(R1,N_1,R2). 'N¤Ï¤½¤Î¤Þ¤Þ¤Ç»Ä¤êÍ×ÁǤÎÁȹ礻'(R1,N,R2) :- N > 1, Áȹ礻(R1,N,R2). ÅÙ¿ô(P,_ÅÙ¿ô) :- findall(1,P,L), length(L,_ÅÙ¿ô). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(current_input,Codes), atom_codes(_¹Ô,Codes). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢¾ò·ï¤ò¼Â¹Ô¤¹¤ë'(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- À°¿ôÆþÎϤ˼ºÇÔ¤·¤¿»þ¤ÏºÆ»î¹Ô¤¹¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô). À°¿ôÆþÎϤ˼ºÇÔ¤·¤¿»þ¤ÏºÆ»î¹Ô¤¹¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô). 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢¾ò·ï¤ò¼Â¹Ô¤¹¤ë'(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢'(_ºÅ¥ʸ,_¹Ô,_À°¿ô), ¾ò·ï¤ò¼Â¹Ô¤¹¤ë(_¹Ô,_À°¿ô,_¾ò·ï). 'ºÅ¥ʸ¤Îɽ¼¨¸å¡¢ÆþÎϤµ¤ì¤¿¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤·¡¢'(_ºÅ¥ʸ,_¹Ô,_À°¿ô) :- ºÅ¥ʸ¤Îɽ¼¨(_ºÅ¥ʸ), ¹ÔÆþÎÏ(_¹Ô), À°¿ôÆþÎϸ¡ºº(_¹Ô,_À°¿ô). ºÅ¥ʸ¤Îɽ¼¨(_ºÅ¥ʸ) :- writef('%w',[_ºÅ¥ʸ]). À°¿ôÆþÎϸ¡ºº(_¹Ô,_À°¿ô) :- ¹Ô¤ò²òÀϤ·¤ÆÀ°¿ô¤òÆÀ¤ë(_¹Ô,_À°¿ô). À°¿ôÆþÎϸ¡ºº(_¹Ô,_) :- À°¿ô¤òÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¤é¤½¤Î¤³¤È¤òɽ¼¨¤·¤Æfail(_¹Ô). ¹Ô¤ò²òÀϤ·¤ÆÀ°¿ô¤òÆÀ¤ë(_¹Ô,_À°¿ô) :- ¹Ô¤ò²òÀϤ·¤Æ(_¹Ô,_À°¿ô), ¤½¤ì¤¬À°¿ô¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë(_À°¿ô). ¹Ô¤ò²òÀϤ·¤Æ(_¹Ô,_À°¿ô) :- catch(read_term_from_atom(_¹Ô,_À°¿ô,[]),E,fail). ¤½¤ì¤¬À°¿ô¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë(_À°¿ô) :- integer(_À°¿ô). À°¿ô¤òÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¤é¤½¤Î¤³¤È¤òɽ¼¨¤·¤Æfail(_¹Ô) :- writef('ÆþÎϤµ¤ì¤¿¹Ô %w ¤«¤é¤ÏÀ°¿ô¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹Ô]), fail. ¾ò·ï¤ò¼Â¹Ô¤¹¤ë(_¹Ô,_À°¿ô,_¾ò·ï) :- catch(_¾ò·ï,E,fail). ¾ò·ï¤ò¼Â¹Ô¤¹¤ë(_¹Ô,_À°¿ô,_¾ò·ï) :- writef('%w ¤«¤éÆÀ¤¿À°¿ô %w ¤Ï¡¢¾ò·ï %w ¤òËþ¤¿¤·¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹Ô,_À°¿ô,_¾ò·ï]), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/425 # # [1]C¸À¸ì¡¡¥×¥í¥°¥é¥ß¥ó¥° # [2]http://ime.nu/codepad.org/UrZpvr24 # À©¸æ¹½Â¤¤Ë¤Ä¤¤¤Æ¡£ # ʸ»úÀ©¸Â¤Î¤¿¤á¥³¡¼¥É¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£ # [3]Windows 7 # [3.1]vs2010 # [3.2]C¸À¸ì # [4]ÌÀÆü ¸áÁ°Ãæ¤Þ¤Ç # [5]¸½ºßÀ©¸æ¹½Â¤¤Ë¤Ä¤¤¤Æ³Ø¤ó¤Ç¤¤¤Þ¤¹¡£ # ÇÛÎ󡦥ݥ¤¥ó¥¿¡¦´Ø¿ô¤Ï¤Þ¤À¤Ç¤¹¡£ # # /*ÌäÂ꣱ # n>=m>=2¤òËþ¤¿¤¹À°¿ôn¤Èm¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤Èm¿Ê¿ô¤Çn¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò # ºîÀ®¤»¤è¡£¤¿¤À¤·m<=10¤È¤·¤Æ¤¤¤¤¡£É½¼¨¤ÏµÕ½ç¤Ç¤âÎɤ¤¡£ # # ÌäÂꣲ # 2<=n<=10000¤òËþ¤¿¤¹À°¿ôn¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤È2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë # ¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·ºÇ¸å¤Î¹Ô¤ËÁÇ¿ô¤Î¸Ä¿ô¤Î¤ß¤òɽ¼¨¤·¤½¤Î¾¤Î³Æ¹Ô¤Ë¤Ï # ºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ # Îã¡§n=50 # 2 3 5 7 11 13 17 19 23 29 # 31 37 41 43 47 # 15 # # ÌäÂꣳ # ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ· # x¤Èn¤¬Àµ¤·¤¯ÆþÎϤµ¤ì¤¿¤é´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¡£ # # log(x+1)=n¦²i=1 (-1)^i+1 / i ¡¡¡¡ ¤Îx^i¡¡¡¡¡¡ # # Îã¡§n=100 x=0.5¤È¤¹¤ë¤È0.405465¤Èɽ¼¨¤µ¤ì¤ë¡£*/ 'ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ·x¤Èn¤¬Àµ¤·¤¯ÆþÎϤµ¤ì¤¿¤é´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤ÆÉ½¼¨¤¹¤ë' :- 'ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ·'(_x,_n), '´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤ÆÉ½¼¨¤¹¤ë'(_x,_n). 'ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ·'(_x,_n) :- ¼Â¿ô¤òÆÀ¤ë('ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx',abs(_x) < 1.0,_x), À°¿ô¤òÆÀ¤ë('Àµ¤ÎÀ°¿ôn',_n > 0,_n),!. 'ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ·'(_x,_n) :- 'ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ·'(_x,_n). '´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤ÆÉ½¼¨¤¹¤ë'(_x,_n) :- '´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤Æ'(_x,_n,_¶á»÷ÃÍ), writef('´Ø¿ôlog(1+x)¤Î¶á»÷ÃÍ¤Ï %t ¤Ç¤¹\n',[_¶á»÷ÃÍ]). '´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤Æ'(_x,_n,_¶á»÷ÃÍ) :- findsum(U,( between(1,_n,_x), U is (((-1) ^ _i / _i) * _x ^ _i)), _¶á»÷ÃÍ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/425 # # [1]C¸À¸ì¡¡¥×¥í¥°¥é¥ß¥ó¥° # [2]http://ime.nu/codepad.org/UrZpvr24 # À©¸æ¹½Â¤¤Ë¤Ä¤¤¤Æ¡£ # ʸ»úÀ©¸Â¤Î¤¿¤á¥³¡¼¥É¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£ # [3]Windows 7 # [3.1]vs2010 # [3.2]C¸À¸ì # [4]ÌÀÆü ¸áÁ°Ãæ¤Þ¤Ç # [5]¸½ºßÀ©¸æ¹½Â¤¤Ë¤Ä¤¤¤Æ³Ø¤ó¤Ç¤¤¤Þ¤¹¡£ # ÇÛÎ󡦥ݥ¤¥ó¥¿¡¦´Ø¿ô¤Ï¤Þ¤À¤Ç¤¹¡£ # # /*ÌäÂ꣱ # n>=m>=2¤òËþ¤¿¤¹À°¿ôn¤Èm¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤Èm¿Ê¿ô¤Çn¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò # ºîÀ®¤»¤è¡£¤¿¤À¤·m<=10¤È¤·¤Æ¤¤¤¤¡£É½¼¨¤ÏµÕ½ç¤Ç¤âÎɤ¤¡£ # # ÌäÂꣲ # 2<=n<=10000¤òËþ¤¿¤¹À°¿ôn¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤È2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë # ¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·ºÇ¸å¤Î¹Ô¤ËÁÇ¿ô¤Î¸Ä¿ô¤Î¤ß¤òɽ¼¨¤·¤½¤Î¾¤Î³Æ¹Ô¤Ë¤Ï # ºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ # Îã¡§n=50 # 2 3 5 7 11 13 17 19 23 29 # 31 37 41 43 47 # 15 # # ÌäÂꣳ # ÀäÂÐÃͤ¬£±Ì¤Ëþ¤Î¼Â¿ôx¤ÈÀµ¤ÎÀ°¿ôn¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¥­¡¼¥Ü¡¼¥É¤«¤éx¤Èn¤òÆþÎϤ· # x¤Èn¤¬Àµ¤·¤¯ÆþÎϤµ¤ì¤¿¤é´Ø¿ôlog(1+x)¤Î¶á»÷Ãͤò¼¡¤Î¼°¤Ç·×»»¤·¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¡£ # # log(x+1)=n¦²i=1 (-1)^i+1 / i ¡¡¡¡ ¤Îx^i¡¡¡¡¡¡ # # Îã¡§n=100 x=0.5¤È¤¹¤ë¤È0.405465¤Èɽ¼¨¤µ¤ì¤ë¡£*/ '2<=n<=10000¤òËþ¤¿¤¹À°¿ôn¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤È2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë¡£¤¿¤À¤·ºÇ¸å¤Î¹Ô¤ËÁÇ¿ô¤Î¸Ä¿ô¤Î¤ß¤òɽ¼¨¤·¤½¤Î¾¤Î³Æ¹Ô¤Ë¤ÏºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£' :- '2<=n<=10000¤òËþ¤¿¤¹À°¿ôn¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤È'(_n), '2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë'(_n). '2<=n<=10000¤òËþ¤¿¤¹À°¿ôn¤ò¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤È'(_n) :- À°¿ô¤òÆÀ¤ë('2<=n<=10000¤òËþ¤¿¤¹À°¿ôn',(_n >= 2,_n =< 10000),_n),!. '2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô¤òɽ¼¨¤¹¤ë¡£¤¿¤À¤·ºÇ¸å¤Î¹Ô¤ËÁÇ¿ô¤Î¸Ä¿ô¤Î¤ß¤òɽ¼¨¤·¤½¤Î¾¤Î³Æ¹Ô¤Ë¤ÏºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£'(_n) :- '2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô'(_2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_¸Ä¿ô), '¤½¤Î¾¤Î³Æ¹Ô¤Ë¤ÏºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤'(_2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), ºÇ¸å¤Î¹Ô¤ËÁÇ¿ô¤Î¸Ä¿ô¤Î¤ß¤òɽ¼¨¤·(_¸Ä¿ô). '2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤È¤½¤Î¸Ä¿ô'(_2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_¸Ä¿ô) :- findall(N,between(2,_n,N),L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,_2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó), length(_2°Ê¾ån°Ê²¼¤ÎÁÇ¿ô¤Ê¤é¤Ó,_¸Ä¿ô). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). '¤½¤Î¾¤Î³Æ¹Ô¤Ë¤ÏºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤'(L) :- ºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ(L),!. '¤½¤Î¾¤Î³Æ¹Ô¤Ë¤ÏºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤'([_1,_2,_3,_4,_5,_6,_7,_8,_9,_10|R]) :- atomic_list_concat([_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],',',_10¸Ä¤ÎÁÇ¿ô), writef('%t\n',[_10¸Ä¤ÎÁÇ¿ôʸ»úÎó]). '¤½¤Î¾¤Î³Æ¹Ô¤Ë¤ÏºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ¤Á¤ç¤¦¤É£±£°¸Ä¤ÎÁÇ¿ô¤òɽ¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤'(R). ºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ([]) :- !. ºÇ¸å¤Î°ì¹Ô¤ò½ü¤¤¤Æ(L) :- length(L,_Í×ÁÇ¿ô), _Í×ÁÇ¿ô =< 10, atomic_list_concat(L,',',_10¸Ä°Ê²¼¤ÎÁÇ¿ôʸ»úÎó), writef('%t\n',[_10¸Ä°Ê²¼¤ÎÁÇ¿ôʸ»úÎó]),!. ºÇ¸å¤Î¹Ô¤ËÁÇ¿ô¤Î¸Ä¿ô¤Î¤ß¤òɽ¼¨¤·(_¸Ä¿ô) :- writef('%t\n',[_¸Ä¿ô]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/409 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì ¥¢¥ë¥´¥ê¥º¥à # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¥â¥ó¥Æ¥«¥ë¥íË¡ # http://ime.nu/codepad.org/6m1GPoV0 # # /* # ÌäÂê1. ¥µ¥¤¥³¥í¤ò10,100,1000,10000,100000 ²óÅꤲ¤ÆÊ¬ÉÛ¤òÄ´¤Ù¤è¡£ # # ÌäÂê2. ¥³¥¤¥óÅꤲ¤âƱÍͤˤ·¤Æ¡¢Sn = X1 + ¡¦¡¦¡¦ + Xn ¤ÎSn, # ¤½¤Îmax¡¢min ¤òÄ´¤Ù¤è¡£ # # ÌäÂê3. ¡¡ # ÌÌÀÑ # £± # ¢é¡¡x^2dx ¤ò¥â¥ó¥Æ¥«¥ë¥íË¡¤Çµá¤á¤è # £° # # ÌäÂê4. ¦Ð¤ÎÃͤò¥â¥ó¥Æ¥«¥ë¥íË¡¤Çµá¤á¤è¡£ # ÌäÂê5. 2 ¹àʬÉÛ¤òp=0.4 ¤È¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤è¡£Ê¬Éۤϡ¢**** ¤òÂǤäÆÉ½¼¨¤»¤è¡£ # */ # '2 ¹àʬÉÛ¤òp=0.4 ¤È¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤è¡£Ê¬Éۤϡ¢**** ¤òÂǤäÆÉ½¼¨¤»¤è¡£' :- findall(Count,( between(1,100,N), count((between(1,100,M), U is random(1000), U < 400), Count)), L), ʬÉÛ¤òɽ¼¨¤¹¤ë(L). ʬÉÛ¤òɽ¼¨¤¹¤ë(L) :- between(0,100,N), ɽ¼¨Ê¸»úÎó¤òÀ¸À®(N,L,_ɽ¼¨Ê¸»úÎó), writef('%t: %t\n',[_¥«¥¦¥ó¥Èɽ¼¨Ê¸»úÎó]), N = 100. ɽ¼¨Ê¸»úÎó¤òÀ¸À®(N,L,_ɽ¼¨Ê¸»úÎó) :- À°¿ô¤«¤éʸ»úÎó(2,Count,_¥«¥¦¥ó¥Èɽ¼¨Ê¸»úÎó), findall((*),( member(N,L)), L), atomic_list_concat([_¥«¥¦¥ó¥Èɽ¼¨Ê¸»úÎó,': '|L],_ɽ¼¨Ê¸»úÎó). À°¿ô¤«¤éʸ»úÎó(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó) :- ·åÉÔ­¤Î¾ì¹çƬÉô¤Ë¤Ï¶õÇò¤òµÍ¤á¤ë(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó),!. À°¿ô¤«¤éʸ»úÎó(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó) :- atom_number(_ʸ»úÎó,_À°¿ô). ·åÉÔ­¤Î¾ì¹çƬÉô¤Ë¤Ï¶õÇò¤òµÍ¤á¤ë(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó) :- length(L,_ʸ»úÎó·å), number_chars(_À°¿ô,Chars), append(L0,Chars,L), all(L0,' '), atomic_list_concat(L,_ʸ»úÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/409 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì ¥¢¥ë¥´¥ê¥º¥à # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§¥â¥ó¥Æ¥«¥ë¥íË¡ # http://ime.nu/codepad.org/6m1GPoV0 # # /* # ÌäÂê1. ¥µ¥¤¥³¥í¤ò10,100,1000,10000,100000 ²óÅꤲ¤ÆÊ¬ÉÛ¤òÄ´¤Ù¤è¡£ # # ÌäÂê2. ¥³¥¤¥óÅꤲ¤âƱÍͤˤ·¤Æ¡¢Sn = X1 + ¡¦¡¦¡¦ + Xn ¤ÎSn, # ¤½¤Îmax¡¢min ¤òÄ´¤Ù¤è¡£ # # ÌäÂê3. ¡¡ # ÌÌÀÑ # £± # ¢é¡¡x^2dx ¤ò¥â¥ó¥Æ¥«¥ë¥íË¡¤Çµá¤á¤è # £° # # ÌäÂê4. ¦Ð¤ÎÃͤò¥â¥ó¥Æ¥«¥ë¥íË¡¤Çµá¤á¤è¡£ # ÌäÂê5. 2 ¹àʬÉÛ¤òp=0.4 ¤È¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤è¡£Ê¬Éۤϡ¢**** ¤òÂǤäÆÉ½¼¨¤»¤è¡£ # */ # '¥³¥¤¥óÅꤲ¤âƱÍͤˤ·¤Æ¡¢Sn = X1 + ¡¦¡¦¡¦ + Xn ¤ÎSn,¤½¤Îmax¡¢min ¤òÄ´¤Ù¤è¡£'(_n) :- append(_,[_»î¹Ô²ó¿ô|R],[10,100,1000,10000,100000]), »î¹Ô²ó¿ô¤Î½¸·×¤Ê¤é¤Ó(_»î¹Ô²ó¿ô,_ºÇÂçÃÍ,_ºÇ¾®ÃÍ), À°¿ô¤«¤éʸ»úÎó(6,_»î¹Ô²ó¿ô,_»î¹Ô²ó¿ôʸ»úÎó), writef('»î¹Ô²ó¿ô%t: ºÇÂçÃÍ=%t ºÇ¾®ÃÍ=%t\n',[_»î¹Ô²ó¿ôʸ»úÎó,_ºÇÂçÃÍ,_ºÇ¾®ÃÍ]), R = []. »î¹Ô²ó¿ô¤Î½¸·×¤Ê¤é¤Ó(_»î¹Ô²ó¿ô,_ºÇÂçÃÍ,_ºÇ¾®ÃÍ) :- findall(S,( between(1,_»î¹Ô²ó¿ô,_), count(( between(1,_n,_), 1 is random(1)), S)), L), min(L,_ºÇ¾®ÃÍ), max(L,_ºÇÂçÃÍ),!. À°¿ô¤«¤éʸ»úÎó(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó) :- ·åÉÔ­¤Î¾ì¹çƬÉô¤Ë¤Ï¶õÇò¤òµÍ¤á¤ë(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó),!. À°¿ô¤«¤éʸ»úÎó(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó) :- atom_number(_ʸ»úÎó,_À°¿ô). ·åÉÔ­¤Î¾ì¹çƬÉô¤Ë¤Ï¶õÇò¤òµÍ¤á¤ë(_ʸ»úÎó·å,_À°¿ô,_ʸ»úÎó) :- length(L,_ʸ»úÎó·å), number_chars(_À°¿ô,Chars), append(L0,Chars,L), all(L0,' '), atomic_list_concat(L,_ʸ»úÎó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C¸À¸ì¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 160ÂåÌÜ #400 # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ http://ime.nu/codepad.org/QdOnaWYm # # /* # ¥Ó¥ó¥´¥²¡¼¥à¤òºî¤ë # # »ÅÍÍ # ¡¦5¡ß5¤Î¥Ó¥ó¥´¥«¡¼¥É¤òint·¿¤Î£²¼¡¸µÇÛÎó¤È¤·¤ÆÀë¸À¤¹¤ë # ¡¦¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê¡¢¤½¤ì¤«¤éÀèÆ¬¤Î25¸Ä¤ò¥Ó¥ó¥´¥«¡¼¥É¤ËŬÍÑ # ¡¦ºÇ½é¤Ë¥Ó¥ó¥´¥«¡¼¥ÉºîÀ®¤Ë»È¤¦¤¿¤á¤Î½ÅÊ£¤·¤Ê¤¤100¸Ä¤ÎÍð¿ô¤ò¸«¤ä¤¹¤¤·Á¤Çɽ¼¨ # ¡¦Ãͤò¸ò´¹¤¹¤ë½èÍý¤Ï´Ø¿ô²½¤¹¤ë # ¡¦¼ÂºÝ¤Î¥Ó¥ó¥´¥²¡¼¥à¤Î¤è¤¦¤Ë¥¬¥é¥¬¥é¤Ç£±¤Ä¤º¤Ä¿ô»ú¤¬½Ð¤Æ¤¯¤ë # ¡¦¥¬¥é¥¬¥é¤Ï1¡Á100¤Þ¤Ç¤Î½ÅÊ£¤·¤Ê¤¤Íð¿ô¤òºî¤ëµ¡³£¤Ç¤¢¤ê¡¢¥Ó¥ó¥´¥«¡¼¥ÉºîÀ®¤ËÍѤ¤¤¿Íð¿ôÎó¤È¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó¤ÏÊÌʪ¤Ç¤¢¤ë # ¡¦¥Ó¥ó¥´¥«¡¼¥ÉºîÀ®ÍѤÎÍð¿ô¤È¥¬¥é¥¬¥éÍѤÎÍð¿ô¤Ï¥Ò¡¼¥×Îΰè¤Ë³ÎÊݤ·¤¿ÇÛÎó¤Ë³ÊǼ # ¡¦¥«¡¼¥É¤Î½Ä¡¢²£¡¢¼Ð¤á¤Î¤¤¤º¤ì¤«¤¬¤½¤í¤Ã¤¿¤é¥²¡¼¥à½ªÎ» # */ # :- dynamic(¾ÞÉÊ/1). ¥Ó¥ó¥´»²²Ã¼Ô(¥±¥¤¥¹¥±). ¥Ó¥ó¥´»²²Ã¼Ô(¥æ¥¦¥ä). ¥Ó¥ó¥´»²²Ã¼Ô(¥¿¥À¥·). ¥Ó¥ó¥´»²²Ã¼Ô(¥Þ¥Ã¥Á). ¥Ó¥ó¥´»²²Ã¼Ô(¥È¥ª¥ë). ¾ÞÉÊ('¥Õ¥§¥é¡¼¥ê(ÌÏ·¿)'). ¾ÞÉÊ('¥³¥ë¥È45(ÌÏ·¿)'). ¾ÞÉÊ(À¾Ãݰì¤Î»È¤Ã¤Æ¤¤¤¿Çï¼Ö). ¾ÞÉÊ(¥Æ¥£¡¼¥Ü¡¼¥ë¥»¥Ã¥È). ¾ÞÉÊ(¥Ó¥ó¥´¥»¥Ã¥È). ¥Ó¥ó¥´¥²¡¼¥à :- findall(_¥Ó¥ó¥´»²²Ã¼Ô,¥Ó¥ó¥´»²²Ã¼Ô(_¥Ó¥ó¥´»²²Ã¼Ô),_¥Ó¥ó¥´»²²Ã¼Ô¤Ê¤é¤Ó), ¥Ó¥ó¥´¥²¡¼¥à(_¥Ó¥ó¥´»²²Ã¼Ô¤Ê¤é¤Ó). ¥Ó¥ó¥´¥²¡¼¥à(_¥Ó¥ó¥´»²²Ã¼Ô¤Ê¤é¤Ó) :- ¥²¡¼¥à»²²Ã¼Ô¤Î¥Ó¥ó¥´¥«¡¼¥É(_¥Ó¥ó¥´»²²Ã¼Ô¤Ê¤é¤Ó,_¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó), '¥¬¥é¥¬¥é¤Ï1¡Á100¤Þ¤Ç¤Î½ÅÊ£¤·¤Ê¤¤Íð¿ô¤òºî¤ëµ¡³£¤Ç¤¢¤ê¡¢¥Ó¥ó¥´¥«¡¼¥ÉºîÀ®¤ËÍѤ¤¤¿Íð¿ôÎó¤È¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó¤ÏÊÌʪ¤Ç¤¢¤ë'(_¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó), »²²Ã¼ÔÁ´°÷¤¬¥Ó¥ó¥´¤È¤Ê¤ë¤Þ¤Ç¥¬¥é¥¬¥é¤ò·«¤êÊÖ¤¹(_¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó,_¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó). »²²Ã¼ÔÁ´°÷¤¬¥Ó¥ó¥´¤È¤Ê¤ë¤Þ¤Ç¥¬¥é¥¬¥é¤ò·«¤êÊÖ¤¹([],_) :- write('¥Ó¥ó¥´½ªÎ»\n¤´¶ìÏ«¤µ¤Þ¤Ç¤·¤¿\n'),!. »²²Ã¼ÔÁ´°÷¤¬¥Ó¥ó¥´¤È¤Ê¤ë¤Þ¤Ç¥¬¥é¥¬¥é¤ò·«¤êÊÖ¤¹(_»²²Ã¼Ô¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó,L1) :- ¥¬¥é¥¬¥é(L1,_¿ô,L2), ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü(_¿ô,_»²²Ã¼Ô¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó,_¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¿Í¤òºï½ü¤·¤¿»²²Ã¼Ô¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó), »²²Ã¼ÔÁ´°÷¤¬¥Ó¥ó¥´¤È¤Ê¤ë¤Þ¤Ç¥¬¥é¥¬¥é¤ò·«¤êÊÖ¤¹(_¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¿Í¤òºï½ü¤·¤¿»²²Ã¼Ô¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó,L2). '5¡ß5¤Î¥Ó¥ó¥´¥«¡¼¥É¤òint·¿¤Î£²¼¡¸µÇÛÎó¤È¤·¤ÆÀë¸À¤¹¤ë'(_¥Ó¥ó¥´¥«¡¼¥É) :- length(_¥Ó¥ó¥´¥«¡¼¥É,5), findall(L,( member(L,_¥Ó¥ó¥´¥«¡¼¥É), length(L,5)),_¥Ó¥ó¥´¥«¡¼¥É). ¥²¡¼¥à»²²Ã¼Ô¤Î¥Ó¥ó¥´¥«¡¼¥É(_¥Ó¥ó¥´»²²Ã¼Ô¤Ê¤é¤Ó,_¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó) :- findall([_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´¥«¡¼¥É],( member(_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´»²²Ã¼Ô¤Ê¤é¤Ó), '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê¡¢¤½¤ì¤«¤éÀèÆ¬¤Î25¸Ä¤ò¥Ó¥ó¥´¥«¡¼¥É¤ËŬÍÑ'(_¥Ó¥ó¥´¥«¡¼¥É)),_¥Ó¥ó¥´¥«¡¼¥É¤Ê¤é¤Ó). '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê¡¢¤½¤ì¤«¤éÀèÆ¬¤Î25¸Ä¤ò¥Ó¥ó¥´¥«¡¼¥É¤ËŬÍÑ'(_¥Ó¥ó¥´¥«¡¼¥É) :- '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(L), ¤½¤ì¤«¤éÀèÆ¬¤Î25¸Ä¤ò¥Ó¥ó¥´¥«¡¼¥É¤ËŬÍÑ(L,_¥Ó¥ó¥´¥«¡¼¥É). '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(L) :- findall(N,between(1,100,N),L1), '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(100,L1,L). '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(0,_,[]) :- !. '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(Nth,L1,[N|R2]) :- '½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô'(Nth,L1,N,L2), Nth_1 is Nth - 1, '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(Nth_1,L2,R2). '½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô'(Nth,L1,N,L2) :- Nth0 is random(Nth), length(L0,Nth0), append(L0,[N|R1],L1), append(L0,R1,L2),!. ¤½¤ì¤«¤éÀèÆ¬¤Î25¸Ä¤ò¥Ó¥ó¥´¥«¡¼¥É¤ËŬÍÑ(_½ÅÊ£¤·¤Ê¤¤100¸Ä¤ÎÍð¿ô¤Ê¤é¤Ó,_¥Ó¥ó¥´¥«¡¼¥É) :- ¥Ó¥ó¥´¥«¡¼¥É(_½ÅÊ£¤·¤Ê¤¤100¸Ä¤ÎÍð¿ô¤Ê¤é¤Ó,_¥Ó¥ó¥´¥«¡¼¥É). ¥Ó¥ó¥´¥«¡¼¥É(_½ÅÊ£¤·¤Ê¤¤100¸Ä¤ÎÍð¿ô¤Ê¤é¤Ó,_¥Ó¥ó¥´¥«¡¼¥É) :- _¥Ó¥ó¥´¥«¡¼¥É=[[_,_,_,_,_],[_,_,_,_,_],[_,_,_,_,_],[_,_,_,_,_],[_,_,_,_,_]], flatten(_¥Ó¥ó¥´¥«¡¼¥É,L), append(L,_,_½ÅÊ£¤·¤Ê¤¤100¸Ä¤ÎÍð¿ô¤Ê¤é¤Ó). '¥¬¥é¥¬¥é¤Ï1¡Á100¤Þ¤Ç¤Î½ÅÊ£¤·¤Ê¤¤Íð¿ô¤òºî¤ëµ¡³£¤Ç¤¢¤ê¡¢¥Ó¥ó¥´¥«¡¼¥ÉºîÀ®¤ËÍѤ¤¤¿Íð¿ôÎó¤È¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó¤ÏÊÌʪ¤Ç¤¢¤ë'(_¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó) :- '¥Ó¥ó¥´¥«¡¼¥É¤Î¿ô»ú¤Ï½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô¤òºî¤ê'(_¥¬¥é¥¬¥é¤Ç»È¤¦Íð¿ôÎó),!. ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü(_,[],[]). ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü(_¿ô»ú,[[_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´¥«¡¼¥É_1]|R1],R) :- °ìÃפ·¤¿¿ô»ú¤¬¤¢¤Ã¤¿¤é·ê¤ò¤¢¤±¤ë(_¿ô»ú,_¥Ó¥ó¥´¥«¡¼¥É_1,_¥Ó¥ó¥´¥«¡¼¥É_2), ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü_2(_¿ô»ú,[[_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´¥«¡¼¥É_2]|R1],R). ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü_2(_¿ô»ú,[[_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´¥«¡¼¥É_1]|R1],R) :- ¥Ó¥ó¥´¤À¤Ã¤¿¤é¾ÞÉʤòÅϤ·¤Æ¤½¤Î¿Í¤Ï¾å¤¬¤ê(_¥Ó¥ó¥´¥«¡¼¥É_1,_¥Ó¥ó¥´»²²Ã¼Ô), ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü(_¿ô»ú,R1,R),!. ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü_2(_¿ô»ú,[[_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´¥«¡¼¥É_1]|R1],[[_¥Ó¥ó¥´»²²Ã¼Ô,_¥Ó¥ó¥´¥«¡¼¥É_1]|R]) :- ¥Ó¥ó¥´¤Ë¤Ê¤Ã¤¿¥«¡¼¥É¤òõ¤·¾ÞÉʤòÅϤ·¤Æ¤½¤Î¥«¡¼¥É¤òºï½ü(_¿ô»ú,R1,R). ¥Ó¥ó¥´¤À¤Ã¤¿¤é¾ÞÉʤòÅϤ·¤Æ¤½¤Î¿Í¤Ï¾å¤¬¤ê(_¥Ó¥ó¥´¥«¡¼¥É,_¥Ó¥ó¥´»²²Ã¼Ô) :- ¥Ó¥ó¥´(_¥Ó¥ó¥´¥«¡¼¥É), ¥Ó¥ó¥´É½¼¨(_¥Ó¥ó¥´¥«¡¼¥É), ¾ÞÉʤòÅϤ¹(_¥Ó¥ó¥´»²²Ã¼Ô),!. °ìÃפ·¤¿¿ô»ú¤¬¤¢¤Ã¤¿¤é·ê¤ò¤¢¤±¤ë(_¿ô»ú,_¥Ó¥ó¥´¥«¡¼¥É_1,_¥Ó¥ó¥´¥«¡¼¥É_2) :- findall(L2,( member(L,_¥Ó¥ó¥´¥«¡¼¥É_1), °ìÃפ·¤¿¾ì¹ç¤À¤±·ê¤ò³«¤±¤ë(_¿ô»ú,L,L2)),_¥Ó¥ó¥´¥«¡¼¥É_2). °ìÃפ·¤¿¾ì¹ç¤À¤±·ê¤ò³«¤±¤ë(_¿ô»ú,L,L2) :- append(L0,[_¿ô»ú|R],L), append(L0,[·ê|R],L2),!. °ìÃפ·¤¿¾ì¹ç¤À¤±·ê¤ò³«¤±¤ë(_,L,L). ¥Ó¥ó¥´([·ê,_,_,_,_],[_,·ê,_,_,_,_],[_,_,·ê,_,_],[_,_,_,·ê,_],[_,_,_,_,·ê]) :- !. ¥Ó¥ó¥´([_,_,_,_,·ê],[_,_,_,·ê,_],[_,_,·ê,_,_],[_,·ê,_,_,_,_],[·ê,_,_,_,_]) :- !. ¥Ó¥ó¥´(_¥Ó¥ó¥´¥«¡¼¥É) :- member(L,_¥Ó¥ó¥´¥«¡¼¥É), all(L,·ê),!. ¥Ó¥ó¥´(_¥Ó¥ó¥´¥«¡¼¥É) :- žÃÖ(_¥Ó¥ó¥´¥«¡¼¥É,_¥Ó¥ó¥´¥«¡¼¥É_2), member(L,_¥Ó¥ó¥´¥«¡¼¥É_2), all(L,·ê),!. ¥Ó¥ó¥´É½¼¨(_¥Ó¥ó¥´¥«¡¼¥É) :- forall(member(L,_¥Ó¥ó¥´¥«¡¼¥É),¥Ó¥ó¥´¹Ôɽ¼¨(L)). ¥Ó¥ó¥´¹Ôɽ¼¨([]) :- write('\n'). ¥Ó¥ó¥´¹Ôɽ¼¨([A|R]) :- ɽ¼¨ÊÑ´¹(A,B), writef('%w ',[B]), ¥Ó¥ó¥´¹Ôɽ¼¨(R). ɽ¼¨ÊÑ´¹(·ê,·ê) :- !. ɽ¼¨ÊÑ´¹(N,A) :- N < 10, atomic_list_concat([' ',N],A),!. ɽ¼¨ÊÑ´¹(N,A) :- atom_number(A,N). ¾ÞÉʤòÅϤ¹(_»²²Ã¼Ô) :- retract(¾ÞÉÊ(_¾ÞÉÊ)), writef('%t·¯¤Ï¥Ó¥ó¥´¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¾ÞÉÊ¤Ï %t ¤Ç¤¹!\n',[_»²²Ã¼Ô,_¾ÞÉÊ]),!. all([],_). all([A|R],A) :- all(R,A). ¥¬¥é¥¬¥é(L1,_¿ô»ú,L2) :- length(L1,_nth_1), Nth is random(_nth_1) + 1, '½ÅÊ£¤·¤Ê¤¤1¡Á100¤ÎÍð¿ô'(Nth,L1,_¿ô»ú,L2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '99 bottles of beer on the wall' :- A = ' bottles of beer on the wall, ', B = ' bottles of beer,\nTake one down and pass it around, ', C = ' bottles of beer on the wall.\n\n', D = '1 bottle of beer on the wall, 1 bottle of beer,\nTake one down, and pass it around,\nNow they are all gone.\n', '99 bottles of beer on the wall'(A,B,C,D). '99 bottles of beer on the wall'(A,B,C,D) :- findall([N,C,N,A,N,B],between(2,99,N),L_1), reverse([D|L_1],L_2), flatten(L_2,[_,_|L_3]), atomic_list_concat(L_3,_99_bottles_of_beer_on_the_wall), write(_99_bottles_of_beer_on_the_wall). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '99 bottles of beer on the wall' :- ' bottles of beer on the wall, ' = A, ' bottles of beer, Take one down and pass it around, ' = B, ' bottles of beer on the wall. ' = C, '1 bottle of beer on the wall, 1 bottle of beer, Take one down, and pass it around, Now they are all gone. ' = D, findall([N,C,N,A,N,B],between(2,99,N),L_1), reverse([D|L_1],L_2), flatten(L_2,[_,_|L_3]), atomic_list_concat(L_3,_99_bottles_of_beer_on_the_wall), write(_99_bottles_of_beer_on_the_wall). % °Ê²¼¤Î¥µ¥¤¥È¤Ï a(' bottles of beer on the wall, '). b(' bottles of beer, Take one down and pass it around, '). c(' bottles of beer on the wall. '). d('1 bottle of beer on the wall, 1 bottle of beer, Take one down, and pass it around, Now they are all gone. '). '99 bottles of beer on the wall'(_99_bottles_of_beer_on_the_wall) :- a(A), b(B), c(C), d(D), findall_flatten_concat_2(A,B,C,D,_99_bottles_of_beer_on_the_wall). findall_flatten_concat_2(A,B,C,D,S) :- findall([N,C,N,A,N,B],( for(99,N,2)), L_1), flatten(L_1,[_,_|L_2]), append(L_2,[D],L_3), atomic_list_concat(L_3,S). % °Ê²¼¤Î¥µ¥¤¥È¤Ï '99 bottles of beer on the wall' :- findall([N,' bottles of beer on the wall.\n\n',N,' bottles of beer on the wall, ',N,' bottles of beer,\nTake one down and pass it around, '],between(2,99,N),L_1), reverse(['1 bottle of beer on the wall, 1 bottle of beer,\nTake one down, and pass it around,\nNow they are all gone.\n'|L_1],L_2), flatten(L_2,[_,_|L_3]), atomic_list_concat(L_3,_99_bottles_of_beer_on_the_wall), write(_99_bottles_of_beer_on_the_wall). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ?- 'a##'. # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/354 # # [1] ¼ø¶Èñ¸µ¡§ ·«¤êÊÖ¤· # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ http://ime.nu/codepad.org/ULbfD1pL # ÑѾè·×»» # # /*¥­¡¼¥Ü¡¼¥É¤«¤éÀ°¿ôn (2<=n<=9) ¤òÆþÎϤ· # Ãͤò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # Îã¡Ën = 5 ¤Î¾ì¹ç # 2 4 # 3 9 27 # 4 16 64 256 # 5 25 125 625 3125 */ '¥­¡¼¥Ü¡¼¥É¤«¤éÀ°¿ôn (2<=n<=9) ¤òÆþÎϤ·¡¢i^j (2<=i<=n,1<=j<=i) ¤ÎÃͤò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÀ°¿ôn (2<=n<=9) ¤òÆþÎϤ·'(_À°¿ôn), 'i^j (2<=i<=n,1<=j<=i) ¤ÎÃͤò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë'(2,_n), write('\n'). '¥­¡¼¥Ü¡¼¥É¤«¤éÀ°¿ôn (2<=n<=9) ¤òÆþÎϤ·'(_À°¿ôn) :- À°¿ô¤òÆÀ¤ë('À°¿ôn (2<=n<=9)',(_À°¿ôn >=2,_À°¿ôn =< 9),_À°¿ôn),!. 'i^j (2<=i<=n,1<=j<=i) ¤ÎÃͤò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë'(_i,_n) :- _i > _n,!. 'i^j (2<=i<=n,1<=j<=i) ¤ÎÃͤò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë'(_i,_n) :- 'i ^ j ¤Îɽ¼¨'(_i), _i_2 is _i + 1, 'i^j (2<=i<=n,1<=j<=i) ¤ÎÃͤò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë'(_i_2,_n). 'i ^ j ¤Îɽ¼¨'(_i) :- between(1,_i,_j), _x is _i ^ _j, writef('%t ',[_x]), _i = _j. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/325 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ¡§ # http://ime.nu/codepad.org/m1ElsrJZ #include # # int main(void) # { # int x[5] = {30, 25, 33, 15, 22}; # int *p; # int i; # p = x; # printf("*P = %d\n", *p); # for(i = 0; i < 5; i++) # { # printf("*(p+%d) = %d\n", i, *(p + i)); # } # return 0; # } # ¾åµ­¤Î¥×¥í¥°¥é¥à¤òx[5] = {54, 56, 64, 42, 58};¤È¤·¤Æ½é´ü²½¤· # ºÇÂçÃͤò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò¥Ý¥¤¥ó¥¿ÊÑ¿ô¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£ # 'x[5] = {54, 56, 64, 42, 58};¤È¤·¤Æ½é´ü²½¤·ºÇÂçÃͤò½ÐÎϤ¹¤ë' :- 'x[5] = {54, 56, 64, 42, 58};¤È¤·¤Æ½é´ü²½¤·'(_x), ºÇÂçÃͤò(_x,_ºÇÂçÃÍ), ½ÐÎϤ¹¤ë(_ºÇÂçÃÍ). 'x[5] = {54, 56, 64, 42, 58};¤È¤·¤Æ½é´ü²½¤·'(_x) :- _x = [54,56,64,42,58]. ºÇÂçÃͤò([A|R],_ºÇÂçÃÍ) :- ºÇÂçÃͤò(R,A,_ºÇÂçÃÍ). ºÇÂçÃͤò([],_ºÇÂçÃÍ,_ºÇÂçÃÍ). ºÇÂçÃͤò([A|R],_ºÇÂçÃÍ_1,_ºÇÂçÃÍ) :- A >= _ºÇÂçÃÍ_1, ºÇÂçÃͤò(R,_ºÇÂçÃÍ_2,_ºÇÂçÃÍ),!. ºÇÂçÃͤò([_|R],_ºÇÂçÃÍ_1,_ºÇÂçÃÍ) :- ºÇÂçÃͤò(R,_ºÇÂçÃÍ_1,_ºÇÂçÃÍ),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/246 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§http://ime.nu/codepad.org/xFhlH4zn # # /* # 1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎϤ·¡¢¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò°Ê²¼¤Î¤è¤¦¤Ëɽ¤»¡£ # ¤¿¤À¤·¡¢ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»¤··ë²Ì¤òɽ¼¨¤¹¤ë¡£ # # # [¼Â¹ÔÎã] # ÃÍ:3 # ÃÍ:4 # ÃÍ:3 # ÃÍ:3 # ÃÍ:2 # ÃÍ:2 # ÃÍ:3 # ÃÍ:0 # # //ÉÑÅÙ¤ò*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë¡£// # 1=0: # 2=2:** # 3=4:**x* # 4=1:* # 5=0: # # */ # '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎϤ·¡¢¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò 1=0: 2=2:** 3=4:**x* 4=1:* 5=0: ¤Î¤è¤¦¤Ëɽ¤»¡£¤¿¤À¤·¡¢ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»¤··ë²Ì¤òɽ¼¨¤¹¤ë¡£' :- '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·¡¢·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Çɽ¼¨¤¹¤ë'. '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·¡¢·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Çɽ¼¨¤¹¤ë' :- '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·'(_ÆþÎÏÃͤʤé¤Ó), ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Çɽ¼¨¤¹¤ë(_ÆþÎÏÃͤʤé¤Ó). '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·'(_ÆþÎÏÃͤʤé¤Ó) :- ¿ôÃͤòÆþÎÏ(_¿ôÃÍ), '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·'(_¿ôÃÍ,_ÆþÎÏÃͤʤé¤Ó). '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·'(_¿ôÃÍ,[]) :- ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿(_¿ôÃÍ),!. '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·'(_¿ôÃÍ,[_¿ôÃÍ|R]) :- '1¤«¤é5¤Þ¤Ç¤Î¿ôÃÍ'(_¿ôÃÍ), ¿ôÃͤòÆþÎÏ(_¿ôÃÍ_2), '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤòÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤·ÆþÎϤ·'(_¿ôÃÍ_2,R). ¿ôÃͤòÆþÎÏ(_¿ôÃÍ) :- À°¿ô¤òÆÀ¤ë('1¤«¤é5¤Þ¤Ç¤ÎÀ°¿ô(½ªÎ»¤¹¤ë»þ¤ÏÈϰϳ°¤Î¿ôÃͤòÆþÎÏ)',_¿ôÃÍ). '1¤«¤é5¤Þ¤Ç¤Î¿ôÃÍ'(_¿ôÃÍ) :- between(1,5,_¿ôÃÍ). ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿(_ÃÍ) :- \+(between(1,5,_¿ôÃÍ)). ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Çɽ¼¨¤¹¤ë(_ÆþÎÏÃͤʤé¤Ó) :- between(1,5,N), ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Ç(N,_ÆþÎÏÃͤʤé¤Ó,0,_ÉÑÅÙ,_¥°¥é¥Õɽ¼¨µ­¹æ¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(N,_ÉÑÅÙ,_¥°¥é¥Õɽ¼¨µ­¹æ¤Ê¤é¤Ó), N = 5. ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Ç(_,[],_ÉÑÅÙ,_ÉÑÅÙ,[]) :- !. ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Ç(N,[N|R1],_ÉÑÅÙ_1,_ÉÑÅÙ,[_ɽ¼¨µ­¹æ|R2]) :- _ÉÑÅÙ_2 is _ÉÑÅÙ_1 + 1, ¥°¥é¥Õ¤Îɽ¼¨µ­¹æ¤òÁªÂò¤¹¤ë(_ÉÑÅÙ_2,_ɽ¼¨µ­¹æ), ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Ç(N,R1,_ÉÑÅÙ_2,_ÉÑÅÙ,R2),!. ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Ç(N,[_|R1],_ÉÑÅÙ_1,_ÉÑÅÙ,R2) :- ·ë²Ì¤òÉÑÅ٤ȥ°¥é¥Õ¤Ç(N,R1,_ÉÑÅÙ_1,_ÉÑÅÙ,R2). ¥°¥é¥Õ¤Îɽ¼¨µ­¹æ¤òÁªÂò¤¹¤ë(_ÉÑÅÙ,x) :- ÉÑÅÙ¤¬3¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤¿¤é(M_1). ¥°¥é¥Õ¤Îɽ¼¨µ­¹æ¤òÁªÂò¤¹¤ë(_ÉÑÅÙ,*) :- ÉÑÅÙ¤¬3¤ÎÇÜ¿ô¤Ç¤Ê¤«¤Ã¤¿¤é(_ÉÑÅÙ). ÉÑÅÙ¤¬3¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤¿¤é(_ÉÑÅÙ) :- 0 is _ÉÑÅÙ mod 3. ÉÑÅÙ¤¬3¤ÎÇÜ¿ô¤Ç¤Ê¤«¤Ã¤¿¤é(_ÉÑÅÙ) :- \+(0 is _ÉÑÅÙ mod 3). ɽ¼¨¤¹¤ë(N,_ÉÑÅÙ,_¥°¥é¥Õɽ¼¨µ­¹æ¤Ê¤é¤Ó) :- atomic_list_concat(_¥°¥é¥Õɽ¼¨µ­¹æ¤Ê¤é¤Ó,_ɽ¼¨¥°¥é¥Õʸ»úÎó), writef('%t=%t: %t\n',[N,_ÉÑÅÙ,_ɽ¼¨¥°¥é¥Õʸ»úÎó]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/226 # # [1]C¸À¸ì¡¡·«¤êÊÖ¤·Ê¸ # [2]ÌäÂꡡŤ¤¤Î¤Ç¥ê¥ó¥¯¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£ # http://ime.nu/codepad.org/iaWNbokN # [3]Linux ubuntu gcc C¸À¸ì # [4]º£½µÆüÍËÆüËø # [5]ÇÛÎó ¥Ý¥¤¥ó¥¿¤Ê¤É¤Ï½¬¤Ã¤Æ¤Ê¤¤¤Ç¤¹¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # ²ÝÂê1. # ¥­¡¼¥Ü¡¼¥É¤«¤é2 °Ê¾å¤ÎÀ°¿ô¤ò1 ¤ÄÆþÎϤ·¡¤¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤ # ¤½¤Î¿ô¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¤°Ê²¼¤Î¾ò·ï¤òËþ¤¿¤¹¤³¤È¡¥ # ¥×¥í¥°¥é¥àÃæ¤Ç¡¤¥ë¡¼¥×²ó¿ô¤ò¥«¥¦¥ó¥È¤·¡¤ÆþÎÏÃͤ¬ÁÇ¿ô¤Î¤È¤­¤Ë¥ë¡¼¥×²ó¿ô¤â # ɽ¼¨¤¹¤ë #  ¼¡¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤è¤ê¤â¥ë¡¼¥×²ó¿ô¤¬¾¯¤Ê¤¯¤Ê¤ë¤è¤¦¤Ë¤¹¤ë # 1)¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¤ÆþÎÏÃÍ(n) ¤¬ÁÇ¿ô¤Î¾ì¹ç¤Î¥ë¡¼¥×²ó¿ô¤Ï¡¤n - 2 ²ó¤Ë¤Ê¤ë # 2)ÆþÎÏÃͤ¬¾®¤µ¤¤¾ì¹ç(n = 2, 3 ¤Ê¤É) ¤Ï¡¤¥ë¡¼¥×²ó¿ô¤¬¾¯¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¤è¤¤# # #include <stdio.h> # int main(void) # { # int n, i, count = 0; # printf("n: "); # scanf("%d", &n); # for (i = 2; i * i <= n; i++) { # count++; # if (n % i == 0) { # break; # } # } # if (i * i > n) { # printf("%d: %d\n", n, count); # } # return 0; # } # # '¥­¡¼¥Ü¡¼¥É¤«¤é2 °Ê¾å¤ÎÀ°¿ô¤ò1¤ÄÆþÎϤ·¡¤¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤¤½¤Î¿ô¤òɽ¼¨¤¹¤ë¡¥¤¿¤À¤·¡¤°Ê²¼¤Î¾ò·ï¤òËþ¤¿¤¹¤³¤È¡¥¥×¥í¥°¥é¥àÃæ¤Ç¡¤¥ë¡¼¥×²ó¿ô¤ò¥«¥¦¥ó¥È¤·¡¤ÆþÎÏÃͤ¬ÁÇ¿ô¤Î¤È¤­¤Ë¥ë¡¼¥×²ó¿ô¤âɽ¼¨¤¹¤ë' :- '¥­¡¼¥Ü¡¼¥É¤«¤é2 °Ê¾å¤ÎÀ°¿ô¤ò1¤ÄÆþÎϤ·'(_2°Ê¾å¤ÎÀ°¿ô), '¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤¤½¤Î¿ô¤òɽ¼¨¤¹¤ë'(_2°Ê¾å¤ÎÀ°¿ô). '¥­¡¼¥Ü¡¼¥É¤«¤é2 °Ê¾å¤ÎÀ°¿ô¤ò1 ¤ÄÆþÎϤ·¡¤¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤¤½¤Î¿ô¤òɽ¼¨¤¹¤ë¡¥¤¿¤À¤·¡¤°Ê²¼¤Î¾ò·ï¤òËþ¤¿¤¹¤³¤È¡¥¥×¥í¥°¥é¥àÃæ¤Ç¡¤¥ë¡¼¥×²ó¿ô¤ò¥«¥¦¥ó¥È¤·¡¤ÆþÎÏÃͤ¬ÁÇ¿ô¤Î¤È¤­¤Ë¥ë¡¼¥×²ó¿ô¤âɽ¼¨¤¹¤ë' :- '¥­¡¼¥Ü¡¼¥É¤«¤é2 °Ê¾å¤ÎÀ°¿ô¤ò1¤ÄÆþÎϤ·¡¤¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤¤½¤Î¿ô¤òɽ¼¨¤¹¤ë¡¥¤¿¤À¤·¡¤°Ê²¼¤Î¾ò·ï¤òËþ¤¿¤¹¤³¤È¡¥¥×¥í¥°¥é¥àÃæ¤Ç¡¤¥ë¡¼¥×²ó¿ô¤ò¥«¥¦¥ó¥È¤·¡¤ÆþÎÏÃͤ¬ÁÇ¿ô¤Î¤È¤­¤Ë¥ë¡¼¥×²ó¿ô¤âɽ¼¨¤¹¤ë'. '¥­¡¼¥Ü¡¼¥É¤«¤é2 °Ê¾å¤ÎÀ°¿ô¤ò1¤ÄÆþÎϤ·'(_2°Ê¾å¤ÎÀ°¿ô) :- À°¿ô¤òÆÀ¤ë('2°Ê¾å¤ÎÀ°¿ô¤ò1¤Ä',_2°Ê¾å¤ÎÀ°¿ô >= 2,_2°Ê¾å¤ÎÀ°¿ô),!. '¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤¤½¤Î¿ô¤òɽ¼¨¤¹¤ë'(0) :- !. '¤½¤Î¿ô¤¬ÁÇ¿ô(1 ¤È¤½¤Î¿ô°Ê³°¤Ç³ä¤êÀÚ¤ì¤Ê¤¤¿ô) ¤Î¤È¤­¤À¤±¡¤¤½¤Î¿ô¤òɽ¼¨¤¹¤ë'(_2°Ê¾å¤ÎÀ°¿ô) :- 'N¤ÏÁÇ¿ô¤«'(_2°Ê¾å¤ÎÀ°¿ô), writef('%t¤ÏÁÇ¿ô¤Ç¤¹\n',[_2°Ê¾å¤ÎÀ°¿ô]), fail. 'N¤ÏÁÇ¿ô¤«'(N) :- findall(M,between(2,N,M),L), '¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ'(L,L2), last(L2,N),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/175 # # [1]C¸À¸ì # [2]Ì䣱. ¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ô¤ò2 ¤Ä(x¡¢y ¤È¤¹¤ë) ÆþÎϤ·¡¢½Äx ¸Ä¡¢²£y ¸Ä¤Îʸ»ú'*' ¤«¤é # ¤Ê¤ëĹÊý·Á¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò¿½Å¥ë¡¼¥×¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£ # # Ì䣲. ¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ôx ¤òÆþÎϤ·¡¢²¼µ­¤Î¤è¤¦¤Ë¡¢°ìÊÕ¤Ë'*' ¤¬x ¸Äʤó¤Àľ³Ñ»°³Ñ # ·Á¤¬²èÌ̤˽ÐÎϤµ¤ì¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£(x = 5 ¤Î¤È¤­¤ÎÎã) # ***** # **** # *** # ** # * # [3]Linux # gcc # C¸À¸ì # [4]ËÜÆüÃæ¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£ # # :- op(700,xfx,(::)). '¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ô''x'' ¤òÆþÎϤ·¡¢°ìÊÕ¤Ë''*'' ¤¬x ¸Äʤó¤Àľ³Ñ»°³Ñ·Á¤¬²èÌ̤˽ÐÎϤµ¤ì¤ë' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ô''x'' ¤òÆþÎϤ·'(_x), '°ìÊÕ¤Ë''*'' ¤¬x ¸Äʤó¤Àľ³Ñ»°³Ñ·Á¤¬²èÌ̤˽ÐÎϤµ¤ì¤ë'(_x). '¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ô''x'' ¤òÆþÎϤ·'(_x) :- À°¿ô¤òÆÀ¤ë(Àµ¤ÎÀ°¿ôx,_x > 0,_x). '°ìÊÕ¤Ë''*'' ¤¬x ¸Äʤó¤Àľ³Ñ»°³Ñ·Á¤¬²èÌ̤˽ÐÎϤµ¤ì¤ë'(0) :- !. '°ìÊÕ¤Ë''*'' ¤¬x ¸Äʤó¤Àľ³Ñ»°³Ñ·Á¤¬²èÌ̤˽ÐÎϤµ¤ì¤ë'(_x) :- _x :: write(*), nl, _x_1 is _x - 1, '°ìÊÕ¤Ë''*'' ¤¬x ¸Äʤó¤Àľ³Ñ»°³Ñ·Á¤¬²èÌ̤˽ÐÎϤµ¤ì¤ë'(_x_1). _²ó¿ô :: P :- between(1,_²ó¿ô,N), P, _²ó¿ô = N. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/53 # # [1]C¸À¸ì¡¡forʸ whileʸ do whileʸ # [2]ÌäÂê¡¡http://ime.nu/codepad.org/oxqRFj3G # [3]Linux gcc # [4]10·î9Æü 10»þ # [5]Ťá¤Ç¤¹¤¬¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Ä¡£ # # /* # # 17. 1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿ # ¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£ # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # */ :- op(800,xf,¤µ¤é¤Ë¤³¤ì¤ò5²ó·«¤êÊÖ¤¹). '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£ 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10' :- '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£'. '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£' :- '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·' ¤µ¤é¤Ë¤³¤ì¤ò5²ó·«¤êÊÖ¤¹. '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·' :- for(1,N,9), writef('%t ',[N]), N = 9, write('10\n'). _¤³¤ì ¤µ¤é¤Ë¤³¤ì¤ò5²ó·«¤êÊÖ¤¹ :- for(1,N,5), _¤³¤ì, N = 5. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/53 # # [1]C¸À¸ì¡¡forʸ whileʸ do whileʸ # [2]ÌäÂê¡¡http://ime.nu/codepad.org/oxqRFj3G # [3]Linux gcc # [4]10·î9Æü 10»þ # [5]Ťá¤Ç¤¹¤¬¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Ä¡£ # # /* # # 17. 1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿ # ¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£ # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # */ '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£ 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10' :- '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£'. '1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£' :- for(1,M,5), for(1,N,9), writef('%t ',[N]), N = 9, write('10\n'), M = 5. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/53 # # [1]C¸À¸ì¡¡forʸ whileʸ do whileʸ # [2]ÌäÂê¡¡http://ime.nu/codepad.org/oxqRFj3G # [3]Linux gcc # [4]10·î9Æü 10»þ # [5]Ťá¤Ç¤¹¤¬¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Ä¡£ # # /* # 6. ¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ôn ¤ò°ì¤ÄÆþÎϤ·¡¢0 °Ê¾ån °Ê²¼¤Î2 ¤Î¤Ù¤­¾è(2i ¤Î·Á¤ò¤·¤¿À°¿ô) ¤ò¤¹ # ¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£ # # 7.ÌäÂê6¤òwhile¤«do while¤ÇºîÀ®¤»¤è # # 11. ¶ä¹Ô¤Î°ìǯ´Ö¤ÎÄê´üͶâ¤ÎÇ¯Íø¤Ï1.25%¤Ç¤¢¤ë¡£¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ # ¶â(±ß) ¤ÈͶâ´ü´Ö(ǯ) ¤òÆþÎϤ·¡¢1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤ò¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ° # ¿ô¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍøÍѤ·¤ÆºîÀ®¤»¤è¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î # ·Á¼°¤Çɽ¼¨¤¹¤ë¤³¤È¡£ # # 16. Á²²½¼°an+1 = an +3, a1 = -5 ¤Çɽ¤ï¤µ¤ì¤ë¿ôÎ󤬤¢¤ë¡£½é¹à(n = 1) ¤«¤éÂè10 ¹à(n = 10) # ¤Þ¤Ç¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # 17. 1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿ # ¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£ # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # */ '¶ä¹Ô¤Î°ìǯ´Ö¤ÎÄê´üͶâ¤ÎÇ¯Íø¤Ï1.25%¤Ç¤¢¤ë¡£¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ¶â(±ß) ¤ÈͶâ´ü´Ö(ǯ) ¤òÆþÎϤ·¡¢1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤ò¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ°¿ô¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍøÍѤ·¤ÆºîÀ®¤»¤è¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î·Á¼°¤Çɽ¼¨¤¹¤ë¤³¤È¡£' :- '¶ä¹Ô¤Î°ìǯ´Ö¤ÎÄê´üͶâ¤ÎÇ¯Íø¤Ï1.25%¤Ç¤¢¤ë'(_Ç¯Íø), '¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ¶â(±ß) ¤ÈͶâ´ü´Ö(ǯ) ¤òÆþÎϤ·'(_¸µ¶â,_Ͷâ´ü´Ö), '1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤ò¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ°¿ô¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍøÍѤ·¤ÆºîÀ®¤»¤è¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î·Á¼°¤Çɽ¼¨¤¹¤ë¤³¤È¡£'(_¸µ¶â,_Ç¯Íø,_Ͷâ´ü´Ö). '¶ä¹Ô¤Î°ìǯ´Ö¤ÎÄê´üͶâ¤ÎÇ¯Íø¤Ï1.25%¤Ç¤¢¤ë'(_Ç¯Íø) :- _Ç¯Íø = 1.0125. '¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ¶â(±ß) ¤ÈͶâ´ü´Ö(ǯ) ¤òÆþÎϤ·'(_¸µ¶â,_Ͷâ´ü´Ö) :- '¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ¶â(±ß)¤òÆþÎÏ'(_¸µ¶â), '¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ëͶâ´ü´Ö(ǯ) ¤òÆþÎÏ'(_Ͷâ´ü´Ö). '¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ¶â(±ß)¤òÆþÎÏ'(_¸µ¶â,_Ͷâ´ü´Ö) :- À°¿ô¤òÆÀ¤ë('¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ¶â(±ß)',_¸µ¶â > 0,_¸µ¶â). '¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ëͶâ´ü´Ö(ǯ) ¤òÆþÎÏ'(_Ͷâ´ü´Ö) :- À°¿ô¤òÆÀ¤ë('¤³¤ÎÄê´üͶâ¤Ëͤ±¤ëͶâ´ü´Ö(ǯ)',_Ͷâ´ü´Ö > 0,_Ͷâ´ü´Ö). '1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤ò¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ°¿ô¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍøÍѤ·¤ÆºîÀ®¤»¤è¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î·Á¼°¤Çɽ¼¨¤¹¤ë¤³¤È¡£'(_¸µ¶â,_Ç¯Íø,_Ͷâ´ü´Ö) :- '1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤òfor ʸ¤òÍøÍѤ·¤Æ'(_¸µ¶â,_Ͷâ´ü´Ö,_ǯ¸å,_¸µÍø¹ç·×), '¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ°¿ô¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î·Á¼°¤Çɽ¼¨¤¹¤ë'(_¸µÍø¹ç·×¤Ê¤é¤Ó). '1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤òfor ʸ¤òÍøÍѤ·¤Æ'(_¸µ¶â,_Ç¯Íø,_Ͷâ´ü´Ö,_ǯ¸å,_¸µÍø¹ç·×) :- for(1,_ǯ¸å,_Ͷâ´ü´Ö), _¸µÍø¹ç·× is _¸µ¶â * (_Ç¯Íø ^ _ǯ¸å). '¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ°¿ô¤Ç½ÐÎϤ¹¤ë¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î·Á¼°¤Çɽ¼¨¤¹¤ë'(_ǯ¸å,_¸µÍø¹ç·×) :- writef('%tǯ¸å\t',[_ǯ¸å]), format('~0f\n',[_¸µÍø¹ç·×]), _ǯ¸å = _Ͷâ´ü´Ö,!. % for/3 % À°¿ô¤òÆÀ¤ë/3 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/53 # # [1]C¸À¸ì¡¡forʸ whileʸ do whileʸ # [2]ÌäÂê¡¡http://ime.nu/codepad.org/oxqRFj3G # [3]Linux gcc # [4]10·î9Æü 10»þ # [5]Ťá¤Ç¤¹¤¬¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Ä¡£ # # /* # 6. ¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ôn ¤ò°ì¤ÄÆþÎϤ·¡¢0 °Ê¾ån °Ê²¼¤Î2 ¤Î¤Ù¤­¾è(2i ¤Î·Á¤ò¤·¤¿À°¿ô) ¤ò¤¹ # ¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£ # # 7.ÌäÂê6¤òwhile¤«do while¤ÇºîÀ®¤»¤è # # 11. ¶ä¹Ô¤Î°ìǯ´Ö¤ÎÄê´üͶâ¤ÎÇ¯Íø¤Ï1.25%¤Ç¤¢¤ë¡£¥­¡¼¥Ü¡¼¥É¤«¤é¤³¤ÎÄê´üͶâ¤Ëͤ±¤ë¸µ # ¶â(±ß) ¤ÈͶâ´ü´Ö(ǯ) ¤òÆþÎϤ·¡¢1 ǯËè¤Î¸µÍø¹ç·×(¸µËÜ¡ÜÍøÂ©) ¤ò¾®¿ôÅÀ°Ê²¼¤òÀÚ¤êÍî¤È¤·¤ÆÀ° # ¿ô¤Ç½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍøÍѤ·¤ÆºîÀ®¤»¤è¡£¤Ê¤ª¡¢³Æ¹Ô¤ò¡Ö¡¦¡¦Ç¯¸å(¥¿¥Ö)¡¦¡¦¡¦±ß¡×¤Î # ·Á¼°¤Çɽ¼¨¤¹¤ë¤³¤È¡£ # # 16. Á²²½¼°an+1 = an +3, a1 = -5 ¤Çɽ¤ï¤µ¤ì¤ë¿ôÎ󤬤¢¤ë¡£½é¹à(n = 1) ¤«¤éÂè10 ¹à(n = 10) # ¤Þ¤Ç¤òɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # 17. 1 ¤«¤é10 ¤Þ¤Ç¤ÎÀ°¿ô¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤µ¤é¤Ë¤³¤ì¤ò5 ²ó·«¤êÊÖ¤¹¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤¿ # ¤À¤·¡¢for ¤ò2 ¤ÄÍѤ¤¤ë¤³¤È¡£ # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # 1 2 3 4 5 6 7 8 9 10 # */ '¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ôn ¤ò°ì¤ÄÆþÎϤ·¡¢0 °Ê¾ån °Ê²¼¤Î2 ¤Î¤Ù¤­¾è(2i ¤Î·Á¤ò¤·¤¿À°¿ô) ¤ò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£' :- '¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ôn ¤ò°ì¤ÄÆþÎϤ·'(_n), '0 °Ê¾ån °Ê²¼¤Î2 ¤Î¤Ù¤­¾è(2i ¤Î·Á¤ò¤·¤¿À°¿ô) ¤ò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£'(_n). '¥­¡¼¥Ü¡¼¥É¤«¤éÀµ¤ÎÀ°¿ôn ¤ò°ì¤ÄÆþÎϤ·'(_n) :- À°¿ô¤òÆÀ¤ë(Àµ¤ÎÀ°¿ô,_n > 0,_n). '0 °Ê¾ån °Ê²¼¤Î2 ¤Î¤Ù¤­¾è(2i ¤Î·Á¤ò¤·¤¿À°¿ô) ¤ò¤¹¤Ù¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òfor ʸ¤òÍѤ¤¤ÆºîÀ®¤»¤è¡£'(_n) :- findall(_2¤Îi¾è,( for(0,_i,_n), '2¤Îi¾è'(_i,_2¤Îi¾è)), _2¤Î¤Ù¤­¾è), writef('%t\n',[_2¤Î¤Ù¤­¾è]). '2¤Îi¾è'(0,1). '2¤Îi¾è'(_i,X) :- _i_1 is _i - 1, '2¤Îi¾è'(_i_1,Y), X is 2 * Y. % for/3 % À°¿ô¤òÆÀ¤ë/3 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1349527750/27 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§http://ime.nu/codepad.org/xFhlH4zn # # /* # 1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎϤ·¡¢¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò°Ê²¼¤Î¤è¤¦¤Ëɽ¤»¡£ # ¤¿¤À¤·¡¢ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»¤··ë²Ì¤òɽ¼¨¤¹¤ë¡£ # # # [¼Â¹ÔÎã] # ÃÍ:3 # ÃÍ:4 # ÃÍ:3 # ÃÍ:3 # ÃÍ:2 # ÃÍ:2 # ÃÍ:3 # ÃÍ:0 # # //ÉÑÅÙ¤ò*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë¡£// # 1=0: # 2=2:** # 3=4:**x* # 4=1:* # 5=0: # # */ '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·¡¢¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë' :- '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·'(L), '¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(L). '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·'(L) :- À°¿ô¤òÆÀ¤ë('1¤«¤é5¤Þ¤Ç¤Î¿ôÃÍ',_À°¿ô), '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·'(_À°¿ô,L). '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·'(N,L) :- \+(between(1,5,N)),!. '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·'(_À°¿ô_1,[_À°¿ô_1|R]) :- À°¿ô¤òÆÀ¤ë('1¤«¤é5¤Þ¤Ç¤Î¿ôÃÍ',_À°¿ô_2), '1¤«¤é5¤Þ¤Ç¤Î¿ôÃͤò·«¤êÊÖ¤·ÆþÎÏ(ÆþÎÏÈϰϳ°¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤éÆþÎϤò½ªÎ»)¤·'(_À°¿ô_2,R). '¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(L) :- between(1,5,N), '¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò'(N,L,_ÉÑÅÙ), '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,_ÉÑÅÙ), N = 5. '¤½¤ì¤¾¤ì¤Î¿ôÃͤÎÉÑÅÙ¤ò'(N,L,_ÉÑÅÙ) :- count(member(N,L),_ÉÑÅÙ). '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,_ÉÑÅÙ) :- writef('%t=%t:',[N,_ÉÑÅÙ]), '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,0,_ÉÑÅÙ), write('\n'). '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,_ÉÑÅÙ,_ÉÑÅÙ) :- !. '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,M,_ÉÑÅÙ) :- '*¤Î¥°¥é¥Õ¤Çɽ¤·'(N,M_1,M_2), '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,M_2,_ÉÑÅÙ). '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,M_1_ÉÑÅÙ) :- '3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,M_1,M_2) '*¤Î¥°¥é¥Õ¤Çɽ¤·¡¢3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,M_2,_ÉÑÅÙ). '*¤Î¥°¥é¥Õ¤Çɽ¤·'(N,M_1,M_2) :- M_2 is M_1 + 1, \+(0 is M_2 mod 3), writef(*). '3¤ÎÇÜ¿ô¤Ïx¤Çɽ¼¨¤¹¤ë'(N,M_1,M_2) :- M_2 is M_1 + 1, 0 is M_2 mod 3, writef(x). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/937 # # [1] ¼ø¶Èñ¸µ¡§¥Þ¥ë¥Á¥á¥Ç¥£¥¢¼Â½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # # 1. # 0x01, 0x02, 0x03, ¡¦¡¦¡¦, 0x09, 0x0a, 0x0b, 0x0c ¤Î12¥Ð¥¤¥È¤ÎÆâÍÆ¤ò»ý¤Ä¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò¡Éex1.bin¡É¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇºîÀ®¤¹¤ëC¥×¥í¥°¥é¥à¤ò½ñ¤±¡¥ # 2.ex1.bin ¤ÎÆâÍÆ¤ò£±¥Ð¥¤¥È¤º¤ÄÆÉ¤ß½Ð¤·¤Æ¡¤²èÌ̤Ëprintf¤¹¤ëC¥×¥í¥°¥é¥à¤ò½ñ¤± # 3.ex1.bin ¤ò¥Õ¥¡¥¤¥ëÀèÆ¬¤«¤é int ¤¬£³¤Ä½ç¤Ëµ­Ï¿¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤È¸«¤Ê¤·¤ÆÆÉ¤ß½Ð¤·¡¤¤½¤Î£³¤Ä¤Îint¤ÎÃͤò²èÌ̤Ëprintf¤¹¤ëC¥×¥í¥°¥é¥à¤ò½ñ¤±¡¥¤Ê¤¼¤½¤Î¤è¤¦¤ÊÀ°¿ôÃͤˤʤ俤«ÀâÌÀ¤»¤è¡¥ # '0x01, 0x02, 0x03, ¡¦¡¦¡¦, 0x09, 0x0a, 0x0b, 0x0c ¤Î12¥Ð¥¤¥È¤ÎÆâÍÆ¤ò»ý¤Ä¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò¡Éex1.bin¡É¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇºîÀ®¤¹¤ë' :- open('ex1.bin',write,Outstream,[type(binary)]), between(1,12,N), put_byte(Outstream,N), N = 12, close(Outstream). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/844 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # http://ime.nu/codepad.org/DXRUGC3J # http://ime.nu/codepad.org/e9CIf3Iy # # /* # # 4. # 2¼¡¸µÊ¿Ì̾å¤Î3¤Ä¤ÎºÂɸ p1¡¢p2¡¢ p3 ¤òĺÅÀ¤È¤¹¤ë # £³³Ñ·Á¤ò¹Í¤¨¡¢¹½Â¤ÂÎ triangle ¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¡£ # struct triangle { # double p1[2]; double p2[2]; double p3[2]; # }; # # ¹½Â¤ÂÎ triangle ¤ËÂФ·¤Æ¡¢°Ê²¼¤Î´Ø¿ô¤òºîÀ®¤»¤è¡£ ŬÅö¤Ê¹½Â¤ÂÎ triangle ¤ÎÊÑ¿ô¤ò # ¤¤¤¯¤Ä¤«ºîÀ®¤·¤Æ¡¢¤³¤Î´Ø¿ô¤¬Àµ¤·¤¯Æ°ºî¤¹¤ë¤³¤È¤ò³Îǧ¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # int congruence (structure triangle *a, structure triangle *b¡Ë # # »°³Ñ·Á a ¤È»°³Ñ·Á b ¤¬¹çƱ¤«¤É¤¦¤«¤òȽÄꤹ¤ë¡¢ # ¹çƱ¤Ê¤é 1 ¤ò¹çƱ¤Ç¤Ê¤¤¤Ê¤é 0 ¤òÊÖ¤¹ # # */ # # /* # # 5.¹½Â¤ÂÎTri ¤Ï»°³Ñ·Á¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢3 ¤Ä¤ÎÊÕ¤ÎŤµ(a,b,c) ¤È¤½¤Î»°³Ñ·Á¤ÎÌÌÀÑ(area) ¤ò # ¥á¥ó¥Ð¡¼¤È¤·¤Æ¤·¤Æ»ý¤Ä¡£ # struct Tri { # int a; # int b; # int c; # double area # }; # # ¹½Â¤ÂÎTri ¤ÎÊÑ¿ô¤ò¥é¥ó¥À¥à¤Ën ¸ÄºîÀ®¤·¤Æ¡¢»°³Ñ·Á¤ÎÌÌÀѤ¬Â礭¤¤½ç¤Ëɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ® # ¤¹¤ë¡£¤¿¤À¤·n ¤Ï¥×¥í¥°¥é¥à¤Î°ú¿ô¤È¤·¤ÆÍ¿¤¨¤ë¡£¤Þ¤¿¹½Â¤ÂÎTri ¤ÎÊÑ¿ô¤ò¥é¥ó¥À¥à¤ËºîÀ®¤¹¤ëºÝ # ¤Ë¡¢a ¤Èb ¤Ë¤Ï3 °Ê¾å30 °Ê²¼¤ÎÀ°¿ô¤ò¥é¥ó¥À¥à¤ËÆþ¤ì¡¢c ¤Ë¤Ïa ¤Èb ¤ÎÃͤ«¤é¡¢3 ÊÕa, b, c ¤«¤é»° # ³Ñ·Á¤¬¤Ç¤­¤ë¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÀµ¤ÎÀ°¿ô¤òÆþ¤ì¤ë¡£ # # [¼Â¹Ô·ë²Ì] # > ./a.out 1000 # 1 ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( 30, 29, 41 ) ¤ÇÌÌÀѤÏ434.741302 # 2 ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( 29, 29, 43 ) ¤ÇÌÌÀѤÏ418.422260 # 3 ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( 30, 27, 37 ) ¤ÇÌÌÀѤÏ399.749922 # ... # 998 ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( 4, 3, 3 ) ¤ÇÌÌÀѤÏ4.472136 # 999 ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( 3, 3, 3 ) ¤ÇÌÌÀѤÏ3.897114 # 1000 ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( 3, 3, 1 ) ¤ÇÌÌÀѤÏ1.479020 # # */ '»°³Ñ·Á¤ÎÌÌÀѤ¬Â礭¤¤½ç¤Ëɽ¼¨¤¹¤ë'(_n) :- »°³Ñ·Á¤òn¸ÄÀ¸À®¤¹¤ë(_n,_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó), Â礭¤¤½ç¤Ëɽ¼¨¤¹¤ë(_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó). »°³Ñ·Á¤òn¸ÄÀ¸À®¤¹¤ë(_n,_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó) :- findall([_a,_b,_c],( between(1,_n,_), »°ÊÕ¤ÎŤµ¤òÀ¸À®¤¹¤ë(_a,_b,_c)), _n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó). »°ÊÕ¤ÎŤµ¤òÀ¸À®¤¹¤ë(_a,_b,_c) :- _a is random(100) + 1, _b is random(100) + 1, _c is random(100) + 1. Â礭¤¤½ç¤Ëɽ¼¨¤¹¤ë(_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó) :- »°³Ñ·Á¤ÎÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó¤òºî¤ë(0,_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó,_ÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó), Â礭¤¤½ç¤Ë(_ÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó,_Â礭¤¤½ç¤ËÀ°Îó¤·¤¿ÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó), ɽ¼¨¤¹¤ë(0,_Â礭¤¤½ç¤ËÀ°Îó¤·¤¿ÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó,_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó). »°³Ñ·Á¤ÎÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó¤òºî¤ë(_,[],[]). »°³Ñ·Á¤ÎÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó¤òºî¤ë(N_1,[[_a,_b,_c]|R1],[[_»°³Ñ·Á¤ÎÌÌÀÑ,N_2]|R2]) :- N_2 is N + 1, ¥Ø¥í¥ó¤Î¸ø¼°(_a,_b,_c,_»°³Ñ·Á¤ÎÌÌÀÑ), »°³Ñ·Á¤ÎÌÌÀѤÈÁêÂаÌÃ֤Τʤé¤Ó¤òºî¤ë(0,R1,R2). ¥Ø¥í¥ó¤Î¸ø¼°(_a,_b,_c,_»°³Ñ·Á¤ÎÌÌÀÑ) :- _¼þ°Ï¤ÎȾʬ is (_a + _b + _c) / 2, _»°³Ñ·Á¤ÎÌÌÀÑ is sqrt(_¼þ°Ï¤ÎȾʬ * (_¼þ°Ï¤ÎȾʬ - _a) * (_¼þ°Ï¤ÎȾʬ - _b) * (_¼þ°Ï¤ÎȾʬ - _c)). Â礭¤¤½ç¤Ë([],[]). Â礭¤¤½ç¤Ë([_¼´Í×ÁÇ|L1],L2) :- Â礭¤¤½ç¤Ëʬ³ä¤¹¤ë(_¼´Í×ÁÇ,L1,_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó,_¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó), Â礭¤¤½ç¤Ë(_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó,_Â礭¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó), Â礭¤¤½ç¤Ë(_¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó,_Â礭¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó), append(_Â礭¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó,[_¼´Í×ÁÇ|_Â礭¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤ê¾®¤µ¤¤],L2). Â礭¤¤½ç¤Ëʬ³ä¤¹¤ë(_,[],[],[])). Â礭¤¤½ç¤Ëʬ³ä¤¹¤ë(_¼´Í×ÁÇ,[_Í×ÁÇ|R1],[_Í×ÁÇ|_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó],_¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó) :- _Í×ÁÇ @>= _¼´Í×ÁÇ, Â礭¤¤½ç¤Ëʬ³ä¤¹¤ë(_¼´Í×ÁÇ,R1,_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó,_¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó). Â礭¤¤½ç¤Ëʬ³ä¤¹¤ë(_¼´Í×ÁÇ,[_Í×ÁÇ|R1],_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó,[_Í×ÁÇ|_¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó]) :- _Í×ÁÇ @< _¼´Í×ÁÇ, Â礭¤¤½ç¤Ëʬ³ä¤¹¤ë(_¼´Í×ÁÇ,R1,_¼´Í×ÁǤËÅù¤·¤¤¤«Â礭¤¤Í×ÁǤʤé¤Ó,_¼´Í×ÁǤè¤ê¾®¤µ¤¤Í×ÁǤʤé¤Ó). ɽ¼¨¤¹¤ë(_,[],_). ɽ¼¨¤¹¤ë(_½ç°Ì_0,[[_ÌÌÀÑ,_ÁêÂÐÈÖ¹æ]|R1],_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó) :- _½ç°Ì is _½ç°Ì_0 + 1, nth1(_ÁêÂÐÈÖ¹æ,_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó,[_a,_b,_c]), writef('%t ÈÖÌܤËÂ礭¤¤»°³Ñ·Á¤Ï3 ÊÕ¤¬( %t, %t, %t ) ¤ÇÌÌÀѤÏ%t\n',[_½ç°Ì,_a,_b,_c,_ÌÌÀÑ]), ɽ¼¨¤¹¤ë(_½ç°Ì,R1,_n¸Ä¤Î»°³Ñ·Á¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/667 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ¡§ http://ime.nu/ideone.com/tRkzM # # 1. 10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤¿¤À¤·¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¿ôÃͤ«¤âɽ¼¨¤¹¤ë¡£ # # ¡¡¡¡Îã)1ÈÖÌܤ˾®¤µ¤¤¿ô¤Ï475ÈÖÌܤοô10049¤Ç¤¹¡£ # # 2. 10000¤«¤é999999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á¡¢¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë¤½¤Î¿ôÃͤò¡¡ ɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Þ¤¿¡¢³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë¡£ # # ¡¡¡¡Îã)1ÈÖÌܤËÊ¿¶Ñ¤È¤Îº¹¤¬¾®¤µ¤¤¿ô¤Ï680ÈÖÌܤοô69383¤Ç¤¹¡£ Ê¿¶ÑÃͤȤκ¹¤Ï10.505¤Ç¤¹¡£ # # 3. n¼ïÎà¤Îʸ»ú{a1,a2,¡¦¡¦¡¦,an}¤ò¹Í¤¨¤ë¡£¤³¤În¼ïÎà¤Îʸ»ú¤ò»È¤Ã¤Æ¹½À®¤Ç¤­¤ënʸ»úÎó¤ò¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # ¡¡ ¤¿¤À¤·Ê¸»ú¤Î½ÅÊ£¤Ï¤Ê¤·¡£n¤Ï¥×¥í¥°¥é¥à¤Î°ú¿ô¤È¤·¤Æ¤¢¤¿¤¨¡¢1 < n < 15¤Ï²¾Äꤹ¤ë¡£ # # ¡¡¡¡Îã)program 5 # a,b,c,d,e # a,b,c,e,d # a,b,d,c,e # ¡¦ # ¡¡¡¡¡¡¡¡¡¡¡¡¡¦ # ¡¡¡¡¡¡ e,d,c,b,a '10000¤«¤é999999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á¡¢¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë¡£³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë' :- '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·'(_¼«Á³¿ô¤Ê¤é¤Ó), '³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á¡¢¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë¡£³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó). '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·'(_¼«Á³¿ô¤Ê¤é¤Ó) :- findall(N,( between(1,10000,_), N is random(10000) + 10000), _¼«Á³¿ô¤Ê¤é¤Ó). '³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á¡¢¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó) :- ³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á(_¼«Á³¿ô¤Ê¤é¤Ó,_²¿ÈÖÌܤ«¤Î¾ðÊó¤òÉÕ¤±¤¿Ê¿¶Ñ¤È¤Îº¹¤Ê¤é¤Ó), ¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë(_²¿ÈÖÌܤ«¤Î¾ðÊó¤òÉղä·¤¿Ê¿¶Ñ¤È¤Îº¹¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿²¿ÈÖÌܤ«¤Î¾ðÊó¤òÉղä·¤¿Ê¿¶Ñ¤È¤Îº¹¤Ê¤é¤Ó), ¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿²¿ÈÖÌܤ«¤Î¾ðÊó¤òÉղä·¤¿Ê¿¶Ñ¤È¤Îº¹¤Ê¤é¤Ó). ³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á(_¼«Á³¿ô¤Ê¤é¤Ó,_²¿ÈÖÌܤ«¤Î¾ðÊó¤òÉղä·¤¿Ê¿¶Ñ¤È¤Îº¹¤Ê¤é¤Ó) :- Ê¿¶ÑÃÍ(_¼«Á³¿ô¤Ê¤é¤Ó,_Ê¿¶ÑÃÍ), findall([_º¹,_²¿ÈÖÌÜ],( append(L0,[_¿ôÃÍ|_],_¼«Á³¿ô¤Ê¤é¤Ó), length([_|L0],_²¿ÈÖÌÜ), _º¹ is abs(_¿ôÃÍ - _Ê¿¶ÑÃÍ)), _²¿ÈÖÌܤ«¤Î¾ðÊó¤òÉղä·¤¿Ê¿¶Ñ¤È¤Îº¹¤Ê¤é¤Ó). Ê¿¶ÑÃÍ(_¼«Á³¿ô¤Ê¤é¤Ó,_Ê¿¶ÑÃÍ) :- Áê²ÃÊ¿¶Ñ(_¼«Á³¿ô¤Ê¤é¤Ó,_Ê¿¶ÑÃÍ). ¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë(_¼«Á³¿ô¤Ê¤é¤Ó) :- ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó) ¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë([],[]). ¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë([_¼´Í×ÁÇ|_»Ä¤ê¤Ê¤é¤Ó],_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó) :- ʬ³ä(_¼´Í×ÁÇ,_»Ä¤ê¤Ê¤é¤Ó,_¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó), ¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë(_¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó), ¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë(_¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó), append(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,[_¼´Í×ÁÇ|_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó],_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó). ʬ³ä(_,[],[]). ʬ³ä(_¼´Í×ÁÇ,[A|R],[A|R1],R2) :- A @=< _¼´Í×ÁÇ, ʬ³ä(_¼´Í×ÁÇ,R,R1,R2). ʬ³ä(_¼´Í×ÁÇ,[A|R],R1,[A|R2]) :- A @> _¼´Í×ÁÇ, ʬ³ä(_¼´Í×ÁÇ,R,R1,R2). '¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë¡£³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë'(_,[]). '¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë¡£³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10|R]) :- '¿ôÃͤȲ¿ÈÖÌܤ«¤òɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10]), '¤½¤Î¿ôÃͤòɽ¼¨¤¹¤ë¡£³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó,R). '¿ôÃͤȲ¿ÈÖÌܤ«¤òɽ¼¨¤¹¤ë'(_,[]) :- write('\n'). '¿ôÃͤȲ¿ÈÖÌܤ«¤òɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó,[[_,_°ÌÃÖ]|R]) :- nth1(_°ÌÃÖ,_¼«Á³¿ô¤Ê¤é¤Ó,_¿ôÃÍ), writef('%t(%t) ',[_°ÌÃÖ,_¿ôÃÍ]), '¿ôÃͤȲ¿ÈÖÌܤ«¤òɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó,R). Áê²ÃÊ¿¶Ñ(_Ãͤʤé¤Ó,_Áê²ÃÊ¿¶Ñ) :- length(_Ãͤʤé¤Ó,_ɸËÜ¿ô), Áê²ÃÊ¿¶Ñ(_Ãͤʤé¤Ó,_ɸËÜ¿ô,0,_Áê²ÃÊ¿¶Ñ). Áê²ÃÊ¿¶Ñ([],_ɸËÜ¿ô,_¹ç·×,_Áê²ÃÊ¿¶Ñ) :- _Áê²ÃÊ¿¶Ñ is _¹ç·× / _ɸËÜ¿ô,!. Áê²ÃÊ¿¶Ñ([V|R],_ɸËÜ¿ô,_¹ç·×_1,_Áê²ÃÊ¿¶Ñ) :- _¹ç·×_2 is _¹ç·×_1 + V, Áê²ÃÊ¿¶Ñ(R,_ɸËÜ¿ô,_¹ç·×_2,_Áê²ÃÊ¿¶Ñ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/667 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ¡§ http://ime.nu/ideone.com/tRkzM # # 1. 10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤¿¤À¤·¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¿ôÃͤ«¤âɽ¼¨¤¹¤ë¡£ # # ¡¡¡¡Îã)1ÈÖÌܤ˾®¤µ¤¤¿ô¤Ï475ÈÖÌܤοô10049¤Ç¤¹¡£ # # 2. 10000¤«¤é999999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á¡¢¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë¤½¤Î¿ôÃͤò¡¡ ɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Þ¤¿¡¢³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë¡£ # # ¡¡¡¡Îã)1ÈÖÌܤËÊ¿¶Ñ¤È¤Îº¹¤¬¾®¤µ¤¤¿ô¤Ï680ÈÖÌܤοô69383¤Ç¤¹¡£ Ê¿¶ÑÃͤȤκ¹¤Ï10.505¤Ç¤¹¡£ # # 3. n¼ïÎà¤Îʸ»ú{a1,a2,¡¦¡¦¡¦,an}¤ò¹Í¤¨¤ë¡£¤³¤În¼ïÎà¤Îʸ»ú¤ò»È¤Ã¤Æ¹½À®¤Ç¤­¤ënʸ»úÎó¤ò¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # ¡¡ ¤¿¤À¤·Ê¸»ú¤Î½ÅÊ£¤Ï¤Ê¤·¡£n¤Ï¥×¥í¥°¥é¥à¤Î°ú¿ô¤È¤·¤Æ¤¢¤¿¤¨¡¢1 < n < 15¤Ï²¾Äꤹ¤ë¡£ # # ¡¡¡¡Îã)program 5 # a,b,c,d,e # a,b,c,e,d # a,b,d,c,e # ¡¦ # ¡¡¡¡¡¡¡¡¡¡¡¡¡¦ # ¡¡¡¡¡¡ e,d,c,b,a '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë' :- '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·'(_¼«Á³¿ô¤Ê¤é¤Ó), '¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó). '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·'(_¼«Á³¿ô¤Ê¤é¤Ó) :- findall(N,( between(1,10000,_), N is random(10000) + 10000), _¼«Á³¿ô¤Ê¤é¤Ó). ¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë(_¼«Á³¿ô¤Ê¤é¤Ó) :- ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó) ¾®¤µ¤¤½ç¤Ë¿ôÃͤò([],[]). ¾®¤µ¤¤½ç¤Ë¿ôÃͤò([_¼´Í×ÁÇ|_»Ä¤ê¤Ê¤é¤Ó],_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó) :- ʬ³ä(_¼´Í×ÁÇ,_»Ä¤ê¤Ê¤é¤Ó,_¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó), ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó), ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó), append(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,[_¼´Í×ÁÇ|_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó],_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó). ʬ³ä(_,[],[]). ʬ³ä(_¼´Í×ÁÇ,[A|R],[A|R1],R2) :- A =< _¼´Í×ÁÇ, ʬ³ä(_¼´Í×ÁÇ,R,R1,R2). ʬ³ä(_¼´Í×ÁÇ,[A|R],R1,[A|R2]) :- A > _¼´Í×ÁÇ, ʬ³ä(_¼´Í×ÁÇ,R,R1,R2). ɽ¼¨¤¹¤ë([]). ɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8,_9,_10|R]) :- writef('%t %t %t %t %t %t %t %t %t %t\n',[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10]), ɽ¼¨¤¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/667 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ¡§ http://ime.nu/ideone.com/tRkzM # # 1. 10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤¿¤À¤·¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¿ôÃͤ«¤âɽ¼¨¤¹¤ë¡£ # # ¡¡¡¡Îã)1ÈÖÌܤ˾®¤µ¤¤¿ô¤Ï475ÈÖÌܤοô10049¤Ç¤¹¡£ # # 2. 10000¤«¤é999999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢³Æ¿ôÃͤÈÊ¿¶ÑÃͤȤκ¹¤ò¤â¤È¤á¡¢¤½¤Îº¹¤¬¾®¤µ¤¤½ç¤Ë¤½¤Î¿ôÃͤò¡¡ ɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤Þ¤¿¡¢³Æ¿ôÃͤϲ¿ÈÖÌܤËÀ¸À®¤·¤¿¤«¤âɽ¼¨¤¹¤ë¡£ # # ¡¡¡¡Îã)1ÈÖÌܤËÊ¿¶Ñ¤È¤Îº¹¤¬¾®¤µ¤¤¿ô¤Ï680ÈÖÌܤοô69383¤Ç¤¹¡£ Ê¿¶ÑÃͤȤκ¹¤Ï10.505¤Ç¤¹¡£ # # 3. n¼ïÎà¤Îʸ»ú{a1,a2,¡¦¡¦¡¦,an}¤ò¹Í¤¨¤ë¡£¤³¤În¼ïÎà¤Îʸ»ú¤ò»È¤Ã¤Æ¹½À®¤Ç¤­¤ënʸ»úÎó¤ò¤¹¤Ù¤ÆÉ½¼¨¤»¤è¡£ # ¡¡ ¤¿¤À¤·Ê¸»ú¤Î½ÅÊ£¤Ï¤Ê¤·¡£n¤Ï¥×¥í¥°¥é¥à¤Î°ú¿ô¤È¤·¤Æ¤¢¤¿¤¨¡¢1 < n < 15¤Ï²¾Äꤹ¤ë¡£ # # ¡¡¡¡Îã)program 5 # a,b,c,d,e # a,b,c,e,d # a,b,d,c,e # ¡¦ # ¡¡¡¡¡¡¡¡¡¡¡¡¡¦ # ¡¡¡¡¡¡ e,d,c,b,a '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·¡¢¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë' :- '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·'(_¼«Á³¿ô¤Ê¤é¤Ó), '¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë'(_¼«Á³¿ô¤Ê¤é¤Ó). '10000¤«¤é99999¤Î¥é¥ó¥À¥à¤Ê¼«Á³¿ô¤ò1000¥³À¸À®¤·'(_¼«Á³¿ô¤Ê¤é¤Ó) :- findall(N,( between(1,10000,_), N is random(10000) + 10000), _¼«Á³¿ô¤Ê¤é¤Ó). ¾®¤µ¤¤½ç¤Ë¤³¤ì¤é¿ôÃͤòɽ¼¨¤¹¤ë(_¼«Á³¿ô¤Ê¤é¤Ó) :- ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó) ¾®¤µ¤¤½ç¤Ë¿ôÃͤò([],[]). ¾®¤µ¤¤½ç¤Ë¿ôÃͤò([_¼´Í×ÁÇ|_»Ä¤ê¤Ê¤é¤Ó],_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó) :- ʬ³ä(_¼´Í×ÁÇ,_»Ä¤ê¤Ê¤é¤Ó,_¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó), ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó), ¾®¤µ¤¤½ç¤Ë¿ôÃͤò(_¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó,_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó), append(_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤÈÅù¤·¤¤¤«¾®¤µ¤¤¼«Á³¿ô¤Ê¤é¤Ó,[_¼´Í×ÁÇ|_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼´Í×ÁǤè¤êÂ礭¤¤¼«Á³¿ô¤Ê¤é¤Ó],_¾®¤µ¤¤½ç¤ËÀ°Îó¤·¤¿¼«Á³¿ô¤Ê¤é¤Ó). ʬ³ä(_,[],[]). ʬ³ä(_¼´Í×ÁÇ,[A|R],[A|R1],R2) :- A =< _¼´Í×ÁÇ, ʬ³ä(_¼´Í×ÁÇ,R,R1,R2). ʬ³ä(_¼´Í×ÁÇ,[A|R],R1,[A|R2]) :- A > _¼´Í×ÁÇ, ʬ³ä(_¼´Í×ÁÇ,R,R1,R2). ɽ¼¨¤¹¤ë([]). ɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8,_9,_10|R]) :- writef('%t %t %t %t %t %t %t %t %t %t\n',[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10]), ɽ¼¨¤¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/649 # # # [4] ´ü¸Â¡§ 2012ǯ9·î19Æü3»þ00ʬ¤Þ¤Ç # [5] ɸ½àÂνŤò·×»»¤·¤ÆÂбþɽ¤òɽ¼¨¤¹¤ë¤À¤±¤Îñ½ã¤Ê¤â¤Î # ¡¡¡¡·×»»¼°¤Ïɸ½àÂνÅ(kg) = ¿ÈĹ(cm)¡ß¿ÈĹ(cm)¡ß22/10000¤Ç¤ª´ê¤¤¤·¤Þ¤¹ # # ¼Â¹ÔÎã # # Âбþɽ # --------------- # 150.0 cm : 49.5 kg # 155.0 cm : 52.9 kg # 160.0 cm : 56.3 kg # 165.0 cm : 59.9 kg # 170.0 cm : 63.6 kg # --------------- 'ɸ½àÂνŤò·×»»¤·¤ÆÂбþɽ¤òɽ¼¨¤¹¤ë¤À¤±¤Îñ½ã¤Ê¤â¤Î¡£·×»»¼°¤Ïɸ½àÂνÅ(kg) = ¿ÈĹ(cm)¡ß¿ÈĹ(cm)¡ß22/10000¤Ç¤ª´ê¤¤¤·¤Þ¤¹ ' :- write('Âбþɽ\n---------------\n'), ¿ÈŤòÆÀ¤ë(_¿ÈĹ), '·×»»¼°¤Ïɸ½àÂνÅ(kg) = ¿ÈĹ(cm)¡ß¿ÈĹ(cm)¡ß22/10000¤Ç¤ª´ê¤¤¤·¤Þ¤¹'(_¿ÈĹ,_ɸ½àÂνÅ), Âбþɽ¤Î°ì¹Ô¤òɽ¼¨¤¹¤ë(_¿ÈĹ,_ɸ½àÂνÅ), _¿ÈĹ = 200, write('---------------\n'). ¿ÈŤòÆÀ¤ë(_¿ÈĹ) :- between(140,200,_¿ÈĹÀ°¿ô), 0 is _¿ÈĹÀ°¿ô mod 5, _¿ÈĹ is _¿ÈĹÀ°¿ô * 1.0. '·×»»¼°¤Ïɸ½àÂνÅ(kg) = ¿ÈĹ(cm)¡ß¿ÈĹ(cm)¡ß22/10000¤Ç¤ª´ê¤¤¤·¤Þ¤¹'(_¿ÈĹ,_ɸ½àÂνÅ) :- _ɸ½àÂνŠis _¿ÈĹ * ¿ÈĹ * 22 / 10000. Âбþɽ¤Î°ì¹Ô¤òɽ¼¨¤¹¤ë(_¿ÈĹ,_ɸ½àÂνÅ) :- format('~1f cm : ~1f kg\n',[_¿ÈĹ,_ɸ½àÂνÅ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/592 # # [1] ¼ø¶Èñ¸µ¡§¥Ç¡¼¥¿¹½Â¤ÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ÌäÂêʸ¤¬Ä¹¤¤¤¿¤á¤³¤Á¤é¤Ëµ­ºÜ¤·¤Þ¤·¤¿ http://ime.nu/ideone.com/R8gaZ # # ¡ÚÌäÂ꣱¡Û # ¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤µ¤»¤ë´Ø¿ô¤ò¡¢rand()´Ø¿ô¤òÍѤ¤¤Æ¼¡¤ÎÊýË¡¤ÇºîÀ®¤»¤è¡£ # 1+(int)(6.0*rand()/(1.0+RAND_MAX));¡¡¤Î±é»»¤Ç¡¢£±¤«¤é£¶¤Þ¤ÇȯÀ¸¤µ¤»¤ë¡£ # '¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô'(_¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ë¿ô) :- _¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ë¿ô is ceiling(6.0 * random(2147483647) / (1.0+2147483647)). ¥µ¥¤¥³¥íÍð¿ôȯÀ¸¥Æ¥¹¥È(_·«¤êÊÖ¤·²ó¿ô,_1,_2,_3,_4,_5,_6) :- findall(N,( between(1,_·«¤êÊÖ¤·²ó¿ô,_), '¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô'(N)), L), findall(Count,( between(1,6,M), count(member(M,L),Count)), [_1,_2,_3,_4,_5,_6]). count(P,Count) :- findall(1,P,L), length(L,Count). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/592 # # [1] ¼ø¶Èñ¸µ¡§¥Ç¡¼¥¿¹½Â¤ÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ÌäÂêʸ¤¬Ä¹¤¤¤¿¤á¤³¤Á¤é¤Ëµ­ºÜ¤·¤Þ¤·¤¿ http://ime.nu/ideone.com/R8gaZ # # ¡ÚÌäÂꣳ¡Û # ¥Ð¥Ö¥ë¥½¡¼¥È¤òÍѤ¤¤Æ¡¢À°¿ô¤Î¥Ç¡¼¥¿Îó¤ò¾º½ç¤ËÀ°Î󤹤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¥Ç¡¼¥¿¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Â³¤¤¤Æ¤½¤Î¸Ä¿ô¤ÎÀ°Î󤷤Ƥ¤¤Ê¤¤¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¡¢ # ¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£ # ¼¡¤Ë¥Ç¡¼¥¿Îó¤Î¥½¡¼¥È¤ò¹Ô¤¤¡¢·ë²Ì¤ÎÀ°Îó¤·¤¿¥Ç¡¼¥¿Îó¤ò¥Ç¥£¥¹¥×¥ì¥¤É½¼¨¤¹¤ë¤È¤È¤â¤Ë¡¢ # Ê̤Υե¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¡£¤Ê¤ª¡¢¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ£µ£°¤ò¥Þ¥¯¥íÄêµÁ¤»¤è¡£µ¿»÷Íð¿ô¤Ç # ¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢¡ÚÌäÂꣲ¡Û¤ÇºîÀ®¤·¤¿´Ø¿ôrandom_data¤ò»ÈÍѤ¹¤ë¤³¤È¡£¤Þ¤¿¡¢¥½¡¼¥È¤Ë¤Ï # ¼¡¤Î´Ø¿ô¤òºîÀ®¤·¤Æ»È¤¦¤³¤È¡£ # ¡¦void bubble(int data[],int num) # ¤³¤Î´Ø¿ô¤Ïnum¸Ä¤ÎÃͤ¬³ÊǼ¤µ¤ì¤¿ÇÛÎódata[]¤ò¡¢ŽÊŽÞŽÌŽÞŽÙŽ¿Ž°ŽÄޱŽÙŽºŽÞި޽ŽÞŽÑ¤Ç¾º½ç¤ËʤÙÂØ¤¨¤ë´Ø¿ô¤Ç¤¢¤ë¡£ '¥Ð¥Ö¥ë¥½¡¼¥È¤òÍѤ¤¤Æ¡¢À°¿ô¤Î¥Ç¡¼¥¿Îó¤ò¾º½ç¤ËÀ°Î󤹤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¥Ç¡¼¥¿¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Â³¤¤¤Æ¤½¤Î¸Ä¿ô¤ÎÀ°Î󤷤Ƥ¤¤Ê¤¤¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£ ¼¡¤Ë¥Ç¡¼¥¿Îó¤Î¥½¡¼¥È¤ò¹Ô¤¤¡¢·ë²Ì¤ÎÀ°Îó¤·¤¿¥Ç¡¼¥¿Îó¤ò¥Ç¥£¥¹¥×¥ì¥¤É½¼¨¤¹¤ë¤È¤È¤â¤Ë¡¢Ê̤Υե¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¡£ ¤Ê¤ª¡¢¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ£µ£°¤ò¥Þ¥¯¥íÄêµÁ¤»¤è¡£'(_½ÐÎÏ¥Õ¥¡¥¤¥ë̾,_Ê̤νÐÎÏ¥Õ¥¡¥¤¥ë̾) :- '¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¥Ç¡¼¥¿¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Â³¤¤¤Æ¤½¤Î¸Ä¿ô¤ÎÀ°Î󤷤Ƥ¤¤Ê¤¤¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£ '(_½ÐÎÏ¥Õ¥¡¥¤¥ë̾,_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó), '¥Ç¡¼¥¿Îó¤ò¥Ð¥Ö¥ë¥½¡¼¥È¤òÍѤ¤¤Æ¾º½ç¤ËÀ°Îó¤·¡¢·ë²Ì¤ÎÀ°Îó¤·¤¿¥Ç¡¼¥¿Îó¤ò¥Ç¥£¥¹¥×¥ì¥¤É½¼¨¤¹¤ë¤È¤È¤â¤Ë¡¢Ê̤Υե¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¡£'(_Ê̤νÐÎÏ¥Õ¥¡¥¤¥ë̾,_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó,_À°Îó¤·¤¿¥Ç¡¼¥¿Îó). '¥Ç¡¼¥¿¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Â³¤¤¤Æ¤½¤Î¸Ä¿ô¤ÎÀ°Î󤷤Ƥ¤¤Ê¤¤¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£'(_½ÐÎÏ¥Õ¥¡¥¤¥ë̾,_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- '¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¥Ç¡¼¥¿¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·'(_¥Ç¡¼¥¿¿ô), '¤½¤Î¸Ä¿ô¤ÎÀ°Î󤷤Ƥ¤¤Ê¤¤¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·'(_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó), '¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£'(_½ÐÎÏ¥Õ¥¡¥¤¥ë̾,_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó). '¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¥Ç¡¼¥¿¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·'(_¥Ç¡¼¥¿¿ô) :- À°¿ô¤òÆÀ¤ë(ºÇÂ磵£°¤Î¥Ç¡¼¥¿¿ô,between(1,50,_¥Ç¡¼¥¿¿ô),_¥Ç¡¼¥¿¿ô). '¤½¤Î¸Ä¿ô¤ÎÀ°Î󤷤Ƥ¤¤Ê¤¤¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·'(_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- length(_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¥Ç¡¼¥¿¿ô), findall(N,( member(N,_¥Ç¡¼¥¿¤Ê¤é¤Ó), N is random(_¥Ç¡¼¥¿¿ô) + 1), _¥Ç¡¼¥¿¤Ê¤é¤Ó). '¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£'(_½ÐÎÏ¥Õ¥¡¥¤¥ë̾,_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- open(_½ÒÎÏ¥Õ¥¡¥¤¥ë̾,write,Oustream), '¥Ç¡¼¥¿¤Èꤍ»úÈÖ¹æ¤ò'(_¥Ç¡¼¥¿¤Ê¤é¤Ó,_ꤍ»úÈÖ¹æ,_¥Ç¡¼¥¿), '¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£'(Outstream,_ꤍ»úÈÖ¹æ,_¥Ç¡¼¥¿), close(Outstream). '¥Ç¥£¥¹¥×¥ì¥¤¤Ë°ìÍ÷ɽ¼¨¤¹¤ë¤È¤È¤â¤Ë¥Õ¥¡¥¤¥ë¤Ø¤â½ÐÎϤ¹¤ë¡£'(Outstream,_ꤍ»úÈÖ¹æ,_¥Ç¡¼¥¿) :- writef('%t: %t\n',[_ꤍ»úÈÖ¹æ,_ÃÍ]), writef(Outstream,'%t: %t\n',[_ꤍ»úÈÖ¹æ,_¥Ç¡¼¥¿]), _ꤍ»úÈÖ¹æ = _¥Ç¡¼¥¿¿ô. '¥Ç¡¼¥¿Îó¤ò¥Ð¥Ö¥ë¥½¡¼¥È¤òÍѤ¤¤Æ¾º½ç¤ËÀ°Îó¤·¡¢·ë²Ì¤ÎÀ°Îó¤·¤¿¥Ç¡¼¥¿Îó¤ò¥Ç¥£¥¹¥×¥ì¥¤É½¼¨¤¹¤ë¤È¤È¤â¤Ë¡¢Ê̤Υե¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¡£'(_Ê̤νÐÎÏ¥Õ¥¡¥¤¥ë̾,_¥Ç¡¼¥¿¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¾º½ç¤ËÀ°Îó¤·¤¿¤Ê¤é¤Ó) :- '¥Ç¡¼¥¿Îó¤ò¥Ð¥Ö¥ë¥½¡¼¥È¤òÍѤ¤¤Æ¾º½ç¤ËÀ°Îó¤·'(_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¾º½ç¤ËÀ°Îó¤·¤¿¥Ç¡¼¥¿¤Ê¤é¤Ó), '·ë²Ì¤ÎÀ°Îó¤·¤¿¥Ç¡¼¥¿Îó¤ò¥Ç¥£¥¹¥×¥ì¥¤É½¼¨¤¹¤ë¤È¤È¤â¤Ë¡¢Ê̤Υե¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¡£'(_Ê̤νÐÎÏ¥Õ¥¡¥¤¥ë̾,_¾º½ç¤ËÀ°Îó¤·¤¿¥Ç¡¼¥¿¤Ê¤é¤Ó). '¥Ç¡¼¥¿Îó¤ò¥Ð¥Ö¥ë¥½¡¼¥È¤òÍѤ¤¤Æ¾º½ç¤ËÀ°Îó¤·'(_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¾º½ç¤ËÀ°Îó¤·¤¿¥Ç¡¼¥¿¤Ê¤é¤Ó) :- ¥Ð¥Ö¥ë¥½¡¼¥È(_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¾º½ç¤ËÀ°Îó¤·¤¿¥Ç¡¼¥¿¤Ê¤é¤Ó). '·ë²Ì¤ÎÀ°Îó¤·¤¿¥Ç¡¼¥¿Îó¤ò¥Ç¥£¥¹¥×¥ì¥¤É½¼¨¤¹¤ë¤È¤È¤â¤Ë¡¢Ê̤Υե¡¥¤¥ë¤Ø½ÐÎϤ¹¤ë¡£'(_Ê̤νÐÎÏ¥Õ¥¡¥¤¥ë̾,_¾º½ç¤ËÀ°Îó¤·¤¿¥Ç¡¼¥¿¤Ê¤é¤Ó) :- open(_Ê̤Υե¡¥¤¥ë̾,write,Outstream), append(L0,[_¥Ç¡¼¥¿|R],_¾º½ç¤ËÀ°Îó¤·¤¿¥Ç¡¼¥¿¤Ê¤é¤Ó), writef('%t\n',[_¥Ç¡¼¥¿]), writef(Outstream,'%t\n',[_¥Ç¡¼¥¿]), R = [], close(Outstream). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/592 # # [1] ¼ø¶Èñ¸µ¡§¥Ç¡¼¥¿¹½Â¤ÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ÌäÂêʸ¤¬Ä¹¤¤¤¿¤á¤³¤Á¤é¤Ëµ­ºÜ¤·¤Þ¤·¤¿ http://ime.nu/ideone.com/R8gaZ # # ¡ÚÌäÂꣲ¡Û # Àþ·Áõº÷Ë¡¤ÇÌÜŪ¥Ç¡¼¥¿¤òõº÷¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¥Ç¡¼¥¿¤Î¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢¤½¤Î¸Ä¿ô¤À¤±¤Îµ¿»÷Íð¿ô¤òȯÀ¸¤µ¤»¤Æ¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¡¢ # ¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò°ìÍ÷ɽ¼¨¤¹¤ë¡£¼¡¤ËÌÜŪ¥Ç¡¼¥¿¡Êõº÷¥Ç¡¼¥¿¡Ë¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢ # Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï # ¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë¡£¤Ê¤ª¡¢¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¡¢£µ£°¤ò¥Þ¥¯¥íÄêµÁ # ¤»¤è¡£¤Þ¤¿¡¢¥Ç¡¼¥¿¤Îõº÷¤ÈºîÀ®¤Ë¤Ï¡¢¼¡¤Î´Ø¿ô¤òºîÀ®¤·¤Æ»È¤¦¤³¤È¡£ # # ¡¦int linear_search(int data[],int key,int num) # ¤³¤Î´Ø¿ô¤Ïnum¸Ä¤Î¥Ç¡¼¥¿¤¬³ÊǼ¤µ¤ì¤¿ÇÛÎódata¤ÎÃæ¤«¤é¡¢Àþ·Áõº÷¤òÍѤ¤¤ÆÌÜŪ¥Ç¡¼¥¿key¤ÈÅù¤·¤¤ # Ãͤòõ¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¤½¤ÎÇÛÎóÍ×ÁǤòÊֵѤ·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï-1¤òÊֵѤ¹¤ë¡£ # # ¡¦void random_data(int data[],int num) # ¤³¤Î´Ø¿ô¤ÏÀ°Î󤷤Ƥ¤¤Ê¤¤num¸Ä¤Î¥Ç¡¼¥¿¤òÇÛÎódata¤Ë³ÊǼ¤¹¤ë´Ø¿ô¡£µ¿»÷Íð¿ôrand()¤òÍѤ¤¤è¡£ # ¥Ç¡¼¥¿¤ÎÃͤϣ°¤«¤énum-1¤Þ¤Ç¤ÎÀ°¿ô¤ÇÁ´¤Æ°Û¤Ê¤ëÃͤȤ»¤è¡£ # ¢¨Íð¿ôÎó¤òÊѹ¹¤¹¤ë¤Ë¤Ïvoid srand(seed)¤ò¼Â¹Ô¤¹¤ë¡£seed¤ÎÃͤ¬°Û¤Ê¤ë¤È¡¢¤³¤È¤Ê¤ëÍð¿ôÎó¤¬ # ÆÀ¤é¤ì¤ë¤³¤È¤ò³Îǧ¤·¤è¤¦¡£ '¥Ç¡¼¥¿¤Î¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢¤½¤Î¸Ä¿ô¤À¤±¤Îµ¿»÷Íð¿ô¤òȯÀ¸¤µ¤»¤Æ¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¡¢¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò°ìÍ÷ɽ¼¨¤¹¤ë¡£ ¼¡¤ËÌÜŪ¥Ç¡¼¥¿¡Êõº÷¥Ç¡¼¥¿¡Ë¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë¡£ ¤Ê¤ª¡¢¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¡¢£µ£°¤ò¥Þ¥¯¥íÄêµÁ¤»¤è¡£' :- '¥Ç¡¼¥¿¤Î¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢¤½¤Î¸Ä¿ô¤À¤±¤Îµ¿»÷Íð¿ô¤òȯÀ¸¤µ¤»¤Æ¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¡¢¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò°ìÍ÷ɽ¼¨¤¹¤ë¡£¤Ê¤ª¡¢¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤¹¤ë'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó), '¼¡¤ËÌÜŪ¥Ç¡¼¥¿¡Êõº÷¥Ç¡¼¥¿¡Ë¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë¡£'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó). '¥Ç¡¼¥¿¤Î¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢¤½¤Î¸Ä¿ô¤À¤±¤Îµ¿»÷Íð¿ô¤òȯÀ¸¤µ¤»¤Æ¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·¡¢¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò°ìÍ÷ɽ¼¨¤¹¤ë¡£' :- '¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¥Ç¡¼¥¿¤Î¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·'(_¥Ç¡¼¥¿¤Î¿ô), '¤½¤Î¸Ä¿ô¤À¤±¤Îµ¿»÷Íð¿ô¤òȯÀ¸¤µ¤»¤Æ¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó), '¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò°ìÍ÷ɽ¼¨¤¹¤ë'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó). '¥Ç¡¼¥¿¿ô¤ÏºÇÂ磵£°¤È¤·¤Æ¥Ç¡¼¥¿¤Î¿ô¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢' :-'(_¥Ç¡¼¥¿¤Î¿ô) :- À°¿ô¤òÆÀ¤ë(¥Ç¡¼¥¿¤Î¿ô,between(1,50,_¥Ç¡¼¥¿¿ô),_¥Ç¡¼¥¿¤Î¿ô). '¤½¤Î¸Ä¿ô¤À¤±¤Îµ¿»÷Íð¿ô¤òȯÀ¸¤µ¤»¤Æ¥Ç¡¼¥¿¤òÇÛÎó¤Ë³ÊǼ¤·'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- length(_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¥Ç¡¼¥¿¤Î¿ô), findall(N,( member(N,_¥Ç¡¼¥¿¤Ê¤é¤Ó), N is random(_¥Ç¡¼¥¿¤Î¿ô) + 1), _¥Ç¡¼¥¿¤Ê¤é¤Ó). '¥Ç¡¼¥¿¤È¤½¤Îꤍ»úÈÖ¹æ¤ò°ìÍ÷ɽ¼¨¤¹¤ë'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- nth1(_ź»úÈÖ¹æ,_¥Ç¡¼¥¿¤Ê¤é¤Ó,_¥Ç¡¼¥¿), writef('%t: %t\n',[_ź»úÈÖ¹æ,_¥Ç¡¼¥¿]), _ź»úÈÖ¹æ = _¥Ç¡¼¥¿¤Î¿ô,!. '¼¡¤ËÌÜŪ¥Ç¡¼¥¿¡Êõº÷¥Ç¡¼¥¿¡Ë¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·¡¢Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë¡£'(_¥Ç¡¼¥¿¤Î¿ô,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- 'ÌÜŪ¥Ç¡¼¥¿¡Êõº÷¥Ç¡¼¥¿¡Ë¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·'(_¥Ç¡¼¥¿¤Î¿ô,_ÌÜŪ¥Ç¡¼¥¿), 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó). 'ÌÜŪ¥Ç¡¼¥¿¡Êõº÷¥Ç¡¼¥¿¡Ë¤ò¥­¡¼¥Ü¡¼¥ÉÆþÎϤ·'(_¥Ç¡¼¥¿¤Î¿ô,_ÌÜŪ¥Ç¡¼¥¿) :- swritef(_À©¸Âɽ¼¨,'1¤«¤é%t¤Þ¤Ç¤ÎÈϰϤÎǤ°Õ¤Î¿ô',[_¥Ç¡¼¥¿¿ô]), write('ÌÜŪ¥Ç¡¼¥¿(õº÷¥Ç¡¼¥¿)¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), À°¿ô¤òÆÀ¤ë(_À©¸Âɽ¼¨,_ÌÜŪ¥Ç¡¼¥¿). 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó),!. 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó). 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- '¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó),!. 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡Ö¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¡×¤òɽ¼¨¤¹¤ë'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- \+(nth1(_ź»úÈÖ¹æ,_¥Ç¡¼¥¿¤Ê¤é¤Ó,_ÌÜŪ¥Ç¡¼¥¿)), writef('ÌÜŪ¥Ç¡¼¥¿ %t ¤Ï¥Ç¡¼¥¿¤Ê¤é¤Ó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó\n',[_ÌÜŪ¥Ç¡¼¥¿]),!. 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó) :- nth1(_ź»úÈÖ¹æ,_¥Ç¡¼¥¿¤Ê¤é¤Ó,_ÌÜŪ¥Ç¡¼¥¿), writef('%t: %t\n',[_ź»úÈÖ¹æ,_ÌÜŪ¥Ç¡¼¥¿), fail. 'Àþ·Áõº÷Ë¡¤Çõº÷¤·¡¢¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤½¤ÎÇÛÎó¤Îꤍ»úÈÖ¹æ¤òɽ¼¨¤·'(_ÌÜŪ¥Ç¡¼¥¿,_¥Ç¡¼¥¿¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/592 # # [1] ¼ø¶Èñ¸µ¡§¥Ç¡¼¥¿¹½Â¤ÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ÌäÂêʸ¤¬Ä¹¤¤¤¿¤á¤³¤Á¤é¤Ëµ­ºÜ¤·¤Þ¤·¤¿ http://ime.nu/ideone.com/R8gaZ # # ¡ÚÌäÂ꣱¡Û # ¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤µ¤»¤ë´Ø¿ô¤ò¡¢rand()´Ø¿ô¤òÍѤ¤¤Æ¼¡¤ÎÊýË¡¤ÇºîÀ®¤»¤è¡£ # 1+(int)(6.0*rand()/(1.0+RAND_MAX));¡¡¤Î±é»»¤Ç¡¢£±¤«¤é£¶¤Þ¤ÇȯÀ¸¤µ¤»¤ë¡£ # '¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô'(_¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ë¿ô) :- _¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ë¿ô is ceiling(6.0 * random(2147483647) / (1.0+2147483647)). ¥µ¥¤¥³¥íÍð¿ôȯÀ¸¥Æ¥¹¥È(_·«¤êÊÖ¤·²ó¿ô,_1,_2,_3,_4,_5,_6) :- ¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô¤Ê¤é¤Ó(_·«ÊÖ¤·²ó¿ô,_Íð¿ô¤Ê¤é¤Ó), ¥µ¥¤¥³¥í¤ÎÌܤ´¤È¤ÎÅÙ¿ô(_Íð¿ô¤Ê¤é¤Ó,[_1,_2,_3,_4,_5,_6]). ¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô¤Ê¤é¤Ó(_·«ÊÖ¤·²ó¿ô,_Íð¿ô¤Ê¤é¤Ó) :- findall(N,( between(1,_·«¤êÊÖ¤·²ó¿ô,_), '¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô'(N)),_Íð¿ô¤Ê¤é¤Ó). ¥µ¥¤¥³¥í¤ÎÌܤ´¤È¤ÎÅÙ¿ô(_Íð¿ô¤Ê¤é¤Ó,[_1,_2,_3,_4,_5,_6]) :- findall(_ÅÙ¿ô,( between(1,6,M), ÅÙ¿ô(member(M,_Íð¿ô¤Ê¤é¤Ó),_ÅÙ¿ô)),[_1,_2,_3,_4,_5,_6]). ÅÙ¿ô(P,_ÅÙ¿ô) :- findall(1,P,L), length(L,_ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/592 # # [1] ¼ø¶Èñ¸µ¡§¥Ç¡¼¥¿¹½Â¤ÆþÌç # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ÌäÂêʸ¤¬Ä¹¤¤¤¿¤á¤³¤Á¤é¤Ëµ­ºÜ¤·¤Þ¤·¤¿ http://ime.nu/ideone.com/R8gaZ # # ¡ÚÌäÂ꣱¡Û # ¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤µ¤»¤ë´Ø¿ô¤ò¡¢rand()´Ø¿ô¤òÍѤ¤¤Æ¼¡¤ÎÊýË¡¤ÇºîÀ®¤»¤è¡£ # 1+(int)(6.0*rand()/(1.0+RAND_MAX));¡¡¤Î±é»»¤Ç¡¢£±¤«¤é£¶¤Þ¤ÇȯÀ¸¤µ¤»¤ë¡£ # '¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô'(_¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ë¿ô) :- _¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ë¿ô is ceiling(6.0 * random(2147483647) / (1.0+2147483647)). ¥µ¥¤¥³¥íÍð¿ôȯÀ¸¥Æ¥¹¥È(_·«¤êÊÖ¤·²ó¿ô,_1,_2,_3,_4,_5,_6) :- findall(N,( between(1,_·«¤êÊÖ¤·²ó¿ô,_), '¥µ¥¤¥³¥í¤Î¤è¤¦¤Ë£±¤«¤é£¶¤ÎÌܤòÅù³ÎΨ¤ÇȯÀ¸¤¹¤ëÍð¿ô'(N)), L), findall(Count,( between(1,6,M), count(member(M,L),Count)), [_1,_2,_3,_4,_5,_6]). count(P,Count) :- findall(1,P,L), length(L,Count). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1276873238/825 # # 狼¤³¤ì¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡Ä # # ÌäÂ꣱ # ºÇ½é¤Ë¡Öʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤ÆÊ¸»úÎó¤òÆÉ¤ß¤³¤ß¡¢ # ¼¡¤Ë¡Ö¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ¿ô»ú¤òÆÉ¤ß¹þ¤ß¡¢ # ÆþÎÏʸ»úÎó¤òÆþÎϤ·¤¿¿ô»ú¤Î²ó¿ôʬ¤À¤±°ì¹Ô¤º¤Äɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò # ex07-3-03.rb¤ÇÊݸ¤·¤Æ¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤. # # ÌäÂꣲ # ÌäÂ꣱¤ÇºîÀ®¤·¤¿¥×¥í¥°¥é¥à¤Ï¡¢¿ô»ú¤ÎÆÉ¤ß¹þ¤ß¤Ë¤Ä¤¤¤Æ¥Ð¥°¤¬¤¢¤ë # ²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡Ê¿ô»ú¤Ç¤Ê¤¤¤â¤Î¤¬ÆþÎϤµ¤ì¤¿¤È¤­¡¢ # ¤É¤¦¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡©¡Ë.¤â¤·¥Ð¥°¤¬¤¢¤ë¾ì¹ç¡¢ # ¤½¤ì¤ò½¤Àµ¤·¤¿¥×¥í¥°¥é¥à¤òex07-3-04.rb¤ÇÊݸ¤·¤Æ¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤. # 'ºÇ½é¤Ë¡Öʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤ÆÊ¸»úÎó¤òÆÉ¤ß¤³¤ß¡¢¼¡¤Ë¡Ö¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ¿ô»ú¤òÆÉ¤ß¹þ¤ß¡¢ÆþÎÏʸ»úÎó¤òÆþÎϤ·¤¿¿ô»ú¤Î²ó¿ôʬ¤À¤±°ì¹Ô¤º¤Äɽ¼¨¤¹¤ë' :- 'ºÇ½é¤Ë¡Öʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤ÆÊ¸»úÎó¤òÆÉ¤ß¤³¤ß'(_ʸ»úÎó), '¼¡¤Ë¡Ö¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ¿ô»ú¤òÆÉ¤ß¹þ¤ß'(_¿ô»ú), 'ÆþÎÏʸ»úÎó¤òÆþÎϤ·¤¿¿ô»ú¤Î²ó¿ôʬ¤À¤±°ì¹Ô¤º¤Äɽ¼¨¤¹¤ë'(_ʸ»úÎó,_¿ô»ú). 'ºÇ½é¤Ë¡Öʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤ÆÊ¸»úÎó¤òÆÉ¤ß¤³¤ß'(_ʸ»úÎó) :- 'ºÇ½é¤Ë¡Öʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ', ʸ»úÎó¤òÆÉ¤ß¹þ¤ß(_ʸ»úÎó). 'ºÇ½é¤Ë¡Öʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ' :- write('ʸ»úÎó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤. '). ʸ»úÎó¤òÆÉ¤ß¹þ¤ß(_ʸ»úÎó) :- get_line(_ʸ»úÎó). '¼¡¤Ë¡Ö¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ¿ô»ú¤òÆÉ¤ß¹þ¤ß'(_¿ô»ú) :- '¼¡¤Ë¡Ö¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ', ¿ô»ú¤òÆÉ¤ß¹þ¤ß(_¿ô»ú). '¼¡¤Ë¡Ö¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤.¡×¤Èɽ¼¨¤·¤Æ' :- write('¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤. '). ¿ô»ú¤òÆÉ¤ß¹þ¤ß(_¿ô»ú) :- ¿ô¤òÆÀ¤ë('',_¿ô»ú). 'ÆþÎÏʸ»úÎó¤òÆþÎϤ·¤¿¿ô»ú¤Î²ó¿ôʬ¤À¤±°ì¹Ô¤º¤Äɽ¼¨¤¹¤ë'(_ʸ»úÎó,_¿ô»ú) :- between(1,_¿ô»ú,N), writef('%t\n',[_ʸ»úÎó]), N = _¿ô»ú. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/309 # # [1] ¼ø¶Èñ¸µ¡§£Ã¸À¸ì¥×¥í¥°¥é¥à±é½¬­¶ # [2] ÌäÂêʸ¡§ # ../test/read.cgi/tech/1342966104/308¤Î´Ø¿ô¤òÍѤ¤¤Æ¡¢1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»¡¢1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤª¤è¤Ó*¤Î¿ô¤Çɽ¤·¡¢¤µ¤é¤ËÍð¿ô¤ÎÊ¿¶ÑÃͤâɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # <½ÐÎÏÎã> # 1¡¡:9²ó : ********* # 2¡¡:11²ó : *********** # 3¡¡:10²ó : ********** # # 10¡¡:5²ó : ***** # Ê¿¶Ñ:5.54 # '1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»¡¢1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤª¤è¤Ó*¤Î¿ô¤Çɽ¤·¡¢¤µ¤é¤ËÍð¿ô¤ÎÊ¿¶ÑÃͤâɽ¼¨¤¹¤ë'(_u,N) :- '1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»'(_u,N,L), '1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤª¤è¤Ó*¤Î¿ô¤Çɽ¤·'(L), '¤µ¤é¤ËÍð¿ô¤ÎÊ¿¶ÑÃͤâɽ¼¨¤¹¤ë'(L). '1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»'(_u,N,L) :- findall(_1¤«¤é_u¤Þ¤Ç¤ÎÍð¿ô,( between(1,N,_), _1¤«¤é_u¤Þ¤Ç¤ÎÍð¿ô is random(_u) + 1), L). '1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤª¤è¤Ó*¤Î¿ô¤Çɽ¤·'(L,_ÅÙ¿ô¤òɽ¤¹¿ôÃÍ,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ) :- '1¤«¤é10¤Þ¤Ç¤Î'(N), '¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò'(L,_ÅÙ¿ô), '¿ôÃͤª¤è¤Ó*¤Î¿ô¤Çɽ¤·'(_ÅÙ¿ô,_ÅÙ¿ô¤òɽ¤¹¿ôÃÍ,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ), writef('%t: %t²ó %t\n',[_ÅÙ¿ô¤òɽ¤¹¿ôÃÍ,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ]), N = 10. '1¤«¤é10¤Þ¤Ç¤Î'(N) :- between(1,10,N). '¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò'(L,_ÅÙ¿ô) :- count(member(N,L),_ÅÙ¿ô). '¿ôÃͤª¤è¤Ó*¤Î¿ô¤Çɽ¤·'(_ÅÙ¿ô,_ÅÙ¿ô¤òɽ¤¹¿ôÃÍ,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ) :- _ÅÙ¿ô = _ÅÙ¿ô¤òɽ¤¹¿ôÃÍ, 'ÅÙ¿ô¤ò*¤Çɽ¤¹'(_ÅÙ¿ô,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ). 'ÅÙ¿ô¤ò*¤Çɽ¤¹'(_ÅÙ¿ô,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ) :- length(L,_ÅÙ¿ô), all(L,'*'), atomic_list_concat(L,_ÅÙ¿ô¤òɽ¤¹¥°¥é¥Õ). '¤µ¤é¤ËÍð¿ô¤ÎÊ¿¶ÑÃͤâɽ¼¨¤¹¤ë'(L) :- Áê²ÃÊ¿¶Ñ(L,_Ê¿¶ÑÃÍ), writef('Íð¿ô¤ÎÊ¿¶ÑÃÍ: %t\n',[_Ê¿¶ÑÃÍ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/308 # # [1] ¼ø¶Èñ¸µ¡§£Ã¸À¸ì¥×¥í¥°¥é¥à±é½¬­¶ # [2] ÌäÂêʸ¡§ # http://ime.nu/codepad.org/gSiVgqsJ # ¾åµ­¤Î´Ø¿ôransuu¤Ï¡¢À°¿ô·¿¤Î°ú¿ôu¤ò¼õ¤±¼è¤ë¤È1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô(1¤«¤éu¤Þ¤Ç¤ÎÃæ¤«¤é¤Ç¤¿¤é¤á¤ËÁª¤ó¤À¿ô)¤òÊÖ¤¹¡£ # ¤³¤Î´Ø¿ô¤òÍѤ¤¤Æ¡¢1¤«¤é10¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»¡¢1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤÇɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ⤷¡¢#defineʸ¤ÇN¤ò100²ó¤ÈÀßÄꤻ¤è¡£ # <½ÐÎÏÎã> # 1¡¡:9²ó # 2¡¡:11²ó # 3¡¡:10²ó # # 10¡¡:5²ó # '1¤«¤é10¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»¡¢1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤÇɽ¼¨¤¹¤ë¡£Ã¢¤·¡¢#defineʸ¤ÇN¤ò100²ó¤ÈÀßÄꤻ¤è¡£ ' :- '⤷¡¢#defineʸ¤ÇN¤ò100²ó¤ÈÀßÄꤻ¤è¡£', '1¤«¤é10¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»'(L), '1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤÇɽ¼¨¤¹¤ë'(L). '⤷¡¢#defineʸ¤ÇN¤ò100²ó¤ÈÀßÄꤻ¤è¡£' :- abolish(ȯÀ¸²ó¿ô/1), asserta(ȯÀ¸²ó¿ô(100)). '1¤«¤é10¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»'(L) :- ȯÀ¸²ó¿ô(N), '1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»'(10,N,L). '1¤«¤éu¤Þ¤Ç¤ÎÍð¿ô¤òN²óȯÀ¸¤µ¤»'(_u,N,L) :- findall(_1¤«¤é_u¤Þ¤Ç¤ÎÍð¿ô,( between(1,N,_), _1¤«¤é_u¤Þ¤Ç¤ÎÍð¿ô is random(_u) + 1), L). '1¤«¤é10¤Þ¤Ç¤Î¤½¤ì¤¾¤ì¤Î¿ô¤¬È¯À¸¤·¤¿²ó¿ô¤ò¿ôÃͤÇɽ¼¨¤¹¤ë'(L) :- between(1,10,N), count(member(N,L),_ÅÙ¿ô), writef('%t: %t²ó\n',[N,_ÅÙ¿ô]), N = 10. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/243 # # [1] ¼ø¶Èñ¸µ¡§¥¢¥ë¥´¥ê¥º¥à¤È¥Ç¡¼¥¿¹½Â¤ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¡¦Ìä¡¡¥Þ¥ë¥Á¥­¡¼¥¯¥¤¥Ã¥¯¥½¡¼¥È¤òÈóºÆµ¢¤Ç¼ÂÁõ¤»¤è¡£ # ¥Þ¥ë¥Á¥­¡¼¥¯¥¤¥Ã¥¯¥½¡¼¥È¤Ïʸ»úÎó¤ò¼­½ñ½ç¤Ë¥½¡¼¥È¤¹¤ë¼êË¡¤Ç¤¢¤ë¡£ # Î㤨¤Ð¡¢Ê¸»úÎóapple¤ò5²ó½ä²ó¤·¡¢5¤Ä¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡£ # ¤³¤Î5¤Ä¤Îʸ»úÎó¤ò¼­½ñ½ç¤Ë¥½¡¼¥È¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ # # ½ä²ó¡¡¡¡¡¡¡¡¡¡¥½¡¼¥È¸å # apple apple # pplea¡¡ eappl # pleap ¡¡¢ª leapp # leapp pleap # eappl pplea # # ¼ÂºÝ¤Ë¤Ïʸ»úÎóapple¤ò2Çܤˤ·½ä²óʸ»úÎó¤òÆÀ¤ë¡£ # Îã : appleapple # ¤³¤Îʸ»úÎó¤ËÂФ·¤ÆÈóºÆµ¢¤Î¥Þ¥ë¥Á¥­¡¼¥¯¥¤¥Ã¥¯¥½¡¼¥È¤òŬÍѤ»¤è¡£ # ¥Þ¥ë¥Á¥­¡¼¥¯¥¤¥Ã¥¯¥½¡¼¥È¤Ïʸ»úÎó¤ò¼­½ñ½ç¤Ë¥½¡¼¥È¤¹¤ë(_ʸ»úÎó,_¼­½ñ½ç¤ËÀ°Îó¤·¤¿Ê¸»úÎó) :- ¥Þ¥ë¥Á¥­¡¼¥¯¥¤¥Ã¥¯¥½¡¼¥È¤ÎÀ°ÎóÂоÝʸ»úÎó¤ÎÀ¸À®(_ʸ»úÎó,_À°ÎóÂоÝʸ»úÎó¤Ê¤é¤Ó), ¼­½ñ½çÀ°Îó(_À°ÎóÂоÝʸ»úÎó¤Ê¤é¤Ó,_¼­½ñ½ç¤ËÀ°Îó¤·¤¿Ê¸»úÎó). ¥Þ¥ë¥Á¥­¡¼¥¯¥¤¥Ã¥¯¥½¡¼¥È¤ÎÀ°ÎóÂоÝʸ»úÎó¤ÎÀ¸À®(_ʸ»úÎó,_À°ÎóÂоÝʸ»úÎó¤Ê¤é¤Ó) :- atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), atom_length(_ʸ»úÎó,_n), findall(_²óž¤·¤¿Ê¸»úÎó,( between(1,_n,N), ¤Ê¤é¤Ó¤Î²óž(º¸Êý¸þ,N,L,_²óž¤·¤¿Ê¸»ú¤Ê¤é¤Ó), atom_chars(_²óž¤·¤¿Ê¸»úÎó,_²óž¤·¤¿Ê¸»ú¤Ê¤é¤Ó)), _À°ÎóÂоÝʸ»úÎó¤Ê¤é¤Ó). ¼­½ñ½çÀ°Îó([],[]). ¼­½ñ½çÀ°Îó([_¼´Í×ÁÇʸ»úÎó|_»Ä¤êʸ»úÎó],_¼­½ñ½ç¤ËÀ°Îó¤·¤¿Ê¸»úÎó) :- ¼­½ñ½çʬ³ä(_¼´Í×ÁÇʸ»úÎó,_»Ä¤êʸ»úÎó,_¤è¤ê¾®¤µ¤¤Ê¸»úÎó,_Åù¤·¤¤¤«¤è¤êÂ礭¤¤Ê¸»úÎó), ¼­½ñ½çÀ°Îó(_¤è¤ê¾®¤µ¤¤Ê¸»úÎó,_À°Îó¤·¤¿¤è¤ê¾®¤µ¤¤Ê¸»úÎó), ¼­½ñ½çÀ°Îó(_Åù¤·¤¤¤«¤è¤êÂ礭¤¤Ê¸»úÎó,_À°Îó¤·¤¿Åù¤·¤¤¤«¤è¤êÂ礭¤¤Ê¸»úÎó), append(_À°Îó¤·¤¿¤è¤ê¾®¤µ¤¤Ê¸»úÎó,[_¼´Í×ÁÇʸ»úÎó|_À°Îó¤·¤¿Åù¤·¤¤¤«¤è¤êÂ礭¤¤Ê¸»úÎó],_¼­½ñ½ç¤ËÀ°Îó¤·¤¿Ê¸»úÎó). ¼­½ñ½çʬ³ä(_¼´Í×ÁÇʸ»úÎó,[],[],[]). ¼­½ñ½çʬ³ä(_¼´Í×ÁÇʸ»úÎó,[_ʸ»úÎó|R1],L1,L2) :- atom_chars(_¼´Ê¸»úÎó,_ʸ»ú¤Ê¤é¤Ó_1), atom_chars(_ʸ»úÎó,_ʸ»úÎó¤Ê¤é¤Ó_2), ¼­½ñ½çʬ³ä(_ʸ»ú¤Ê¤é¤Ó_1,_ʸ»ú¤Ê¤é¤Ó_2,L1,L2,R1,R2), ¼­½ñ½çʬ³ä(_¼´Í×ÁÇʸ»úÎó,R1,R1,R2). ¼­½ñ½çʬ³ä(_ʸ»ú¤Ê¤é¤Ó_1,_ʸ»ú¤Ê¤é¤Ó_2,L1,R2,R1,R2) :- ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó(_¼´Í×ÁÇʸ»ú¤Ê¤é¤Ó_1,_ʸ»ú¤Ê¤é¤Ó,_ʸ»ú¤Ê¤é¤Ó,_), atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), L1 = [_ʸ»úÎó|R1],!. ¼­½ñ½çʬ³ä(_ʸ»ú¤Ê¤é¤Ó_1,_ʸ»ú¤Ê¤é¤Ó_2,R1,L2,R1,R2) :- ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó(_¼´Í×ÁÇʸ»ú¤Ê¤é¤Ó_1,_ʸ»ú¤Ê¤é¤Ó,_,_ʸ»ú¤Ê¤é¤Ó), atom_chars(_ʸ»úÎó,_ʸ»ú¤Ê¤é¤Ó), L2 = [_ʸ»úÎó|R2],!. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([],[],[],[]) :- !. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó(L,[],[],L) :- !. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([],L,[],L) :- !. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([_ʸ»ú|R1],[_ʸ»ú|R2],[_ʸ»ú|R3],[_ʸ»ú|R4]) :- ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó(R1,R2,R3,R4),!. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([_ʸ»ú_1|R1],[_ʸ»ú_2|R2],[_ʸ»ú_1|R1],[_ʸ»ú_2|R2]) :- ±ÑÂçʸ»ú(_ʸ»ú_1), ±Ñ¾®Ê¸»ú(_ʸ»ú_2), to_upper(_ʸ»ú_2,_ʸ»ú_1),!. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([_ʸ»ú_1|R1],[_ʸ»ú_2|R2],[_ʸ»ú_2|R2],[_ʸ»ú_1|R1]) :- ±Ñ¾®Ê¸»ú(_ʸ»ú_1), ±ÑÂçʸ»ú(_ʸ»ú_2), to_upper(_ʸ»ú_1,_ʸ»ú_2),!. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([_ʸ»ú_1|R1],[_ʸ»ú_2|R2],[_ʸ»ú_1|R1],[_ʸ»ú_2|R2]) :- _ʸ»ú_1 @< _ʸ»ú_2,!. ¼­½ñ½çʸ»úÎó¤ÎÈæ³Ó([_ʸ»ú_1|R1],[_ʸ»ú_2|R2],[_ʸ»ú_2|R2],[_ʸ»ú_1|R1]) :- _ʸ»ú_1 @>= _ʸ»ú_2,!. ±Ñ¾®Ê¸»ú(_±Ñ¾®Ê¸»ú) :- _±Ñ¾®Ê¸»ú @>= 'a', _±Ñ¾®Ê¸»ú @=< 'z'. ±ÑÂçʸ»ú(_±ÑÂçʸ»ú) :- _±ÑÂçʸ»ú @>= 'A', _±ÑÂçʸ»ú @=< 'Z'. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/136 # # [1] ¼ø¶Èñ¸µ¡§£Ã¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # cos(3t)¤ò·×»»¤·t¤Ècos(3t)¤òdata1.dat¤ËÊݸ¤·¡¡¥¨¥¯¥»¥ë¥°¥é¥Õ¤ò½ñ¤¯¤³¤È # ¤¿¤À¤·¡¡t=0.0 , 0.1, 0.2 , 0.3 ,,,,,,,, 360.0 ¤È¤¹¤ë¤³¤È # 'cos(3t)¤ò·×»»¤·t¤Ècos(3t)¤òdata1.dat¤ËÊݸ¤·¥¨¥¯¥»¥ë¥°¥é¥Õ¤ò½ñ¤¯¤³¤È¡£ ¤¿¤À¤·t=0.0 , 0.1, 0.2 , 0.3 ,,,,,,,, 360.0 ¤È¤¹¤ë¤³¤È' :- 'cos(3t)¤ò·×»»¤¹¤ë¡£¤¿¤À¤·t=0.0 , 0.1, 0.2 , 0.3 ,,,,,,,, 360.0 ¤È¤¹¤ë¤³¤È'(L), 'data1.dat¤ËÊݸ¤¹¤ë'(L). 'cos(3t)¤ò·×»»¤¹¤ë¡£¤¿¤À¤·t=0.0 , 0.1, 0.2 , 0.3 ,,,,,,,, 360.0 ¤È¤¹¤ë¤³¤È'(L) :- findall([_t,_cos_3t],( for(0,3600,N), _t is N / 10, _cos_3t is cos(3 * 2 * pi * _t / 360)), L). 'data1.dat¤ËÊݸ¤¹¤ë'(L) :- open('data1.dat',write,Outstream), append(_,[[_t,_cos_3t]|R],L), writef(Outstream,'%t %t\n',[_t,_cos_3t]), R = [], close(Outstream). % °Ê²¼¤Î¥µ¥¤¥È¤Ï ¥¬¥¦¥¹Ë¡¤Ë¤è¤ëLUʬ²ò(_n,LL,LU,L,U) :- ²ò¤¬À¸À®¤µ¤ì¤ëÊÑ¿ô¹ÔÎó¤È¤½¤ÎžÃÖ¹ÔÎó¤ÎÀ¸À®(_n,LU,LU2), žÃÖ(LL,LL2), ¥¬¥¦¥¹Ë¡¤Ë¤è¤ëLUʬ²ò(LL,LL2,LU,LU2), 'L¤ÈU¤Ëʬ²ò'(LU,L,U),!. ²ò¤¬À¸À®¤µ¤ì¤ëÊÑ¿ô¹ÔÎó¤È¤½¤ÎžÃÖ¹ÔÎó¤ÎÀ¸À®(_n,LU,LU2) :- length(LU,_n), findall(L,( between(1,_n,_), length(L,_n)), LU), žÃÖ(LU,LU2),!. ¥¬¥¦¥¹Ë¡¤Ë¤è¤ëLUʬ²ò([],[],[],[]) :- !. ¥¬¥¦¥¹Ë¡¤Ë¤è¤ëLUʬ²ò([[A|L1]|R1],[[A|L2]|R2],[[A|L3]|R3],[[A|L2]|R4]) :- 'Âè°ì¹Ô¤Ï³ÆÎó¤ò¶ùÍ×ÁÇ(A)¤Ç³ä¤Ã¤ÆÃÖ´¹¤¹¤ë'(A,L1,L3), ÂèÆó¹Ô°Ê²¼¤Ï¼¡¤ÎÂоݶë·Á¤òÀ¸À®¤¹¤ë(L2,L3,R1,_¼¡¤ÎÂоݶë·Á), '¼¡¤ÎÂоݶë·Á¤ÎÊÑ¿ô¹ÔÎó(Âè°ì¹Ô¤ÈÂè°ìÎó¤À¤±ÃÊ¡¹¤Ë³ÎÄꤷ¤Æ¤¤¤¯)'(R3,R4,R31,R41), žÃÖ(_¼¡¤ÎÂоݶë·Á,_žÃÖ¤µ¤ì¤¿¼¡¤ÎÂоݶë·Á), ¥¬¥¦¥¹Ë¡¤Ë¤è¤êLuʬ²ò(_¼¡¤ÎÂоݶë·Á,_žÃÖ¤µ¤ì¤¿¼¡¤ÎÂоݶë·Á,R31,R41), 'Âè°ì¹Ô¤Ï³ÆÎó¤ò¶ùÍ×ÁÇ(A)¤Ç³ä¤Ã¤ÆÃÖ´¹¤¹¤ë'(A,[],[]). 'Âè°ì¹Ô¤Ï³ÆÎó¤ò¶ùÍ×ÁÇ(A)¤Ç³ä¤Ã¤ÆÃÖ´¹¤¹¤ë'(A,[A1|R1],[B1|R2]) :- 'A1¤òA¤Ç³ä¤ë'(A,A1,B1), 'Âè°ì¹Ô¤Ï³ÆÎó¤ò¶ùÍ×ÁÇ(A)¤Ç³ä¤Ã¤ÆÃÖ´¹¤¹¤ë'(A,R1,R2). 'A1¤òA¤Ç³ä¤ë'(A,A1,B1) :- ¹Ô´ðËÜÊÑ·Á½ü»»(A,1,A1,B1). ÂèÆó¹Ô°Ê²¼¤Ï¼¡¤ÎÂоݶë·Á¤òÀ¸À®¤¹¤ë([],_,[],[]) :- !. ÂèÆó¹Ô°Ê²¼¤Ï¼¡¤ÎÂоݶë·Á¤òÀ¸À®¤¹¤ë([A|R1],L2,[[_|L3]|R3],[L|R]) :- '³Æ¹Ô¤ÎÎó¤ò¸½ºßÃÍ(C)¤ò´ðÁäËÂè°ìÎó¤ÎÃÍ(A)¤ÈÂè°ì¹Ô¤ÎÃÍ(B)¤«¤é½ñ¤­´¹¤¨¤ë'(A,L2,L3,L), ÂèÆó¹Ô°Ê²¼¤Ï¼¡¤ÎÂоݶë·Á¤òÀ¸À®¤¹¤ë(R1,L2,R3,R). '³Æ¹Ô¤ÎÎó¤ò¸½ºßÃÍ(C)¤ò´ðÁäËÂè°ìÎó¤ÎÃÍ(A)¤ÈÂè°ì¹Ô¤ÎÃÍ(B)¤«¤é½ñ¤­´¹¤¨¤ë'(_,[],[],[]) :- !. '³Æ¹Ô¤ÎÎó¤ò¸½ºßÃÍ(C)¤ò´ðÁäËÂè°ìÎó¤ÎÃÍ(A)¤ÈÂè°ì¹Ô¤ÎÃÍ(B)¤«¤é½ñ¤­´¹¤¨¤ë'(A,[B|R2],[C|R3],[D|R4]) :- 'D is C - A * B'(A,B,C,D), '³Æ¹Ô¤ÎÎó¤ò¸½ºßÃÍ(C)¤ò´ðÁäËÂè°ìÎó¤ÎÃÍ(A)¤ÈÂè°ì¹Ô¤ÎÃÍ(B)¤«¤é½ñ¤­´¹¤¨¤ë'(A,R2,R3,R4). 'D is C - A * B'(A,B,C,D) :- ¹Ô´ðËÜÊÑ·Á¾è»»(A,B,V), ¹Ô´ðËÜÊÑ·Á¸º»»(C,V,D),!. '¼¡¤ÎÂоݶë·Á¤ÎÊÑ¿ô¹ÔÎó(Âè°ì¹Ô¤ÈÂè°ìÎó¤À¤±ÃÊ¡¹¤Ë³ÎÄꤷ¤Æ¤¤¤¯)'([],[],[],[]). '¼¡¤ÎÂоݶë·Á¤ÎÊÑ¿ô¹ÔÎó(Âè°ì¹Ô¤ÈÂè°ìÎó¤À¤±ÃÊ¡¹¤Ë³ÎÄꤷ¤Æ¤¤¤¯)'([[_|L3]|R3],[[_|L4]|R4],[L3|R31],[L4|R41]) :- '¼¡¤ÎÂоݶë·Á¤ÎÊÑ¿ô¹ÔÎó(Âè°ì¹Ô¤ÈÂè°ìÎó¤À¤±ÃÊ¡¹¤Ë³ÎÄꤷ¤Æ¤¤¤¯)'(R3,R4,R31,R41). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 'L¤ÈU¤Ëʬ²ò'(LU,L,U) :- 'L¤Ëʬ²ò'(LU,L), 'U¤Ëʬ²ò'(LU,U). 'L¤Ëʬ²ò'(LU,LL) :- findall(L2,( member(L1,LU), append(L0,R,L1), \+(L0 = []), '»Ä¤êÍ×ÁÇR¤ò¤¹¤Ù¤Æ0¤ËÃÖ¤­´¹¤¨¤ë'(L0,R,L2)), LL). '»Ä¤êÍ×ÁÇR¤ò¤¹¤Ù¤Æ0¤ËÃÖ¤­´¹¤¨¤ë'(L0,R,L2) :- length(R,Len), length(R1,Len), all(R1,0), append(L0,R1,L2),!. 'U¤Ëʬ²ò'(LU,UU) :- findall(L2,( member(L,LU), append(L0,L1,L), 'L0¤ÎÁ´Í×ÁǤò0¤ËÃÖ¤­´¹¤¨¤ë'(L0,L1,L2)), UU). 'L0¤ÎÁ´Í×ÁǤò0¤ËÃÖ¤­´¹¤¨¤ë'(L,L0,[A|R1],L2) :- length(L0,Len), length(L0_2,Len), all(L0_2,0), 'L1¤òÀèÆ¬Í×ÁǤdzä¤ë'(L1,L1_2), append(L0_2,L1_2,L2),!. 'L1¤òÀèÆ¬Í×ÁǤdzä¤ë'([_ÀèÆ¬Í×ÁÇ|R1],[1|R2]) :- findall(M,( member(A,R1), ʬ¿ô¤ò´Þ¤à½ü»»(A,_ÀèÆ¬Í×ÁÇ,M)), R2). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ¹Ô´ðËÜÊÑ·Á¾è»»(_¾è¿ô_1,_¾è¿ô_2,X) :- integer(_¾è¿ô_1), integer(_¾è¿ô_2), X is _¾è¿ô_1 * _¾è¿ô_2,!. ¹Ô´ðËÜÊÑ·Á¾è»»(_ʬ»Ò_1/_ʬÊì_1,_ʬ»Ò_2/_ʬÊì_2,X) :- _ʬ»Ò is _ʬ»Ò_1 * _ʬ»Ò_2, _ʬÊì is _ʬÊì_1 * _ʬÊì_2, Ìóʬ(_ʬ»Ò / _ʬÊì,X),!. ¹Ô´ðËÜÊÑ·Á¾è»»(_ʬ»Ò/_ʬÊì,_¾è¿ô_2,X) :- A is _ʬ»Ò * _¾è¿ô_2, 0 is A mod _ʬÊì, X is A // _ʬÊì,!. ¹Ô´ðËÜÊÑ·Á¾è»»(_¾è¿ô_1,_ʬ»Ò/_ʬÊì,X) :- atomic(_¾è¿ô_1), ¹Ô´ðËÜÊÑ·Á¾è»»(_ʬ»Ò/_ʬÊì,_¾è¿ô_1,X),!. ¹Ô´ðËÜÊÑ·Á¾è»»(_¾è¿ô_1,_¾è¿ô_2,X) :- X is _¾è¿ô_1 * _¾è¿ô_2,!. ¹Ô´ðËÜÊÑ·Á½ü»»(A,_¾è¿ô,_½ü¿ô,X) :- integer(A), integer(_¾è¿ô), integer(_½ü¿ô), A2 is A * _¾è¿ô, 0 is A2 mod _½ü¿ô, X is A * _¾è¿ô // _½ü¿ô,!. ¹Ô´ðËÜÊÑ·Á½ü»»(A,_¾è¿ô,_½ü¿ô,X) :- integer(A), integer(_¾è¿ô), integer(_½ü¿ô), A2 is A * _¾è¿ô, \+(0 is A2 mod _½ü¿ô), Ìóʬ(A2 / _½ü¿ô,X),!. ¹Ô´ðËÜÊÑ·Á½ü»»(A,_¾è¿ô,_½ü¿ô,X) :- X is A * _¾è¿ô / _½ü¿ô. ¹Ô´ðËÜÊÑ·Á¸º»»(A,B,C) :- atomic(A), atomic(B), C is A - B,!. ¹Ô´ðËÜÊÑ·Á¸º»»(A1/A2,B1/B2,X) :- _ʬ»Ò is A1 * B1, _ʬÊì is A2 * B2, Ìóʬ(_ʬ»Ò / _ʬÊì,X),!. ¹Ô´ðËÜÊÑ·Á¸º»»(A1/A2,B1/B2,X) :- _ʬ»Ò is A1 * B2 - B1 * A2, _ʬÊì is A2 * B2, Ìóʬ(_ʬ»Ò / _ʬÊì,X),!. ¹Ô´ðËÜÊÑ·Á¸º»»(A1/A2,B,X) :- atomic(B), _ʬ»Ò is A1 - A2 * B, _ʬÊì is A2, Ìóʬ(_ʬ»Ò / _ʬÊì,X),!. ¹Ô´ðËÜÊÑ·Á¸º»»(B,A1/A2,X) :- ¹Ô´ðËÜÊÑ·Á¸º»»(A1/A2,B,X),!. ¹Ô´ðËÜÊÑ·Á¸º»»(A,B,X) :- X is A - B. Ìóʬ(B / A,X) :- ºÇÂç¸øÌó¿ô(B,A,C), _ʬ»Ò is B // C, _ʬÊì is A // C, Ìóʬ¤ÎÆó(_ʬ»Ò,_ʬÊì,X),!. Ìóʬ¤ÎÆó(_ʬ»Ò,1,_ʬ»Ò) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,1.0,_ʬ»Ò) :- !. Ìóʬ¤ÎÆó(_ʬ»Ò,_ʬÊì,_ʬ»Ò / _ʬÊì). ºÇÂç¸øÌó¿ô(M,N,X) :- ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X),!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,N) :- 0 is M mod N,!. ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(M,N,X) :- Mod is M mod N, ºÇÂç¸øÌó¿ô¤ò¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Çµá¤á¤ë(N,Mod,X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1342966104/63 # # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # http://ime.nu/s2.muryo-de.mydns.jp/~c_cpp_homework/cgi-bin/joyful/img/371.txt # #include # int main(){ # int a[4][3]={ # {3,5,3}, # {4,3,5}, # {2,2,3}, # {1,8,7} # }; # # int b[4],x,y; # # for(y=0;y<=3;y++){ # b[y]=0; # for(x=0;x<=2;x++){ # b[y] += a[y][x]; # } # } # # for(y=0;y<=3;y++){ # printf("%d\n",b[y]); # } # } # ¾å¤Î¥³¡¼¥É¤Ï¡¢ÇÛÎóa[4][3]¤Î³Æ¹Ô¤Î¹ç·×¤òµá¤á¡¢ÇÛÎób[4]¤ËÊݸ¤·¡¢µá¤á¤¿Ãͤò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ # ¤³¤ì¤ò²þ¤¤·¤Æ¼¡¤Î¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # ¡¦ÇÛÎóa[4][3]¤Î³Æ¹Ô¤Ë¤ª¤¤¤Æ¡¢¤½¤Î¹ç·×¤Î¾º½ç¤Ë¹Ô¤òʤÓÂØ¤¨¡¢ÇÛÎó c[4][3]¤ËÊݸ¤·¡¢½ÐÎϤ·¤Ê¤µ¤¤¡£ # ¤¿¤À¤·¡¢³Æ¹Ô¤Î¹ç·×¤ÎÃͤ¬Åù¤·¤¤¤â¤Î¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¹ÔÈֹ椬¾®¤µ¤¤¤â¤Î¤ò¾®¤µ¤¤½çÈ֤ˤ¹¤ë¡£ # # '¹ÔÎó¤Î³Æ¹Ô¤Ë¤ª¤¤¤Æ¡¢¤½¤Î¹ç·×¤Î¾º½ç¤Ë¹Ô¤òʤÓÂØ¤¨¡¢½ÐÎϤ·¤Ê¤µ¤¤¡£¤¿¤À¤·¡¢³Æ¹Ô¤Î¹ç·×¤ÎÃͤ¬Åù¤·¤¤¤â¤Î¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¹ÔÈֹ椬¾®¤µ¤¤¤â¤Î¤ò¾®¤µ¤¤½çÈ֤ˤ¹¤ë¡£'(_¹ÔÎó,_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó) :- '¤½¤Î¹ç·×¤Î¾º½ç¤Ë¹Ô¤òʤÓÂØ¤¨'(_¹ÔÎó,_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó), ½ÐÎϤ·¤Ê¤µ¤¤(_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó). '¤½¤Î¹ç·×¤Î¾º½ç¤Ë¹Ô¤òʤÓÂØ¤¨'(_¹ÔÎó,_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó) :- findsort([_¹Ô¹ç·×,_¹ÔÈÖ¹æ],( nth1(_¹ÔÈÖ¹æ,_¹ÔÎó,_¹Ô), sum(_¹Ô,_¹Ô¹ç·×)), _¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó). ½ÐÎϤ·¤Ê¤µ¤¤(_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó) :- ɽ¼¨·Á¼°Ê¸»úÎó¤ÎÀ¸À®(_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó,_ɽ¼¨·Á¼°Ê¸»úÎó), append(_,[[_¹Ô¹ç·×,_¹ÔÈÖ¹æ]|_»Ä¤ê¹Ô],_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó), nth1(_¹ÔÈÖ¹æ,_¹ÔÎó,_¹Ô), writef(_ɽ¼¨·Á¼°Ê¸»úÎó,_¹Ô), _»Ä¤ê¹Ô = []. ɽ¼¨·Á¼°Ê¸»úÎó¤ÎÀ¸À®(_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó,_ɽ¼¨·Á¼°Ê¸»úÎó) :- nth1(1,_¹Ô¹ç·×¤ÇÀ°Îó¤·¤¿¹ÔÎó,_¹Ô), length(_¹Ô,_Îó¿ô), findall('%t',between(1,_Îó¿ô,_),L), atomic_list_concat(L,',',S), atomic_list_concat(['| ',S,' |\n'],_ɽ¼¨·Á¼°Ê¸»úÎó). findsort(_¼Í±Æ¹à,_ÌÜɸ,_À°Îó¤·¤¿¼Í±Æ¹à¤Ê¤é¤Ó) :- findall(_¼Í±Æ¹à,_ÌÜɸ,_¼Í±Æ¹à¤Ê¤é¤Ó), sort(_¼Í±Æ¹à¤Ê¤é¤Ó,_À°Îó¤·¤¿¼Í±Æ¹à¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: # [1] ¼ø¶Èñ¸µ¡§ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # »î¹ç¤Ç¼«Ê¬¤Î¥Á¡¼¥à¤¬¾¡¤Ä¡¦É餱¤ë¡¦°ú¤­Ê¬¤±¤ë¤ÎͽÁÛ¤ò¡¢£±£°¿Í¤ËͽÁÛ¤·¤Æ¤â¤é¤Ã¤Æ¥×¥í¥°¥é¥à¤ËÆþÎϤ¹¤ë¡£ # ͽÁÛ¤·¤¿¿Í¤¬ÃËÀ­¤Î¾ì¹ç¤Ï M ¤òÆþÎϤ·¡¢½÷À­¤Î¾ì¹ç¤Ï W ¤òÆþÎϤ¹¤ë¡£ # ¾¡¤Á¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô1 ¤òÆþÎϤ·¡¢É餱¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 2 ¤òÆþÎϤ·¡¢°ú¤­Ê¬¤±¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 0 ¤òÆþÎϤ¹¤ë¡£ # ¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò¡¢ # # ¹½Â¤ÂÎ # struct datatype # { # char sex;// Ã˽÷¤ÎÀ­ÊÌ¡¢ÃËÀ­ M¡¢½÷À­ W # int expectation;// ¾¡¤Á 1¡¢É餱 2¡¢°ú¤­Ê¬¤± 0 # } # # ¤òÍøÍѤ·¤ÆºîÀ®¤»¤è # '»î¹ç¤Ç¼«Ê¬¤Î¥Á¡¼¥à¤¬¾¡¤Ä¡¦É餱¤ë¡¦°ú¤­Ê¬¤±¤ë¤ÎͽÁÛ¤ò¡¢£±£°¿Í¤ËͽÁÛ¤·¤Æ¤â¤é¤Ã¤Æ¥×¥í¥°¥é¥à¤ËÆþÎϤ¹¤ë¡£Í½ÁÛ¤·¤¿¿Í¤¬ÃËÀ­¤Î¾ì¹ç¤Ï M ¤òÆþÎϤ·¡¢½÷À­¤Î¾ì¹ç¤Ï W ¤òÆþÎϤ¹¤ë¡£¾¡¤Á¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô1 ¤òÆþÎϤ·¡¢É餱¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 2 ¤òÆþÎϤ·¡¢°ú¤­Ê¬¤±¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 0 ¤òÆþÎϤ¹¤ë¡£ ¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·É½¼¨¤¹¤ë' :- '»î¹ç¤Ç¼«Ê¬¤Î¥Á¡¼¥à¤¬¾¡¤Ä¡¦É餱¤ë¡¦°ú¤­Ê¬¤±¤ë¤ÎͽÁÛ¤ò¡¢£±£°¿Í¤ËͽÁÛ¤·¤Æ¤â¤é¤Ã¤Æ¥×¥í¥°¥é¥à¤ËÆþÎϤ¹¤ë¡£Í½ÁÛ¤·¤¿¿Í¤¬ÃËÀ­¤Î¾ì¹ç¤Ï M ¤òÆþÎϤ·¡¢½÷À­¤Î¾ì¹ç¤Ï W ¤òÆþÎϤ¹¤ë¡£¾¡¤Á¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô1 ¤òÆþÎϤ·¡¢É餱¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 2 ¤òÆþÎϤ·¡¢°ú¤­Ê¬¤±¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 0 ¤òÆþÎϤ¹¤ë¡£'(_10¿Í¤ÎͽÁۤʤé¤Ó), '¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·É½¼¨¤¹¤ë'(_10¿Í¤ÎͽÁۤʤé¤Ó). '»î¹ç¤Ç¼«Ê¬¤Î¥Á¡¼¥à¤¬¾¡¤Ä¡¦É餱¤ë¡¦°ú¤­Ê¬¤±¤ë¤ÎͽÁÛ¤ò¡¢£±£°¿Í¤ËͽÁÛ¤·¤Æ¤â¤é¤Ã¤Æ¥×¥í¥°¥é¥à¤ËÆþÎϤ¹¤ë¡£Í½ÁÛ¤·¤¿¿Í¤¬ÃËÀ­¤Î¾ì¹ç¤Ï M ¤òÆþÎϤ·¡¢½÷À­¤Î¾ì¹ç¤Ï W ¤òÆþÎϤ¹¤ë¡£¾¡¤Á¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô1 ¤òÆþÎϤ·¡¢É餱¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 2 ¤òÆþÎϤ·¡¢°ú¤­Ê¬¤±¤òͽÁÛ¤·¤¿¾ì¹ç¤Ï À°¿ô 0 ¤òÆþÎϤ¹¤ë¡£'(_10¿Í¤ÎͽÁۤʤé¤Ó) :- length(_10¿Í¤ÎͽÁۤʤé¤Ó), findall([_À­ÊÌ,_ͽÁÛ],( member(_,_10¿Í¤ÎͽÁۤʤé¤Ó), ͽÁÛ¤òÆþÎϤ¹¤ë(_À­ÊÌ,_ͽÁÛ)),_10¿Í¤ÎͽÁۤʤé¤Ó), '¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·É½¼¨¤¹¤ë'(_10¿Í¤ÎͽÁۤʤé¤Ó). ͽÁÛ¤òÆþÎϤ¹¤ë(_À­ÊÌ,_ͽÁÛ) :- write('À­Ê̤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(M or F) : '), get_line(_À­ÊÌ), À°¿ô¤òÆÀ¤ë('¾¡¤Á=1, É餱=2, °ú¤­Ê¬¤±=0 ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤',between(0,2,_ͽÁÛ),_ͽÁÛ). '¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·É½¼¨¤¹¤ë'(_10¿Í¤ÎͽÁۤʤé¤Ó) :- '¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·'(_10¿Í¤ÎͽÁۤʤé¤Ó,_ͽÁÛ·ë²Ì¤Ê¤é¤Ó), ɽ¼¨¤¹¤ë(_ͽÁÛ·ë²Ì¤Ê¤é¤Ó). '¤½¤ì¤é£±£°¿Íʬ¤ÎͽÁÛ·ë²Ì¤ò¡¢¡Ö ¾¡¤Á1¡¦°ú¤­Ê¬¤±0¡¦É餱2 ¡×¤ËÃ˽÷Ê̤˽¸·×¤·'(_10¿Í¤ÎͽÁۤʤé¤Ó,_ͽÁÛ·ë²Ì¤Ê¤é¤Ó) :- findall([_À­ÊÌ,_¾¡¤Á¹ç·×,_°ú¤­Ê¬¤±¹ç·×,_É餱¹ç·×],( Ã˽÷Ê̤Ë(_À­ÊÌ), ¾¡¤Á¹ç·×(_10¿Í¤ÎͽÁۤʤé¤Ó,_À­ÊÌ,_¾¡¤Á¹ç·×), °ú¤­Ê¬¤±¹ç·×(_10¿Í¤ÎͽÁۤʤé¤Ó,_À­ÊÌ,_°ú¤­Ê¬¤±¹ç·×), É餱¹ç·×(_10¿Í¤ÎͽÁۤʤé¤Ó,_À­ÊÌ,_É餱¹ç·×)),_ͽÁÛ·ë²Ì¤Ê¤é¤Ó). Ã˽÷Ê̤Ë(_À­ÊÌ):- member(_À­ÊÌ,['M','F']). ¾¡¤Á¹ç·×(_10¿Í¤ÎͽÁۤʤé¤Ó,_À­ÊÌ,_¾¡¤Á):- count(member([_À­ÊÌ,1],_10¿Í¤ÎͽÁۤʤé¤Ó),_¾¡¤Á). °ú¤­Ê¬¤±¹ç·×(_10¿Í¤ÎͽÁۤʤé¤Ó,_À­ÊÌ,_°ú¤­Ê¬¤±):- count(member([_À­ÊÌ,0],_10¿Í¤ÎͽÁۤʤé¤Ó),_°ú¤­Ê¬¤±). É餱¹ç·×(_10¿Í¤ÎͽÁۤʤé¤Ó,_À­ÊÌ,_É餱):- count(member([_À­ÊÌ,2],_10¿Í¤ÎͽÁۤʤé¤Ó),_É餱). ɽ¼¨¤¹¤ë(_ͽÁÛ·ë²Ì¤Ê¤é¤Ó):- forall(member([_À­ÊÌ,_¾¡¤Á,_°ú¤­Ê¬¤±,_É餱]_ͽÁÛ·ë²Ì¤Ê¤é¤Ó), writef('%w ¾¡¤Á=%w,°ú¤­Ê¬¤±=%w,É餱=%w\n',[_À­ÊÌ,_¾¡¤Á,_°ú¤­Ê¬¤±,_É餱])). count(P,Count) :- findall(1,P,L), length(L,Count). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1276873238/797 # # ÌäÂê # ĹÊý·Á£Á£Â£Ã£Ä¤ÎÆóÊÕ£Á£Â¤È£Â£Ã¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡Ê£Á£Â¡ä£Â£Ã¡Ë # £Ì¡á£Á£Å¡á£Â£Æ¡á£Ã£Æ¡á£Ä£Å¡á£Å£Æ¤È¤Ê¤ë£Ì¤òµá¤á¤è¡£ # £Á¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢££Â # ¢£¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢£ # ¢£¢¢¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢¢£ # ¢£¢¢¢¢¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢¢¢¢£ # ¢£¢¢¢¢¢¢£Å¢£¢£¢£¢£¢££Æ¢¢¢¢¢¢¢£ # ¢£¢¢¢¢¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢¢¢¢£ # ¢£¢¢¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢¢£ # ¢£¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢£ # £Ä¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢££Ã # Îã # £Á£Â¡á£±£±¡¢£Â£Ã¡á£¸¤Î¤È¤­¡¢£Ì¡á£µ # # 'ĹÊý·Á£Á£Â£Ã£Ä¤ÎÆóÊÕ£Á£Â¤È£Â£Ã¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡Ê£Á£Â¡ä£Â£Ã¡Ë£Ì¡á£Á£Å¡á£Â£Æ¡á£Ã£Æ¡á£Ä£Å¡á£Å£Æ¤È¤Ê¤ë£Ì¤òµá¤á¤è¡£'(AB,BC,L) :- between(0,100000,N), L is AB * N / 100000, L^2 >= 0.25 * ((BC^2) + (AB - L)^2),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1276873238/794 # # Àµ¤ÎÀ°¿ôm¤Èn(1<=n<=9)¤òÆþÎϤ·, m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºî¤ì. # # m¤¬3¤Çn¤¬2¤Î¾ì¹ç¤ÎÎã: # 111 # 112 # 121 # 122 # 211 # 212 # 221 # 222 # # 'Àµ¤ÎÀ°¿ôm¤Èn(1<=n<=9)¤òÆþÎϤ·, m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó¤ò½ÐÎϤ¹¤ë' :- 'Àµ¤ÎÀ°¿ôm¤Èn(1<=n<=9)¤òÆþÎϤ·'(_m,_n), m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó¤ò½ÐÎϤ¹¤ë(_m,_n). 'Àµ¤ÎÀ°¿ôm¤Èn(1<=n<=9)¤òÆþÎϤ·'(_m,_n) :- À°¿ô¤òÆÀ¤ë(Àµ¤ÎÀ°¿ôm,_m > 0,_m), À°¿ô¤òÆÀ¤ë('n(1<=n<=9)',(_n>=1,_n=<9),_n). m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó¤ò½ÐÎϤ¹¤ë(_m,_n) :- m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó¤ò(_m,_n,_m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó), ½ÐÎϤ¹¤ë(_m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó). m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó¤ò(_m,_n,_m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó) :- ·«¤êÊÖ¤·¿ô¤ÎÀ©¸æ¤Î¤¿¤á_m¤ò¤Ê¤é¤ÓLm¤ËÊÑ´¹¤¹¤ë(_m,Lm), findall(_m·å¤Î¿ô»úÎó,( m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ë¿ôÎó(Lm,_n,_mÍ×ÁǤοô»ú¤Ê¤é¤Ó), atomic_list_concat(_mÍ×ÁǤοô»ú¤Ê¤é¤Ó,_m·å¤Î¿ô»úÎó)), _m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ëÁ´¤Æ¤Î¿ôÎó). m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ë¿ôÎó([],_,[]). m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ë¿ôÎó([_|Lm],_n,[_1°Ê¾ån°Ê²¼¤Î¿ô»ú|R]) :- '1°Ê¾ån°Ê²¼¤Î¿ô»ú¤ò'(_n,_1°Ê¾ån°Ê²¼¤Î¿ô»ú), m·å¤Î1°Ê¾ån°Ê²¼¤Î¿ô»ú¤òÁȤ߹ç¤ï¤»¤Æ¤Ç¤­¤ë¿ôÎó(Lm,_n,R). '1°Ê¾ån°Ê²¼¤Î¿ô»ú¤ò'(_n,_1°Ê¾ån°Ê²¼¤Î¿ô) :- between(1,_n,_1°Ê¾ån°Ê²¼¤Î¿ô), atom_number(_1°Ê¾ån°Ê²¼¤Î¿ô»ú,_1°Ê¾ån°Ê²¼¤Î¿ô). ½ÐÎϤ¹¤ë(_¿ô»úʸ»úÎó¤Ê¤é¤Ó) :- append(_,[_¿ô»úʸ»úÎó|_»Ä¤êÍ×ÁÇ],_¿ô»úʸ»úÎó¤Ê¤é¤Ó), writef('%t',[_¿ô»úʸ»úÎó]), _»Ä¤êÍ×ÁÇ = []. ·«¤êÊÖ¤·¿ô¤ÎÀ©¸æ¤Î¤¿¤á_m¤ò¤Ê¤é¤ÓLm¤ËÊÑ´¹¤¹¤ë(_m,Lm) :- length(Lm,_m). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ :: C/C++¤Î½ÉÂêÊÒÉÕ¤±¤Þ¤¹ 158ÂåÌÜ #880 # [1]¼ø¶Èñ¸µ¡§C¸À¸ì # [2]ÌäÂêʸ # ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ¤Î¤è¤¦¤ÊÇúÃÆ¥²¡¼¥à¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¡£ # 1. ¥Þ¥¹Ìܤò8¡ß 8¤ËÀßÄꤹ¤ë¡£ # 2. ÇúÃÆ¤ò10¸Ä¤Ë¤·¡¢Æ±¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÇÛÃÖ¤¹¤ë¡Ê»î¹Ô¤ÎºÇÂç²ó¿ô¤Ï54²ó¤È¤Ê¤ë¡Ë¡£ # 3.¤Þ¤À»ØÄꤷ¤Æ¤¤¤Ê¤¤¥Þ¥¹ÌܤˤϿô»ú¤Î0¤ÎÂå¤ï¤ê¤Ëµ­¹æ'-'¤òɽ¼¨¤¹¤ë¡£ # 4.ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò # ɽ¼¨¤¹¤ë¡ÊºÇ¾®¤Ç0¡¢ºÇÂç¤Ç8¡Ë¡£ # 5. ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¥Þ¥¹Ìܤò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Þ¥¹Ìܤâ´Þ¤á¤ÆÇúÃÆ¤ÎÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú # ¤Î'x'¤òɽ¼¨¤·¡¢"Bomb!"¤Èɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£ # # [3]´Ä¶­ # [3.1]windows7 # [3.2]gcc # [3.3]C/C++ # [4]7·î20Æü # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ :- È×Ì̤ÎÀßÄê¤ÈÇúÃÆ¤ÎÇÛÃÖ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). È×Ì̤ÎÀßÄê¤ÈÇúÃÆ¤ÎÇÛÃÖ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- '¥Þ¥¹Ìܤò8¡ß 8¤ËÀßÄꤹ¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), 'ÇúÃÆ¤ò10¸Ä¤Ë¤·¡¢Æ±¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÇÛÃÖ¤¹¤ë¡Ê»î¹Ô¤ÎºÇÂç²ó¿ô¤Ï54²ó¤È¤Ê¤ë¡Ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÊÑ¿ô¤¬64¸Ä¤Ë¤Ê¤Ã¤¿¤éÄ©Àï¼Ô¤Î¾¡¤Á¤Ç¤¢¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),!. ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ¤ò·Ñ³¤¹¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). ÊÑ¿ô¤¬64¸Ä¤Ë¤Ê¤Ã¤¿¤éÄ©Àï¼Ô¤Î¾¡¤Á¤Ç¤¢¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÅÙ¿ô((member(A,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),atom(A)),64), write('¤¢¤Ê¤¿¤Î¾¡¤Á¤Ç¤¹¡£\n'). ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ¤ò·Ñ³¤¹¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤ò±£¤·¤ÆÈ×ÌÌɽ¼¨¸å¡¢¥Þ¥¹ÌܤòÁªÂò¤¹¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_¹Ô°ÌÃÖ,_Îó°ÌÃÖ), ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). 'ÇúÃÆ¤ò±£¤·¤ÆÈ×ÌÌɽ¼¨¸å¡¢¥Þ¥¹ÌܤòÁªÂò¤¹¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_¹Ô°ÌÃÖ,_Îó°ÌÃÖ) :- ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), ¥Þ¥¹ÌܤòÁªÂò¤µ¤»¤ë(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ). ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),!. ¥Þ¥¤¥ó¥¹¥¤¡¼¥Ñ(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¥Þ¥¹Ìܤò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Þ¥¹Ìܤâ´Þ¤á¤ÆÇúÃÆ¤ÎÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Î x ¤òɽ¼¨¤·¡¢Bomb!"¤Èɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), '¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ). 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¹Ìܤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ʿ󲽤·¤¿°ÌÃÖ¤ËÊÑ´¹(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1), nth1(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,0). '¥Ò¥ó¥È¤È¤·¤Æ¡Ö¼þ°Ï¤Î¥Þ¥¹Ìܤˤ¢¤ëÇúÃÆ¤ÎÁí¿ô¡×¤ò¼¨¤¹'(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÇúÃÆ¤Ï¼þ°Ï¤Ë¤¤¤¯¤Ä¤¢¤ë¤«(_nth1,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_¸Ä¿ô), writef('¼þ°Ï¤ËÇúÃÆ¤Ï %w ¸Ä¤¢¤ê¤Þ¤¹\n',[_¸Ä¿ô]),!. 'ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¥Þ¥¹Ìܤò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Þ¥¹Ìܤâ´Þ¤á¤ÆÇúÃÆ¤ÎÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Î x ¤òɽ¼¨¤·¡¢Bomb!"¤Èɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë'(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- ÆÀÅÀ¤Ï(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_ÆÀÅÀ), ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ), writef('\n Bomb! \n\n\n ¤¢¤Ê¤¿¤ÎÆÀÅÀ¤Ï %t ¤Ç¤¹\n',[_ÆÀÅÀ]). ÆÀÅÀ¤Ï(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,_ÆÀÅÀ) :- ÅÙ¿ô((member(A,_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ),\+(var(A)),A==0),_ÆÀÅÀ). ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·([]) :- !. ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·(L) :- ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·¤Æ¹Ô¤¯(L). ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·¤Æ¹Ô¤¯([_1,_2,_3,_4,_5,_6,_7,_8|R]) :- ÇúÃÆ¤ò´Þ¤à¥Þ¥¹Ìܤò¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8]), ÇúÃÆ¤¬ÃÖ¤«¤ì¤¿¤¹¤Ù¤Æ¤Î¥Þ¥¹Ìܤ˾®Ê¸»ú¤Îx¤òɽ¼¨¤·(R). ÇúÃÆ¤ò´Þ¤à¥Þ¥¹Ìܤò¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8]) :- ¥Þ¥¹Ìܤò([_1,_2,_3,_4,_5,_6,_7,_8],A,R), ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R). ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R) :- ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(A,_ɽ¼¨Ê¸»ú), ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨(R,_ɽ¼¨Ê¸»ú). ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨(R,_ɽ¼¨Ê¸»ú) :- writef('%w',[_ɽ¼¨Ê¸»ú]), R = [], write('\n'). ¥Þ¥¹Ìܤò([_1,_2,_3,_4,_5,_6,_7,_8],A,R) :- append(_,[A|R],[_1,_2,_3,_4,_5,_6,_7,_8]). ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(V,'-') :- var(V),!. ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú('x','x') :- !. ÇúÃÆ¤ò´Þ¤à¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(_,0). ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë([]). ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë([_1,_2,_3,_4,_5,_6,_7,_8|R]) :- ÇúÃÆ¤ò±£¤·¤Æ¥Þ¥¹ÌܤιÔɽ¼¨([_1,_2,_3,_4,_5,_6,_7,_8]), ÇúÃÆ¤ò±£¤·¤ÆÈ×Ì̤òɽ¼¨¤¹¤ë(R). ÇúÃÆ¤ò±£¤·¤Æ¥Þ¥¹ÌܤιÔɽ¼¨([_1,_2,_3,_4,_5,_6,_7,_8]) :- ¥Þ¥¹Ìܤò([_1,_2,_3,_4,_5,_6,_7,_8],A,R), ÇúÃÆ¤ò±£¤·¤Æ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R). ÇúÃÆ¤ò±£¤·¤Æ¹ÔËö¤Þ¤Çɽ¼¨¤¹¤ë(A,R) :- ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(A,_ɽ¼¨Ê¸»ú), ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨(_ɽ¼¨Ê¸»ú,R). ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨(_ɽ¼¨Ê¸»ú,R) :- writef('%w',[_ɽ¼¨Ê¸»ú]), R = [], write('\n'). ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(V,'-') :- var(V),!. ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú('x','-') :- !. ÇúÃÆ¤ò±£¤¹¥Þ¥¹ÌÜɽ¼¨Ê¸»ú(_,0). ʿ󲽤·¤¿°ÌÃÖ¤ËÊÑ´¹(_¹Ô°ÌÃÖ,_Îó°ÌÃÖ,_nth1) :- _nth1 is (_¹Ô°ÌÃÖ-1) * 8 + _Îó°ÌÃÖ. '¥Þ¥¹Ìܤò8¡ß 8¤ËÀßÄꤹ¤ë'(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ) :- length(_ʿó¤Ê¤Ê¤é¤Ó¤Çɽ¸½¤µ¤ì¤¿È×ÌÌ,64). 'ÇúÃÆ¤ò10¸Ä¤Ë¤·¡¢Æ±¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤ËÇÛÃÖ¤¹¤ë¡Ê»î¹Ô¤ÎºÇÂç²ó¿ô¤Ï54²ó¤È¤Ê¤ë¡Ë'(L) :- ÇúÃÆ¤Ï10¸Ä¤Ë¤·(Lp), Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë(Lp,L). ÇúÃÆ¤Ï10¸Ä¤Ë¤·(Lp) :- length(Lp,10). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë([],L) :- !. Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë([_|R1],L) :- Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(L), Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¤À¤±¤ËÇÛÃÖ¤¹¤ë(R1,L). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥à¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(L) :- ¥é¥ó¥À¥à¤Ë(L,_nth0), Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(_nth0,L),!. ¥é¥ó¥À¥à¤Ë(L,_nth0) :- repeat, _nth0 is random(64). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë°ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(_nth0,L) :- Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë(_nth0,L,V), °ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(V). Ʊ¤¸¥Þ¥¹Ìܤ˽Ťʤé¤Ê¤¤¤è¤¦¤Ë(_nth0,L,V) :- nth0(_nth0,L,V), var(V). °ì¸ÄÇúÃÆ¤òÀßÃÖ¤¹¤ë(x). ÇúÃÆ¤Ï¼þ°Ï¤Ë¤¤¤¯¤Ä¤¢¤ë¤«(N,L,_¸Ä¿ô) :- ÅÙ¿ô(¼þ°Ï¤ÎȬ²Õ½ê¤ÎÃæ¤ÇÇúÃÆ¤¬¤¢¤ë¤Î¤Ï(N,L),_¸Ä¿ô). ¼þ°Ï¤ÎȬ²Õ½ê¤ÎÃæ¤ÇÇúÃÆ¤¬¤¢¤ë¤Î¤Ï(N,L) :- ¼þÊÕ¤ÎȬ²Õ½ê¤ÎÃæ¤Ç(N,_nth1), '_nth1¤Ë¤ÏÇúÃÆ¤¬¤¢¤ë'(_nth1,L). ¼þÊÕ¤ÎȬ²Õ½ê¤ÎÃæ¤Ç(N,_nth1) :- member(_¼°,[N-9,N-8,N-7,N-1,N,N+1,N+7,N+8,N+9]), _nth1 is _¼°. '_nth1¤Ë¤ÏÇúÃÆ¤¬¤¢¤ë'(_nth1,L) :- nth1(_nth1,L,V), ÊÑ¿ô¤Ç¤Ï¤Ê¤¯ÇúÃÆ¤¬¤¢¤ë(V). ÊÑ¿ô¤Ç¤Ï¤Ê¤¯ÇúÃÆ¤¬¤¢¤ë(V) :- ÊÑ¿ô¤Ç¤Ï¤Ê¤¯(V), V = x. ÊÑ¿ô¤Ç¤Ï¤Ê¤¯(V) :- \+(var(V)). ¥Þ¥¹ÌܤòÁªÂò¤µ¤»¤ë(_¹Ô°ÌÃÖ,_·å°ÌÃÖ) :- À°¿ô¤òÆÀ¤ë('¥Þ¥¹Ìܤι԰ÌÃÖ(1-8) ',between(1,8,_¹Ô°ÌÃÖ),_¹Ô°ÌÃÖ), À°¿ô¤òÆÀ¤ë('¥Þ¥¹Ìܤηå°ÌÃÖ(1-8) ',between(1,8,_·å°ÌÃÖ),_·å°ÌÃÖ),!. ÅÙ¿ô(P,_ÅÙ¿ô) :- findall(1,P,L), length(L,_ÅÙ¿ô). À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô),!. À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- À°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô). ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤òÆÀ¤ë(_ºÅ¥ʸ,_¾ò·ï,_À°¿ô) :- ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é(_ºÅ¥ʸ,_¹Ô), ¹Ô¤ò¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_¾ò·ï,_À°¿ô),!. ºÅ¥ʸÉÕ¤­¹ÔÆþÎϤ«¤é(_ºÅ¥ʸ,_¹Ô) :- writef('%w',[_ºÅ¥ʸ]), ¹ÔÆþÎÏ(_¹Ô). ¹ÔÆþÎÏ(_¹Ô) :- read_line_to_codes(user_input,Codes), atom_chars(_¹Ô,Codes). ¹Ô¤ò¾ò·ïÉÕ¤­¤ÇÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_¾ò·ï,_À°¿ô) :- ¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_À°¿ô), À°¿ôÆþÎϾò·ï¸¡ºº(_¾ò·ï). ¹Ô¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë(_¹Ô,_À°¿ô) :- read_term_from_atom(_¹Ô,_À°¿ô,[]), À°¿ô¸¡ºº(_À°¿ô). À°¿ô¸¡ºº(_À°¿ô) :- integer(_À°¿ô),!. À°¿ô¸¡ºº(_¹à) :- À°¿ô¸¡ºººÆÆþÎÏÍ×ÀÁ(_¹à). À°¿ô¸¡ºººÆÆþÎÏÍ×ÀÁ(_¹à) :- writef('ÆþÎϤµ¤ì¤¿¹à %w ¤ÏÀ°¿ô¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¹à]), fail. À°¿ôÆþÎϾò·ï¸¡ºº(_¾ò·ï) :- catch(_¾ò·ï,E,fail),!. À°¿ôÆþÎϾò·ï¸¡ºº(_¾ò·ï) :- À°¿ôÆþÎϾò·ï¸¡ºººÆÆþÎÏÍ×ÀÁ(_¾ò·ï). À°¿ôÆþÎϾò·ï¸¡ºººÆÆþÎÏÍ×ÀÁ(_¾ò·ï) :- writef('ÆþÎϤµ¤ì¤¿ %w ¤ÏÀ®Î©¤·¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹¡£\n',[_¾ò·ï]), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/273 # # ¡Ú¡¡²ÝÂê¡¡¡Û1¤«¤én¤Þ¤Ç¤ÎÃ͡ʤ¿¤È¤¨¤Ðn¤¬£µ¤Ç¤¢¤ì¤Ð¡¢£±¡¤£²¡¤£³¡¤£´¡¤£µ¡Ë¤ò¡¢£±¹Ô¤Ë£±¸Ä¤º¤Äɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë # ¡Ú¡¡·ÁÂÖ¡¡¡Û1. Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(main()¤Ç³«»Ï) # # ¡¡¡¡¡¡¡¡¡¡¡¡ # ¡Ú¡¡´ü¸Â¡¡¡ÛÌÀÆü # # ¡Ú¡¡Êä­¡¡¡Ûimport java.util.Scanner; # # class B4{ # # public static void main(String[] args){ # # Scanner stdIn = new Scanner(System.in); # int n; # n = stdIn.nextInt(); # # int i=1; # while (i<=n){ # System.out.println("i"); # i++; # } # } # } # ¼«Ê¬¤Çºî¤Ã¤¿¤ó¤Ç¤¹¤¬¤³¤ì°Ê¾å¤ï¤«¤ê¤Þ¤»¤ó¡£ # Àµ¤·¤¯Ä¾¤·¤Æ¤¯¤ì¤Þ¤»¤ó¤«¡ä¡ã # # '1¤«¤én¤Þ¤Ç¤ÎÃ͡ʤ¿¤È¤¨¤Ðn¤¬£µ¤Ç¤¢¤ì¤Ð¡¢£±¡¤£²¡¤£³¡¤£´¡¤£µ¡Ë¤ò¡¢£±¹Ô¤Ë£±¸Ä¤º¤Äɽ¼¨¤¹¤ë' :- À°¿ô¤òÆÀ¤ë(À°¿ô,_n), '1¤«¤én¤Þ¤Ç¤ÎÃÍ'(_n,_1¤«¤én¤Þ¤Ç¤ÎÃÍ), £±¹Ô¤Ë£±¸Ä¤º¤Äɽ¼¨¤¹¤ë(_1¤«¤én¤Þ¤Ç¤ÎÃÍ), _1¤«¤én¤Þ¤Ç¤ÎÃÍ = _n. '1¤«¤én¤Þ¤Ç¤ÎÃÍ'(_1¤«¤én¤Þ¤Ç¤ÎÃÍ) :- between(1,_n,_1¤«¤én¤Þ¤Ç¤ÎÃÍ). £±¹Ô¤Ë£±¸Ä¤º¤Äɽ¼¨¤¹¤ë(_1¤«¤én¤Þ¤Ç¤ÎÃÍ) :- writef('%t\n',[_1¤«¤én¤Þ¤Ç¤ÎÃÍ]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1339338438/790 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§C¸À¸ì # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¿ôÃͤò1¤ÄÆþÎϤ·¡¢¤½¤Î¸Ä¿ôʬ¤Î"*"¤ò1ÊդȤ¹¤ë # ­¡ÀµÊý·Á ­¢»°³Ñ·Á ­£µÕ»°³Ñ·Á ­¤»°³Ñ´ú ­¥¥À¥¤¥ä·¿ ­¦È¬³Ñ·Á ­§À±·Á¤òÉÁ²è¤»¤è # # ¡¦·«¤êÊÖ¤·¤Î¾ò·ï»ØÄê¤Î¹©ÉפΤߤκîÀ®¡£ # ¡¦ÉÁ²èÉôʬ¤Î¥¢¥ë¥´¥ê¥º¥à¤Çifʸ¤ò»ÈÍѤ·¤Ê¤¤¤³¤È # ¡¦1²ó¤Îprintf()´Ø¿ô¤Ç½ÐÎϤǤ­¤ë¤â¤Î¤Ï¡Ö*¡×¡Ö ¡×¡Ö\n¡×¤Î¤ß¡£ # ¤¿¤À¤·¡Ö*¡×¤Î¸å¤í¤ËȾ³Ñ¥¹¥Ú¡¼¥¹¤òÉղ乤뤳¤È¤ÏOK¡£ # ¡¦³Æ¿Þ·Á¤ÎÉÁ²è¤Ï¡¢¤½¤ì¤¾¤ì´Ø¿ô²½¤µ¤ì¤Æ¤¤¤ë¤³¤È¡£ # ¡¦2¡Á9°Ê³°¤Î¿ô»ú¤¬ÆþÎϤµ¤ì¤¿¤é¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤ÆºÆÆþÎϤµ¤»¤ë¡£ # ¡¦¥á¥Ë¥å¡¼·Á¼°¤Ë¤·¤Æ¡¢¤É¤Î¿Þ·Á¤òÉÁ²è¤¹¤ë¤«ÁªÂò¼°¤Ë¤¹¤ë # ¤µ¤é¤Ë1²ó¤Ç½ªÎ»¤»¤ºÉÁ²è¸å¡¢¥á¥Ë¥å¡¼¤ËÌá¤ë¤³¤È¡£ # ¡¦ÉÁ²è¤¹¤ë¿Þ·Á¤ÎÆâÉô¤ò¶õÇò¤Ë¤¹¤ë¡£ # # ÆþÎϤµ¤»¤ë¥á¥Ã¥»¡¼¥¸¤Ï¡Ö¿ô»ú(2¡Á9)¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¡× # ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï¡Ö¥¨¥é¡¼¡ª 2¡Á9¤Î¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¡× # ¥á¥Ë¥å¡¼¤Ï¡¢1)ÀµÊý·Á 2)»°³Ñ·Á 3)µÕ»°³Ñ·Á 4)»°³Ñ´ú 5)¥À¥¤¥ä·¿ 6)Ȭ³Ñ·Á 7)À±·Á¤òɽ¼¨¤·¡¢ # ¤½¤³¤«¤éÁª¤Ð¤»¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ # »°³Ñ´ú(_n) :- ´ú¤ÎÉôʬ(1,_n), »Ä¤ê¤Î´È¤ÎÉôʬ(_n). ´ú¤ÎÉôʬ(_n), between(1,_n,M), ´È¤Î¤Ò¤ÈÀá, ´ú(_n), M = _n, ´ú(_n,_n) :- °ì¶Ú½ñ¤¯(_m),!. ´ú(_m,_n) :- °ì¶Ú½ñ¤¯(_m), _m_2 is _m + 1, ´ú(_m_2,_n), °ì¶Ú½ñ¤¯(_m). ´È¤Î¤Ò¤ÈÀá :- write('*'). °ì¶Ú½ñ¤¯(_m) :- between(1,_m,M), write('*'), _m = M, write('\n'). »Ä¤ê¤Î´È¤ÎÉôʬ(_n) :- between(1,_n,M), ´È¤Î¤Ò¤ÈÀá, write('\n'), _n = M. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/191 # # ¼«Á³¿ôN(N<10000)¤¬¤¢¤¿¤¨¤é¤ì¤¿¤È¤­¡¢N¤Þ¤Ç¤Î¤¦¤ÁÁÇ¿ô¤Î¤ß¤ò¼¨¤¹¥×¥í¥°¥é¥à¤òºî¤ì¡£ # ɽ¼¨¤Ï¥³¥ó¥½¡¼¥ë¤Ë¡¢¥³¥ó¥Þ¤Ç¶èÀڤäÆÉ½¼¨¤»¤è¡£ # ¡Ê¥Ò¥ó¥È¡§a,b(a<=b)¤Î2¿ô¤ÎÀѤ¬N°Ê²¼¤Ê¤é¤ÐºÇÂç¤È¤Ê¤ëa¤Þ¤Ç¤ÎÁÇ¿ô¤ò¹Í¤¨¤ì¤Ð¤è¤¤¡Ë # # ¤Þ¤º¥Ò¥ó¥È¤¬ÆüËܸ줸¤ã¤Ê¤¤¤Ç¤¹¡¦¡¦¡¦ # ¿ô³Ø¤¬¤Ç¤­¤Ê¤¯¤Æ¤â¤ä¤ëµ¤¤¬¤¢¤ì¤Ð¤Ç¤­¤ë¤È¤¤¤¦¤Î¤ÇÂç³Ø¤ËÆþ¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤â¤¦ËèÆü»à¤Ì¤Û¤É¿ô