æ«å°Ÿååž°é¢æ°ãšã¯ãã³ã³ãã¥ãŒã¿ ããã°ã©ãã³ã°ã«ãããç¹å®ã®ã¯ã©ã¹ã®é¢æ°ãæããŸããååž°ãšã¯ãå€ãã®ããã°ã©ãã³ã° ãã©ãã€ã ã§æŽ»çšãããŠããåé¡ã解決ããããã«ã颿°ãèªåèªèº«ã 1 å以äžåŒã³åºãã¢ã«ãŽãªãºã ææ³ã§ããæšæºã®ååž°ãšã¯å¯Ÿç §çã«ãæ«å°Ÿååž°ã䜿çšãããšãåºç€ãšãªãããã°ã©ãã³ã°èšèªã§ååž°åŒã³åºãã®åŠçãæé©åã§ããããããªãœãŒã¹ã®ãªãŒããŒããããåæžããã颿°ã®å šäœçãªã¹ã±ãŒã©ããªãã£ãšããã©ãŒãã³ã¹ãåäžããŸãã
æ«å°Ÿååž°ã§ã¯ãååž°åŒã³åºãã颿°å®çŸ©ã®æåŸã®æäœãšãªããããå¢å€§ããåŒã³åºãã¹ã¿ãã¯ãç¶æããããã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãã©ã³ã¿ã€ã ç°å¢ã®å¿ èŠæ§ãäºå®äžæé€ãããŸããããã¯ãååž°åŒã³åºããè¡ããããšããã«é¢æ°ã®ã³ã³ããã¹ããå®å šã«ç Žæ£ã§ããåŸç¶ã®åŒã³åºãã¯ç¬èªã®ç°å¢ã§ç¶è¡ãããããã§ãããã®ã¢ãããŒãã«ã¯ãã¡ã¢ãªäœ¿çšéãšå®è¡é床ã®ç¹ã§åŸæ¥ã®ååž°çææ³ã«æ¯ã¹ãŠé¡èãªå©ç¹ããããããã°ã©ãã¯ãã倧ããªåé¡ãããå°é£ãªããŒã¿ã»ããã«ç°¡åã«åãçµãããšãã§ããŸãã
AppMasterno-codeãã©ãããã©ãŒã ã«ã¯ãã«ã¹ã¿ã 颿°ã®èšèšã«ãããéèŠãªæ©èœãšããŠæ«å°Ÿååž°ãçµã¿èŸŒãŸããŠããããã®å¯èœæ§ã掻çšããŠæäœãåçåããããã©ãŒãã³ã¹ãåäžãããŸããããã¯ã AppMasterãšã³ã·ã¹ãã å ã§å ç¢ãã€å¹ççã§ã¹ã±ãŒã©ãã«ãªãœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ãäœæããå Žåã«ç¹ã«éèŠã§ããAppMaster ãšã³ã·ã¹ãã ã§ã¯ãåžæ°éçºè ãšå°éå®¶ãåæ§ã«ããžãã¹ããã³ãšã³ã¿ãŒãã©ã€ãº ã¢ããªã±ãŒã·ã§ã³åãã®ãã¬ãŒã ã¯ãŒã¯ã®æ©èœã掻çšã§ããŸãã
AppMasterã®ããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã¯ãç¹ã« Go ããã°ã©ãã³ã°èšèª (golang) ãš Web ã¢ããªã±ãŒã·ã§ã³çšã® JavaScript/TypeScript ã䜿çšããå®è£ ã§ãæ«å°Ÿååž°ãåºç¯å²ã«å©çšããŠããŸãããããã®ç°å¢ã«ã¯ãäžè¬ã«æ«å°ŸåŒã³åºãæé©å (TCO) ãšåŒã°ããæ«å°Ÿååž°æé©åã®ãµããŒããçµã¿èŸŒãŸããŠããŸãããã®ã³ã³ãã€ã«æã®æé©åã«ãããäž»ã«ãååž°çãªé¢æ°åŒã³åºããè¡ããããšãã«ã¡ã¢ãªå ã®åŒã³åºãã¹ã¿ãã¯ã®ãµã€ãºãäžå®ã«ä¿ãããããããªãœãŒã¹ç®¡çãåäžããã¹ã¿ã㯠ãªãŒããŒãã㌠ãšã©ãŒã®ãªã¹ã¯ã軜æžãããŸãã
æ«å°Ÿååž°é¢æ°ã®å žåçãªäŸã® 1 ã€ã¯éä¹ã®èšç®ã§ããéä¹é¢æ° `n! ãèãã= n * (n-1) * (n-2) * ... * 1` ã®å Žåãå€å žçãªéä¹ååž°å®è£ ã«ã¯äžé£ã®ä¹ç®ãå«ãŸããååž°ãåºæ°ã«éãããŸã§åä¹ç®ãã¡ã¢ãªå ã«ä¿æããå¿ èŠããããŸããã®å Žå (1 ãå ¥å)ããã ããéä¹é¢æ°ã®æ«å°Ÿååž°ããŒãžã§ã³ã§ã¯ã远å ã®ã¢ãã¥ã ã¬ãŒã¿ ãã©ã¡ãŒã¿ãŒãå°å ¥ãããŸããããã¯ãååž°ã®ãã©ããŒã¹äžã«äžéçµæãä¿åããããã«äœ¿çšããã颿°ãåŠçã®é²è¡äžã«ä»¥åã®ã³ã³ããã¹ããç Žæ£ã§ããããã«ããŸããããã«ãããã¢ã«ãŽãªãºã ãããå¹ççã«å®è¡ããããªãœãŒã¹ã®äœ¿çšãæé©åãããããã©ãŒãã³ã¹ãåäžããŸãã
以äžã¯ãæ«å°Ÿååž°éä¹é¢æ°ã®ç䌌ã³ãŒãã®äŸã§ãã
颿° tail_factorial(n, ã¢ãã¥ã ã¬ãŒã¿ = 1) {
if (n == 1) ã¢ãã¥ã ã¬ãŒã¿ãè¿ã
return tail_factorial(n - 1, ã¢ãã¥ã ã¬ãŒã¿ * n)
}
æ«å°Ÿååž°ã®æé©åã®å¯èœæ§ã¯éä¹ã«éå®ãããŸãããä»ã®äžè¬çãªäŸã«ã¯ãããŒã¿æ§é ã«ããããã£ããããæ°ãã¢ãã«ãŒãã³é¢æ°ãããªãŒ ãã©ããŒãµã« ã¢ã«ãŽãªãºã ã®èšç®ãå«ãŸããŸããããåºã芳ç¹ããèŠããšãã»ãŒãã¹ãŠã®ååž°é¢æ°ãæ«å°Ÿååž°ããŒãžã§ã³ã«å€æããŠãã®å©ç¹ãæå€§éã«æŽ»çšã§ãã AppMasterno-codeãã©ãããã©ãŒã ãããŸããŸãªãŠãŒã¹ ã±ãŒã¹ãã¢ããªã±ãŒã·ã§ã³ ã¿ã€ãã«ããã£ãŠæ¯é¡ã®ãªãå¹çæ§ãšæ¡åŒµæ§ãæäŸã§ããããã«ãªããŸãã
æ«å°Ÿååž°é¢æ°ãã«ã¹ã¿ã 颿°ã®äžå¯æ¬ ãªéšåã«ãªãã«ã€ããŠã AppMasterãã©ãããã©ãŒã ã¯ãããå€ãã®äŒæ¥ãéçºè ããã©ãããã©ãŒã ã®no-codeæ©èœãæ¡çšããã«ã€ããŠããšã³ã¿ãŒãã©ã€ãºããã³é«è² è·ã¢ããªã±ãŒã·ã§ã³ã®å¢å€§ããããŒãºã«å¯Ÿå¿ããèœåãç¶ç¶çã«åäžãããŠããŸãã AppMaster ãæè»ã§åŒ·åãªããžã¥ã¢ã« ãšãã£ã¿ãŒãéããŠã¢ããªã±ãŒã·ã§ã³éçºãåçåããç®çã§æ§ç¯ãããå ç¢ã§å æ¬çãªç°å¢ãæäŸããã¢ããªã±ãŒã·ã§ã³éçºã 10 åé«éåãã3 åã®ã³ã¹ãå¹çãé«ããŸãã AppMasterã®é¡§å®¢ã«ãšã£ãŠãæ«å°Ÿååž°ã¯éèŠãªæé©åææ³ã§ãããã¹ã±ãŒã©ããªãã£ãšä¿¡é Œæ§ãä¿èšŒããªãããããããã©ãŒãã³ã¹ãé«ãå¹ççãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããããã«ãªããŸãã