ãšã³ããªãŒ
æ°æ¥åãThe Daily Vizã«ããã°æçš¿ãæçš¿ãããã·ã³ãã«ã§å¹æçãªããŒã¿èŠèŠåã®äŸãšããŠäžè¬å€§è¡ã®æ³šç®ãéããŸããã
ããžã¥ã¢ã©ã€ãŒãŒã·ã§ã³ã¯èªçæ¥ã®äººæ°ãããã§ãã«ã¬ã³ããŒåœ¢åŒã®ããŒãããããšããŠå®è£
ãããŸããã æ°åã¯åçŽæ¹åãæã¯æ°Žå¹³æ¹åã«ããããã®åçŽãªè¡šãèŠããšãæ¥é°ã®é£œå床ã«ãã£ãŠãç¹å®ã®æ¥ãåºç£ã®èŠ³ç¹ããã©ãããã人æ°ãããããå€æã§ããŸãã
ãã°ããããŠãèŠèŠåã®èè
ã¯åãããã°ã«2çªç®ã®æçš¿ãå
¬ââéããç»åã®äœæ¥ã§äœ¿çšãããå
ã®ããŒã¿ã«é©åã«ã³ã¡ã³ãããã«ã³ãã¥ããã£ã誀解ãããããšãè¬çœªããŸããã åé¡ã¯ãå
ã®ããŒã¿ã»ããã«ç¹å®ã®æ¥ã«çãŸããå®éã®äººæ°ã«é¢ããæ
å ±ãå«ãŸããŠããªãããšã§ããã æ
å ±ã¯å¥ã®åœ¢åŒã§äžããããŸãã-èªçæ¥ã®äººæ°ã®ãæ Œä»ããã«ãããŠããã®æ¥ãŸãã¯ãã®æ¥ã¯ã©ãââïŒã©ã³ã¯ïŒã§ãããã
ã€ãŸããæ Œä»ãã®1çªç®ãš2çªç®ã®äœçœ®ã®å·®ã¯éåžžã«å€§ãããªãå¯èœæ§ããããŸãïŒããšãã°2åïŒãã1ã€ã®ããŒã³ã ãã¯ç°ãªããŸãã ã€ãŸããã»ããã«ã¯æŽŸçããŒã¿ã®ã¿ãå«ãŸããŠãããããèŠèŠåã¯å®éã®ããŒã¿ãåæ ããŠããŸããã§ããã
ãã®åé¡ã«ã€ããŠå°ãèããåŸããã®ãããªèŠèŠåãæåããæåŸãŸã§ãã€ãŸãããŒã¿ã®åéããå®éã®ç»åã®ã¬ã³ããªã³ã°ãŸã§äœæããç¬èªã®äŸã説æããããšã«ããŸããã ãã®äŸã¯ãäžæ¹ã§ã¯æ¯èŒçåçŽã§ãããä»æ¹ã§ã¯ãèå³æ·±ãçµæãããããå
šäœçãªå®æãããžã§ã¯ãã§ãããšããç¹ã§åªããŠããŸãã
ãã¹ãŠã®æäœã§ãåŸæ¥ãã®ãããªã¿ã¹ã¯ã«äœ¿çšãããŠããåŠçç°å¢ã䜿çšããŸããïŒããŒã«ã®éžæã®åé¡ã«ãšã©ãŸãã¹ãã§ã¯ãããŸããïŒã
ãã®ããããããžã§ã¯ãã®äœæ¥ããã»ã¹ã¯å®å®ããæ§é ãæã¡ã3ã€ã®æ®µéã§æ§æãããŠããŸãã
ããŒã¿åé>ããŒã¿ãœãŒã>ããŒã¿èŠèŠå
ãã®æ§é ã«åŸããŸãã
1.ããŒã¿åé
vk.comãœãŒã·ã£ã«ãããã¯ãŒã¯ã®ãŠãŒã¶ãŒãããã¡ã€ã«ããããŒã¿ãååŸããŸãã 幞ããªããšã«ããã®APIã®äžéšã®ã¡ãœããã¯ãªãŒãã³ã§ãããã¢ããªã±ãŒã·ã§ã³ã®æ¿èªãå¿
èŠãšããªããããã¿ã¹ã¯ã倧å¹
ã«ç°¡çŽ åãããŸãã
çµéšçã«ããããã®100,000åã®ãããã¡ã€ã«ã¯ãã«ã¬ã³ããŒã®èªçæ¥ã®ååžã®ã©ã³ãã ãªäžåäžæ§ãå¹³æºåããäž»ãªåŸåãç¹å®ããã®ã«ååã§ããããšãçºèŠããŸããã ããã§ããæéãç¯çŽããŠå®èšŒããããã«ã10,000件ã®ã¬ã³ãŒããåéããŸãã åŸã§ãå¿
èŠãªæ°ã®ãããã¡ã€ã«ãããã°ã©ã ã«çœ®ãæããããšãã§ããŸãã
ã¡ã€ã³ã®setupïŒïŒé¢æ°å
ã«ããã°ã©ã ãèšè¿°ããŸãã ããã°ã©ã ã¯éçãªç»åãçæããã¢ãã¡ãŒã·ã§ã³ãå«ãŸãªãããã drawïŒïŒé¢æ°ã¯å¿
èŠãããŸããã Processingã®ããã°ã©ã ã®æ§é ã«é¢ãã詳现ã¯ããããžã§ã¯ãã®Webãµã€ãã§èŠã€ããããšãã§ããŸãã ãã¹ãŠã®çµã¿èŸŒã¿é¢æ°ã®èª¬æãšåªããæ§æãªãã¡ã¬ã³ã¹ããããŸãã
ãŸããããŒã¿ã®åéãåŠçãèŠèŠåã®äœæãããã³å®è¡ãè¡ãããã°ã©ã ãäœæããŸããã ã象ããããã€ãã®ã¢ãžã¥ãŒã«ã«åå²ããŠãäœæ¥ãç°¡åã«ãããããã°ãšãšã©ãŒã®ä¿®æ£ã«ãããæéãççž®ããŸãã ã€ãŸãããŸãããŒã¿ãåéããããã°ã©ã ãäœæãããã®å©ããåããŠããŒã¿ãåéããŸãã 次ã«ãä¿åãããåéããŒã¿ã«åºã¥ããŠç®çã®ç»åãçæããããã°ã©ã ãåå¥ã«äœæããŸãã
ãã®ãããããã°ã©ã ã«ã¯ãã©ã³ã¯ãã©ã³ã¯ãæžã蟌ã¿ãŸãã
void setup() {
次ã«ãVK APIãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã ãªã¯ãšã¹ãã®ãã©ã¡ãŒã¿ãŒãå«ãç¹å¥ãªURLã§ãµãŒããŒã«ã¢ã¯ã»ã¹ããŸãã
http://api.vk.com/method/users.get.xml/uids= {ããã«é¢å¿ã®ãããŠãŒã¶ãŒã®IDã®ãªã¹ããã³ã³ãã§åºåã£ãŠ}ïŒfields = {ããã«é¢å¿ã®ãããŠãŒã¶ãŒãããã¡ã€ã«ã®ãã£ãŒã«ãã®ååã®ãªã¹ãããããŸã}
.xmlã䜿çšããã«ã¡ãœããã®ååãèšè¿°ãããšãJSON圢åŒã®æååãšããŠãµãŒããŒããå¿çãåãåããŸãã ããã¯1ã€ã®ãªãã·ã§ã³ã§ããããã®äŸã§ã¯XMLã䜿çšããŸãã vkontakteã®åµèšè
ã§ããPavel Durovã®ã¢ã«ãŠã³ãããæ
å ±ãååŸããããšããŸãã äœæïŒ
http://api.vk.com/method/users.get.xml?uids=1&fields=bdate
圌ã®ãããã£ãŒã«ã®ID-ç§ãã¡ã«ãšã£ãŠèå³ã®ããåé-圌ã®èªçæ¥-ã¯bdateãšåŒã°ããŸã ã
ãã®ãããã¡ã€ã«ã«é¢ããæ
å ±ãååŸããŠã¿ãŸãããã çµã¿èŸŒã¿é¢æ°loadStringsïŒïŒã䜿çšããŸãããã®é¢æ°ã¯ã察象ã®ãã¡ã€ã«ã®ã¢ãã¬ã¹ãå«ãæååããã©ã¡ãŒã¿ãŒãšããŠåãåãããã¡ã€ã«ã®å
容ãæååã®é
åãšããŠè¿ããŸãã
void setup() { String[] user = loadStrings("http://api.vk.com/method/users.get.xml?uids=1&fields=bdate"); // println(user); // ( ) exit(); // }
ã³ã³ãœãŒã«ã§ããã°ã©ã ãéå§ãããšããµãŒããŒããã®å¿çã衚瀺ãããŸãã
[0] "<?xml version="1.0" encoding="utf-8"?>" [1] "<response list="true">" [2] " <user>" [3] " <uid>1</uid>" [4] " <first_name></first_name>" [5] " <last_name></last_name>" [6] " <bdate>10.10.1984</bdate>" [7] " </user>" [8] "</response>"
è§æ¬åŒ§å
ã®æ°åã¯ãé
åå
ã®ã¬ã³ãŒãïŒã€ã³ããã¯ã¹ïŒã®æ°ãæå³ããé
åã®å
容ãšã¯é¢ä¿ãããŸããã ãŸããåè¡ã¯åŒçšç¬Šã§å²ãŸããŠããŸãã å®éãåŒçšç¬Šã®éã«ããã®ã¯ã³ã³ãã³ãã§ãã ç§ãã¡ã¯ãã®åéã«èå³ããããŸã
<bdate>
ïŒ[6]è¡ç®ïŒã é¢å¿ã®ããæ
å ±-ãŠãŒã¶ãŒçªå·1ã®ç幎ææ¥ããããããã圢åŒã§å«ãŸããŠããŸãïŒ1984幎10æ10æ¥ïŒ10æïŒã
ç幎ææ¥ã10,000件åéããããšã«åæããŸããã äœããŠãã®ïŒ ãŠãŒã¶ãŒIDã1ããå¿
èŠãªæ°ãŸã§ç¹°ãè¿ããŸãã åé¡ã¯ããã¹ãŠã®IDã«æå¹ãªãããã¡ã€ã«ãããããã§ã¯ãªãããã¹ãŠã®ãŠãŒã¶ãŒãç幎ææ¥ãéããŠããªãããšã§ãã ãããã£ãŠã2ã€ã®ã«ãŠã³ã¿ãŒãå¿
èŠã§ããæåã®ã«ãŠã³ã¿ãŒã¯ãŠãŒã¶ãŒIDãé çªã«ã«ãŠã³ããã2çªç®ã¯å®éã«åéããæéå
ã«åæ¢ããæ¥ä»ã®æ°ãã«ãŠã³ãããŸãã çµéšã«ãããšã10,000ã®æ¥ä»ãååŸããã«ã¯ãçŽ15,000ã®ã¢ã«ãŠã³ããæŽçããå¿
èŠããããŸãã
ãµã€ã¯ã«ãæžããŸãïŒ
void setup() { int count = 0; // for (int i = 1; count <= 10000; i++) { // id, , 10000 String[] user = loadStrings("http://api.vk.com/method/users.get.xml?uids=" + str(i) + "&fields=bdate"); // , id for (int j = 0; j < user.length; j++) { // if (user[j].indexOf("<bdate>") != -1) { // println(i + "\t" + count + "\t" + user[j]); // count++; // 1 } } } exit(); // }
ã«ãŠã³ã¿iã®å€ã¯ãæååã«çœ®ãæãããšã strïŒïŒé¢æ°ã«ãã£ãŠãã©ããããããããšã«æ³šæããŠãã ããã ããŒã¿åãæ°å€ããæååã«å€æããå¿
èŠããããŸãã å³å¯ã«èšãã°ãããã°ã©ã ã¯ãã®æäœãªãã§ç§ãã¡ãæããã®ãç解ããŸãããããã¿ã€ãããå¥ã®ã¿ã€ãã«ããŒã¿ã転éãããããªããšãå¶åŸ¡ããç¿æ
£ãšããŠããã«ãããåãæ¹ãè¯ãã§ãïŒç¶æ³ã«ãã£ãŠã¯ãèªå翻蚳ãæ©èœããŸããïŒ
å¿çè¡ãåæããå Žåã indexOfïŒïŒã¡ãœããã䜿çšããŸãããã®ã¡ãœããã¯ãã¡ãœãããé©çšãããè¡ã®ãã©ã¡ãŒã¿ãŒã§æå®ãããè¡ã®äœçœ®ãè¿ããŸãã è¡ã«ãã©ã¡ãŒã¿ãŒè¡ããªãå Žåãã¡ãœããã¯-1ãè¿ããŸããããã¯ãçŸåšã®è¡ãå¿
èŠãã©ããã確èªããããã«äœ¿çšãããã®ã§ãã
é¢å¿ã®ããããŒã¿ãã³ã³ãœãŒã«ã«è¡šç€ºãããšããè¿œå æ
å ±ãè¿œå ããŸããé²æç¶æ³ãç£èŠããããã®ã«ãŠã³ã¿ãŒã®ã¹ããŒã¿ã¹ã§ãã printlnïŒïŒåºåé¢æ°ã®æ¬åŒ§å
ã®å€æ°ã®å€ã¯ãã¿ãæåãæå³ããæåå"\ t"ã§åºåãããŠããŸãã
ããã§ããã°ã©ã ãå®è¡ãããšãã«ãŠã³ã¿ãŒå€ãæ¥éã«åå²ããããšãããããŸãã ç§ã®å Žåã55ãè¶
ããidãç¹°ãè¿ããåŸã31ã®æ¥ä»ã®ã¿ãåéãããŸããã
ãã®ããããã¹ãŠãæ£åžžã«æ©èœããŠããããã«èŠããŸãããããã°ã©ã ãå°çãããšãã«ãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãããã«åŒ·å¶ããã ãã§ãã ãããè¡ãã«ã¯ã PrintWriterã¯ã©ã¹ã®ãªããžã§ã¯ããäœæããŸãã éåžžã®å€æ°ãšããŠå®£èšãããŠãããååãšããŠãããã«createWriteré¢æ°ïŒãã¡ã€ã«ãã¹ïŒã®å€ãå²ãåœãŠãããŸã ã
PrintWriter p = createWriter("data/bdates.txt")
ãã®å Žåããªããžã§ã¯ãã«ãpããšããååãä»ãããprogram folder / data / bdates.txtããšããã¢ãã¬ã¹ã§ãã¡ã€ã«ãæ·»ä»ããŸããããã«ããããã®ãã¡ã€ã«ã«å¿
èŠãªãã®ãæžã蟌ãããšãã§ããŸãã ãããã©ããã£ãŠããã®ïŒ ãªããžã§ã¯ãã«printlnïŒïŒã¡ãœãããé©çšã§ããŸãããã®ã¡ãœããã¯ãåãååã®é¢æ°ãšåãããã«æ©èœããŸãããã³ã³ãœãŒã«ã§ã¯ãªãæå®ããããã¡ã€ã«ã«ããŒã¿ã衚瀺ããŸãã 次ã®ããã«ãªããŸãã
p.println();
ãã¡ã€ã«ãæäœããåŸããã¡ã€ã«ã®æäœãæ£ããå®äºããå¿
èŠããããŸããããããªããšãæ
å ±ãæžã蟌ãŸããŸããã ããã¯ã次ã®ã¬ã³ãŒãã䜿çšããŠè¡ãããŸãã
p.flush(); p.close();
ãããã®2ã€ã®é¢æ°ã¯ããã¡ã€ã«ãäžç·ã«æ£ããå®æãããããã«åžžã«äœ¿çšãããŸãã ç§ãã¡ã®ããã°ã©ã ïŒ
void setup() { PrintWriter p = createWriter("data/bdates.txt"); // int count = 0; // for (int i = 1; count <= 10000; i++) { // id, , 10000 String[] user = loadStrings("http://api.vk.com/method/users.get.xml?uids=" + str(i) + "&fields=bdate"); // , id for (int j = 0; j < user.length; j++) { // if (user[j].indexOf("<bdate>") != -1) { // p.println(user[j]); // println(count); // count++; // 1 } } } p.flush(); p.close(); // exit(); // }
ããŒã¿ãåéãããšããæååãšidã«ãŠã³ã¿ãŒã®å€ãã³ã³ãœãŒã«ã«åºåããããšãæåŠããŸããïŒã³ã³ãœãŒã«ã«ããŒã¿ãåºåãããããšãããã°ã©ã ãé
ããªãããšããããŸãããããã£ãŠãåéããæ¥ä»ã®ã«ãŠã³ã¿ãŒã§ããå¿
èŠãªãã®ã ãã«å¶éããããšããå§ãããŸãã
ä»ã«äœãå¿
èŠãªã®ã§ããããïŒ ããã°ã©ã ãå®è¡ã§ããŸãïŒ ã¯ãããããã ãªã¢ãŒããµãŒããŒãããŒãªã³ã°ãããšãã¯ããµãŒããŒãå¿çããªãå Žåãããããšã«æ³šæããŠãã ããã ãµãŒããŒã«èŠæ±ãéä¿¡ããå¿çãåŸ
ã£ãŠããããåãåããªããšæ³åããŠãã ããã ãã°ãããããšãããã°ã©ã ã¯ãµãŒããŒãã暪ããã£ãŠããããšå€æããããã«å®è¡ãç¶ç¶ããŸãã ã©ããªãã®ïŒ çµå±ã®ãšããããŠãŒã¶ãŒããŒã¿ãåãåã£ãŠããªããããé
åã¯ç©ºã§ãã ããã°ã©ã ãã¢ã¯ã»ã¹ãããšãããã°ã©ã ã¯ã³ã³ãœãŒã«ã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŠåæ¢ããŸãã ããã¯çºçããªãå¯èœæ§ããããŸãããçºçããå¯èœæ§ããããŸãããã®åŸãããã°ã©ã ãå床å®è¡ãããµãŒããŒã15,000件ã®ãªã¯ãšã¹ããã¹ãŠã«å¿çããããšãåŸ
ã¡ãŸãã
ç²ç®çãªéåœã«äŸåããªãããã«ããšã©ãŒåŠçãèæ¡ãããŸããã ãšã©ãŒã¯æ¬¡ã®ãšã³ããªã§åŠçãããŸãã
try {
ãšã©ãŒåŠçããã°ã©ã ïŒ
void setup() { PrintWriter p = createWriter("data/bdates.txt"); // int count = 0; // for (int i = 1; count <= 10000; i++) { // id, , 10000 String[] user = loadStrings("http://api.vk.com/method/users.get.xml?uids=" + str(i) + "&fields=bdate"); // , id try { for (int j = 0; j < user.length; j++) { // if (user[j].indexOf("<bdate>") != -1) { // p.println(user[j]); // println(count); // count++; // 1 } } } catch (Exception e) {} } p.flush(); p.close(); // exit(); // }
é
åãžã®ã¢ã¯ã»ã¹äžã«ãšã©ãŒãçºçããå ŽåïŒé
åã空ã®å ŽåïŒãã³ãŒãã¯å®è¡ãããŸã...ã³ãŒãã¯å®è¡ããããããã°ã©ã ã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŸãããåæ¢ããŸããã ãšã©ãŒãç¡èŠããŠå
ã«é²ã¿ãŸããå¥ã®ãŠãŒã¶ãŒã®æ
å ±ããªã¯ãšã¹ãããã ãã§ãã ãšã©ãŒã®ã¿ã€ãã¯Exceptionã§ç€ºãããŸã ãããã¯ãçºçãããšã©ãŒãããã£ãããããããšãæå³ããŸãã ããã°ã©ã ã¯ãšã©ãŒã«é¢ããæ
å ±ãæžã蟌ãããã«äœããã®çš®é¡ã®å€æ°ãå¿
èŠãšããããããšã©ãŒã®ã¿ã€ãã®åŸã«eãæžã蟌ãå¿
èŠããããŸãã ãšã©ãŒãåŠçãããšãã«ãã®å€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããããã®å Žåã¯å¿
èŠãããŸããã
2.ããŒã¿ã®äžŠã¹æ¿ã
ããã°ã©ã ãéå§ããŠãããã°ãããããšïŒéåžžã¯30å以å
ïŒãããã°ã©ã ã¯çµäºããã³ã³ãœãŒã«ã«å€§äºãªçªå·10000ã衚瀺ãããŸããããã¯ãããŒã¿ãåéããã䞊ã¹æ¿ããéå§ã§ããããšãæå³ããŸãã ããã¹ããšãã£ã¿ãŒã§ãã¡ã€ã«ãéããäœæ¥ã®çµæã確èªããŸãã
äœãæªãã®ïŒ ãããXMLã¿ã°ãšå
±ã«ãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãã§ããããšãå®å
šã«å¿ããŠããŸããã é¢ä¿ãããŸããïŒ ä»»æã®ããã¹ããšãã£ã¿ãŒã«ã¯ãäžèŠãªæ
å ±ãããã¡ã€ã«ãåé€ã§ããèªå眮ææ©èœããããŸãã å³å¯ã«èšãã°ãããŒã¿åéã®æ®µéã§éå°ãããã°ã©ã ã§ããã£ãããã§ããŸãããååãšããŠãç°¡åããšæéã®ç¯çŽã®ããã«ãå©çšå¯èœãªããŒã«ã䜿çšããã®ã¯æ¥ãã¹ãããšã§ã¯ãããŸããã

ãã¡ã€ã«ãã¯ãªãŒãã³ã°ããããä¿åããŠéããŸãã ä»ãããã°ã©ã ã¯ãããèªãã ãã§ãã
3.ããŒã¿ã®èŠèŠå
ããã§ã¯ã¬ã³ããªã³ã°ãããŸãããã ãŸãããã¡ã€ã«ãéããåæ¥ã«çãŸãããŠãŒã¶ãŒã®æ°ãèšç®ããå¿
èŠããããŸãã ãã¡ã€ã«ãéãã«ã¯ãå€ã䜿ãæ
£ããé¢æ°loadStringsïŒïŒã䜿çšããŸãã ç¹å®ã®æ¥ã«çãŸãããŠãŒã¶ãŒã®æ°ãæ ŒçŽããããã«ãèªç¶æ°ã®2次å
é
åã䜿çšããŸãã
int[][] table = new int[12][31]
é
åã®ãµã€ãºã12ã31ã«æå®ããŸããã1幎ã§12ãæãæ倧31æ¥éã§ãã çè«çã«ã¯ã2æ31æ¥ã«äžäººã®äººéãçãŸããã¹ãã§ã¯ãªãã®ã§ãé
åãæ°ãæéé·ãããããšãå¿é
ããå¿
èŠã¯ãããŸããã
ããã°ã©ã ã¯ã©ã®ããã«æ©èœããŸããïŒ æ¥ä»ãååŸããæ¥ä»ãšæã決å®ãã察å¿ããé
åã»ã«ã1ã€å¢ããå¿
èŠããããŸãã
æååãæ¥ãæã幎ã«åå²ããã«ã¯ã splitïŒïŒã¡ãœããã䜿çšããŸãã æååã®é
åãè¿ããåŒæ°ãšããŠåºåãæååã䜿çšããŸãã
String[] s = "00010010".split("1");
å€
sãé
åã«å²ãåœãŠãŸã
[0] "000" [1] "00" [2] "0"
ããã¯ç§ãã¡ã®å®è·µã«ãšã£ãŠäœãæå³ããŸããïŒ é
åæååãååŸããåºåãæåãšããŠãããæåã§åå²ããŸãã æè¡çãªåé¡ã1ã€ãããŸãããããèšå·ã¯ãä»»æã®èšå·ã®èšå·ãšããŠäºçŽãããŠããŸãã ãããã£ãŠããããã®ä»£ããã« åŒæ°ãšããŠãã\\ããæž¡ããŸãã -ãã®ãããªã¬ã³ãŒãã¯ãå¿
èŠãªãã€ã³ãã·ã³ãã«ã瀺ããŸãã 次ã®ããã«ãªããŸãã
void setup() { String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , } exit(); // }
ããã§ãã»ã«ã«ã¯æ¥ä»[0]ã«æã®æ¥çªå·ãå«ãè¡ãå«ãŸãã æ¥ä»[1]ã«ã¯æçªå·ãå«ãŸããŸãã ããŒãã«é
åã®å¯Ÿå¿ããã»ã«ã1ã€å¢ããå¿
èŠããããŸã ã
table[int(table[1])-1][int(table[0])-1]++;
æ¥ä»ã«å¯Ÿå¿ããã»ã«ã¢ãã¬ã¹ãæå®ããããšã«ããã intïŒïŒé¢æ°ã䜿çšããŠæååãæ°å€ã«å€æãã1ãæžç®ããŸãã ãªããŠããããåãã®ã§ããïŒ æ¬¡ã«ãé
åã®ã»ã«ã®ã«ãŠã³ãã¯ãŒãããå§ãŸããŸãã 12ã®é·ããæå®ããŸãããããã¯ãé
åã®ã»ã«ã«0ã11ã®çªå·ãä»ããããŠããããšãæå³ããŸãã1ã12ã®çªå·ãä»ããããŠããæãšã¯ç°ãªããŸãã
ããã ã ããã§ãããå®éã¯ããã§ã¯ãããŸããã ããã§ããã°ã©ã ãå®è¡ãããšããšã©ãŒãã¹ããŒãããŸãã å®éãããŒã¿ã»ããã¯å®å
šã§ã¯ãããŸããã äœããã®äžæãªçç±ã«ãããç幎ææ¥ãã£ãŒã«ãã®äžéšã®ãŠãŒã¶ãŒã¯ã666.666ã32.13.888888888ã®ãããªãããã€ãªæ°åãæã£ãŠããŸãã ããšãã°ã12æ5æ¥ãé€ããŠçãŸãããŠãŒã¶ãŒã«äŒãããšããã§ããŸãã ãããããœãŒãããã«ã¯ã12ãã倧ããæã®å€ãš31ãã倧ããæ¥ã®å€ãããã³ãŒã以äžã®ãã¹ãŠã®å€ãç Žæ£ããå¿
èŠããããŸãã
if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 }
ããã°ã©ã å
šäœïŒ
void setup() { String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 } } exit(); // }
ããŒã¿ãæçµçã«åéãããŠããã°ã©ã ã®ã¡ã¢ãªã«ä¿åãããã®ã§ãæçµçã«äœæ¥ãéå§ã§ããŸã-æç»ã ãŸããæç»ããè²ã決å®ããŸããã³ãŒãã¬ãŒããã«ãŒã«ã©ãŒVKïŒRGB 54ã99ã142ã䜿ããŸãããæ¯å3ã€ã®å€§åãªæ°åãæžããªãããã«è²å€æ°ã宣èšããŸãã
color c = color(54, 99, 142);
ãŸããç»åã®å¹
ãšé«ãã決å®ããå¿
èŠããããŸãïŒåŸæ¥ãããã°ã©ã ã®æåã®æ®µéã§ïŒã ãããè¡ãã«ã¯ãé¢æ°ãäœæããŸãã
size(, )
å¹
ãšé«ãã¯ã©ã®ãããã§ããïŒ åããŒããããã»ã«ã®å¹
ã40ãã¯ã»ã«ã§ãããã«ã»ã«éã®ã€ã³ãã³ãçšã«1ãã¯ã»ã«ããããšããŸãã å¹
ã®æã延æããŸãã 端ããã®ã€ã³ãã³ãïŒ10ãã¯ã»ã«ïŒãå¿ããªãã§ãã ããã 20 + 41 * 12ã«ãªããŸãã é ã®äžãèªãã ããé»åã¢ããªã±ãŒã·ã§ã³ãéããããªãå Žåã¯ããã®åŒãprintlné¢æ°ã®åŒæ°ãšããŠæžãããšãã§ããŸãïŒ20 + 41 * 12ïŒã ãããŠçããåŸã-512ãããã¯ç»åã®å¹
ã§ãã ã»ã«ã®é«ãã20ãã¯ã»ã«ã§ã端ããåãã€ã³ãã³ããäžããããå Žåã次ã®ããã«ãªããŸãã
size(512, 671)
ããã§ãäžæçã«exitïŒïŒã³ãã³ããåé€ããŸãã ããã°ã©ã ã®æåŸã§ãå®äºåŸã«ããã°ã©ã ãçµäºãããã³ãŒããå®è¡ããŸãã
void setup() { size(512, 671); // background(255); // - String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 } } color c = color(54, 99, 142); // }
ãã¬ãŒã ãµã€ãºãæå®ããåŸãçœãèæ¯ãèšå®ããã³ãã³ããè¿œå ããŸãããè²ã1ã€ã®æ°å€ãšããŠæå®ãããšã0ïŒé»ïŒãã255ïŒçœïŒã®ã°ã¬ãŒã®é°åœ±ãšããŠèªèãããŸãã ããã°ã©ã ãèµ·åãããšãå¿
èŠãªãµã€ãºã®çœãèæ¯ã§ãŠã£ã³ããŠãéãã¯ãã§ãã
æåŸã«æãå§ããŸãããã ã©ããã£ãŠæãã®ïŒ ããŒãã«é
åã調ã¹ãŸã-ã»ã«ã®åè¡ïŒæïŒããã³åè¡ïŒä»æã®æ¥ïŒã«ã€ããŠã é©åãªå Žæãšè²ã§40 x 20ã®é·æ¹åœ¢ãæããŸãäœçœ®Xã¯ã©ã®ããã«èšç®ãããŸããïŒ 10ïŒã€ã³ãã³ãïŒ+ 41ïŒå¹
+ééïŒ* iïŒæã«ãŠã³ã¿ãŒïŒã äœçœ®YïŒ 10ïŒã€ã³ãã³ãïŒ+ 21ïŒé«ã+ééïŒ* jïŒæ¥æ°ã«ãŠã³ã¿ãŒïŒã åè§åœ¢ã¯ã recté¢æ°ïŒxãyãå¹
ãé«ãïŒã§æç»ãããŸãã -
rect(10+41*i, 10+21*j, 40, 20)
ããã°ã©ã ïŒ
void setup() { size(512, 671); // background(255); // - String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 } } color c = color(54, 99, 142); // for (int i = 0; i < table.length; i++) { // for (int j = 0; j < table[i].length; j++) { // rect(10+41*i, 10+21*j, 40, 20); // } } }
ãã®ã³ãŒããå®è¡ãããšãã¹ãããŒã¯ã®ããé·æ¹åœ¢ã§å¥åŠã«æç»ããããã£ãŒã«ããåŸãããŸãã ãŸããæç»ããåã«noStrokeïŒïŒã³ãã³ããè¿œå ããŠãã¹ãããŒã¯ãåé€ããŸãã ã ããã§ãè²ãå¡ããšããŠèšå®ããŸããfillïŒcïŒ;
çŽ æŽãããã æ£æ¹åœ¢ã¯ãçœãééã®ããçŸããéãã¿ã€ã«ã§ã¿ã€ã«åŒµãã«ãªããŸããã 次ã«ãäœããã®æ¹æ³ã§ããŒãã«å€ãå¡ãã€ã¶ãè²ã«ãšã³ã³ãŒãããå¿
èŠããããŸãã ç§ãã¡ã¯éææ§ããã£ãŠãããè¡ããŸãã è²ã®éæ床ã¯0ã255ã®å€ãåããŸãã å¡ãã€ã¶ããæžã蟌ã¿ãŸãïŒcã10ïŒã 埮åŠãªéã¿ããã£ãè²ãäžãã å¡ãã€ã¶ããæžã蟌ã¿ãŸãïŒcã240ïŒã ã»ãŒå®å
šã«é£œåããéè²ã«ãªããŸãã ãããã£ãŠãéæ床ã®ç¯å²ã¯0..255ã§ãã é
åã®å€ã®ç¯å²ã¯ã¯ããã«å€§ããïŒãŸãã¯å°ããïŒã é
åã®æ倧å€ãããã£ãŠãããšããŸãã ãã¡ãããæå°å€ã¯ãŒãã«ãªããŸãã ã¹ã±ãŒã«ãçž®å°ïŒå¢å ïŒãããã®ããã«ãé
åã®å€ãäœããã®æ¹æ³ã§0..255ã®ç¯å²ã«å
¥åããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã ãããé¢æ°ïŒå€ããœãŒã¹ç¯å²ã®éå§ããœãŒã¹ç¯å²ã®çµäºãæ°ããç¯å²ã®éå§ãæ°ããç¯å²ã®çµäºïŒããããŸãã
map(table[i][j], 0, 1000, 0, 255);
ããã§ã¯ãé
åã®æ倧å€ã1000ã§ãããšä»®å®ããŸããããã®åŸã ããŒãã«[i] [j]ã®å€ã1000ã®å Žåãé¢æ°ã¯255ãè¿ããå€ã0ã®å Žåã¯ãŒããè¿ããŸãã
2次å
é
åã®æå°å€ãšæ倧å€ãèšç®ããæ¹æ³ã¯ïŒ 1次å
é
åã®å Žåãããããé¢æ°minïŒïŒããã³maxïŒïŒããããŸãã ãããã䜿çšããŸãã ãæãã®ãµã€ã¯ã«ããã©ã£ãŠãåãæãã®æå°å€ãšæ倧å€ïŒç°å¢ã«ãã£ãŠ1次å
é
åãšããŠèªèãããïŒããé
åã®çŸåšã®æå°å€ãŸãã¯æ倧å€ãæ ŒçŽããå€æ°ãšæ¯èŒããŸãããã ãŸããå¥ã®éèŠãªããšãå¿ããªãã§ãã ããïŒããŒã¿ã»ããã§ééã£ãæ¥ä»ãæ€åºãããããšããããŸããã 誰ããç幎ææ¥ã11æ31æ¥ãŸãã¯2æ30æ¥ã«ç€ºãããšãã§ããŸãã ãã®äºå®ã«æ©ãŸãããªãããã«ãååšããªããã¹ãŠã®æ¥ä»ã®å€ããŒãã«èšå®ããŸãã
table[1][29] = 0; //30 table[1][30] = 0; //31 table[3][30] = 0; //31 table[5][30] = 0; //31 table[8][30] = 0; //31 table[10][30] = 0; //31 int mi = table[0][0]; // int ma = table[0][0]; // for (int i = 0; i < table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) > 0)) { // mi = min(table[i]); // } if (max(table[i]) > ma) { // ma = max(table[i]); // } } println(mi + " " + ma); //
ç§ã®å€ã¯14ãš47ã§ãããå€æ°ã®å€ã䜿çšã§ãããããååãšããŠããã¯éèŠã§ã¯ãããŸããã ããã§ãããŒãã«ã»ã«ã«ã¢ã¯ã»ã¹ãããã³ã«ãã€ãŸã åé·æ¹åœ¢ãæãåã«ãå¡ãã€ã¶ããèšå®ããŸãã
void setup() { size(512, 671); // background(255); // - String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 } } table[1][29] = 0; //30 table[1][30] = 0; //31 table[3][30] = 0; //31 table[5][30] = 0; //31 table[8][30] = 0; //31 table[10][30] = 0; //31 int mi = table[0][0]; // int ma = table[0][0]; // for (int i = 0; i < table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) > 0)) { // mi = min(table[i]); // } if (max(table[i]) > ma) { // ma = max(table[i]); // } } color c = color(54, 99, 142); noStroke(); for (int i = 0; i < table.length; i++) { // for (int j = 0; j < table[i].length; j++) { // fill(c, map(table[i][j], 0, ma, 0, 255)); // rect(10+41*i, 10+21*j, 40, 20); // } } }
? , . , 29 . , , , , ( 14, 0 â , 0 85. . map() , 12, 29 . - , 12, , , 0, . (-5 â 250!), , , . , «» :
void setup() { size(512, 671); // background(255); // - String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 } } table[1][29] = 0; //30 table[1][30] = 0; //31 table[3][30] = 0; //31 table[5][30] = 0; //31 table[8][30] = 0; //31 table[10][30] = 0; //31 int mi = table[0][0]; // int ma = table[0][0]; // for (int i = 0; i < table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) > 0)) { // mi = min(table[i]); // } if (max(table[i]) > ma) { // ma = max(table[i]); // } } color c = color(54, 99, 142); noStroke(); for (int i = 0; i < table.length; i++) { // for (int j = 0; j < table[i].length; j++) { // if (table[i][j] > 0) { fill(c, map(table[i][j], 12, ma, 0, 255)); // rect(10+41*i, 10+21*j, 40, 20); // } } } }

? - 1 . . 300 000 , 1 , . , , , , . . , , table[0][0] . , saveFrame(«frame.jpg»); . .
:
void setup() { size(512, 671); // background(255); // - String[] file = loadStrings("data/bdates.txt"); // int[][] table = new int[12][31]; for (int i = 0; i < file.length; i++) { // String[] date = file[i].split("\\."); // , if ((int(date[1]) <= 12) && (int(date[1]) > 0) && (int(date[0]) <= 31) && (int(date[0]) > 0)) { // table[int(date[1])-1][int(date[0])-1]++; // 1 } } table[0][0] = 0; //1 table[1][29] = 0; //30 table[1][30] = 0; //31 table[3][30] = 0; //31 table[5][30] = 0; //31 table[8][30] = 0; //31 table[10][30] = 0; //31 int mi = table[0][0]; // int ma = table[0][0]; // for (int i = 0; i < table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) > 0)) { // mi = min(table[i]); // } if (max(table[i]) > ma) { // ma = max(table[i]); // } } color c = color(54, 99, 142); noStroke(); for (int i = 0; i < table.length; i++) { // for (int j = 0; j < table[i].length; j++) { // if (table[i][j] > 0) { fill(c, map(table[i][j], 12, ma, 0, 255)); // rect(10+41*i, 10+21*j, 40, 20); // } } } saveFrame("frame.jpg"); // }

ã§ããïŒ , , , . 300 000 (, 100 , â , - Processing), ( ):

! ;]