קאַנער האַרריס: נאָך איך טראַכטן עטלעכע יקסייטינג ווידעא Produced דורך אַ פאַכמאַן קאַנסאַלטאַנסי וואס ניצט ר אַ פּלאַץ אין זייַן אַרבעט. נערייטער: וואָס ס הינטער די סטאַטיסטיק, די אַנאַליטיקס, און די וויסואַליזאַטיאָנס אַז הייַנט ס העלסטע דאַטן סייאַנטיס און געשעפט לעאַדערס פאַרלאָזנ זיך צו מאַכן שטאַרק דיסיזשאַנז? איר זאלט ​​ניט שטענדיק זען עס. אבער עס ס דאָרט. עס ס גערופֿן ר, אָפֿן מקור ר-- די סטאַטיסטיש פּראָגראַממינג שפּראַך אַז דאַטן עקספּערץ די וועלט איבער נוצן פֿאַר אַלץ פון מאַפּינג ברייט געזעלשאַפטלעך און פֿאַרקויף טרענדס אָנליין צו דעוועלאָפּינג די פינאַנציעל און קלימאַט מאָדעלס אַז העלפן פאָר אונדזער עקאָנאָמיעס און קהילות. אבער וואָס פּונקט איז ר און ווו האט ר אָנהייבן? נו ערידזשנאַלי, ר סטאַרטעד דאָ מיט צוויי פּראָפעססאָרס וואס געוואלט אַ בעסער סטאַטיסטיש פּלאַטפאָרמע פֿאַר זייער סטודענטן. אזוי זיי Created איין מאַדאַלד נאָך די סטאַטיסטיש שפּראַך ש זיי, צוזאמען מיט פילע אנדערע, געהאלטן ארבעטן אויף און ניצן ר, קריייטינג מכשירים פֿאַר ר און דערגייונג נייַ אַפּלאַקיישאַנז פֿאַר ר יעדער טאָג. דאַנק צו דעם איז ווערלדווייד קהל מי, ר געהאלטן גראָוינג מיט טויזנטער פון באַניצער-Created ליבראַריעס געבויט צו פאַרבעסערן ר פונקטיאָנאַליטי און מאַסע-סאָורסעד קוואַליטעט וואַלאַדיישאַן און שטיצן פון די מערסט דערקענט אינדוסטריע לעאַדערס אין יעדער פעלד וואָס ניצט אַר וואָס איז גרויס, ווייַל ר איז דער בעסטער אין וואָס עס טוט. באַדינג עקספּערץ געשווינד און לייכט טייַטשן, ינטעראַקט מיט, און וויזשוואַלייז דאַטן ווייַזונג זייער ראַפּאַדלי גראָוינג קהל פון ר ניצערס ווערלדווייד און זען ווי עפֿן מקור ר האלט צו פאָרעם די צוקונפֿט פון סטאַטיסטיש אַנאַליסיס און דאַטע וויסנשאַפֿט. קאַנער האַרריס: גוט, גרויס. אזוי מיין אייגן פּרעזענטירונג וועט זיין אַ ביסל מער ניכטער. עס וועט נישט אַרייַנציען אַז פיל יקסייטינג הינטערגרונט מוזיק. אבער ווי איר געזען אין דעם ווידעא, ר איז סאָרט פון אַ גענעראַל ציל פּראָגראַם שפּראַך. אבער עס איז Created מערסטנס פֿאַר סטאַטיסטיש אַרבעט. אַזוי עס ס דיזיינד פֿאַר סטאַטיסטיק, פֿאַר דאַטן אַנאַליסיס, פֿאַר דאַטן מיינינג. און אַזוי איר קענען זען דעם אין אַ פּלאַץ פון דער פּלאַן ברירות אַז די מייקערז פון ר געמאכט. עס ס דיזיינד פֿאַר לאַרגעלי, מענטשן וואס זענען נישט עקספּערץ אין פּראָגראַממינג, וואס זענען נאָר פּיקינג אַרויף פּראָגראַממינג אויף די זייַט אַזוי זיי קענען טאָן זייער אַרבעט אין געזעלשאַפטלעך וויסנשאַפֿט אָדער אין סטאַטיסטיק אָדער וועלכער. עס האט אַ פּלאַץ פון זייער וויכטיק חילוק פון סי אבער די סינטאַקס און די פּעראַדיימז אַז עס ניצט זענען בראָדלי די זעלבע. און איר זאָל פילן שיין פיל אין שטוב רעכט אַוועק די פלעדערמויז. עס ס אַ ימפּעראַטיוו שפּראַך. דו זאלסט נישט זאָרג אויך פיל וועגן וואָס אויב איר טאָן ניט וויסן די טערמין. אבער עס ס אַ דיסטינגקשאַן צווישן ימפּעראַטיוו, דעקלאַראַטיווע, און Functional. ימפּעראַטיוו פּונקט מיטל איר מאַכן סטייטמאַנץ אַז זענען בייסיקלי קאַמאַנדז. און דעריבער דער יבערזעצער אָדער די קאָמפּיוטער גייט זיי איינער דורך איינער. עס ס וויקלי טייפּט, עס זענען קיין טיפּ דעקלעריישאַנז אין אַר און דעריבער די שורות צווישן פאַרשידענע טייפּס זענען אַ ביסל מער פרייַ ווי זיי זענען אין C, פֿאַר משל. און ווי איך געזאגט עס זענען זייער ברייט פאַסיליטיעס פֿאַר גראַפינג, פֿאַר סטאַטיסטיש אַנאַליסיס, פֿאַר דאַטן מיינינג. דאס זענען ביידע געבויט אין די שפּראַך און, ווי די ווידעא האט געזאגט, טויזנטער פון דריט פּאַרטיי ליבראַריעס אַז איר קענען אָפּלאָדירן און נוצן פּאָטער פון אָפּצאָל מיט זייער פרייַ דערלויבעניש באדינגונגען. אַזוי אין אַלגעמיין, איך'ד רעקאָמענדירן אַז איר קוק אין די צוויי ביכער אויב איר ניטאָ געגאנגען צו אַרבעטן אויף אַר איינער פון זיי איז דער באַאַמטער ר אָנהייבער ס פירן. עס ס מיינטיינד דורך די האַרץ דעוועלאָפּערס פון אַר איר קענען אָפּלאָדירן עס ווידער, פּאָטער פון אָפּצאָל און ליגאַלי אין אַז לינק עס. כל די סליידז זענען געגאנגען צו גיין אַרויף אויף די אינטערנעט, אויף קס50 וועבזייַטל נאָך דעם איז געשען. אַזוי ניט דאַרפֿן צו קאָפּיע זאכן אַראָפּ פראַנטיקאַללי. די אנדערע איינער איז אַ לערנבוך דורך קאָסמאַ שאַליזי, וואס איז אַ סטאַטיסטיק פּראָפעסאָר ביי קאַרנאַגי מעלאַן, גערופֿן אַוואַנסירטע דאַטע אַנאַליסיס פון אַ עלעמענטאַר פּוינט פון View. דאס איז נישט פּרינסיפּלי אַ ר בוך. עס ס אַ סטאַטיסטיק בוך און עס ס אַ דאַטן אַנאַליסיס בוך. אבער עס ס זייער צוטריטלעך צו מענטשן וואס האָבן אַ מאָדיקום פון סטאַטיסטיק וויסן. איך האָבן קיינמאָל גענומען אַ באַאַמטער קורס. איך נאָר וויסן ביץ און ברעקלעך פון פאַרשידן אַלייד סאַבדזשעקץ אַז איך ווע גענומען קאָרסאַז אין. און איך איז געווען ביכולת צו פֿאַרשטיין עס בישליימעס געזונט. כל די Figures זענען געגעבן אין ר זיי זענען געמאכט אין ר און זיי אויך האָבן קאָד ליסטינגס אונטן יעדער רעכענען אַז דערציילן איר ווי איר מאַכן יעדער פיגור מיט ר קאָד. און אַז ס זייער נוציק אויב איר ניטאָ טריינג צו עמיאַלייט עטלעכע ציפער איר זען אין אַ בוך. און ווידער Free Download stat.cmu.edu/cshalizi/ אנטשולדיגט, אַז זאָל זיין צעהאַקן טילדע קשאַליזי. איך וועט מאַכן זיכער צו ריכטיק אַז ווען דער באַאַמטער סליידז גיין אַרויף. / אַדאַפאַעפּאָוו וואָס איז נאָר די אַקראַנים פון דעם בוך טיטל. אַזוי אַלגעמיין קאַוועאַצ-- ר האט אַ פּלאַץ פון קייפּאַבילאַטיז. איך בין נאָר געגאנגען צו קענען צו דעקן די ייבערפלאַך פון אַ פּלאַץ פון זאכן. אויך דער ערשטער חלק פון דער סעמינאַר איז געגאנגען צו זיין עפּעס פון אַ דאַטע דאַמפּ. איך בין גאַנץ נעבעכדיק וועגן אַז. באַסיקאַללי, איך בין געגאנגען צו באַקענען איר צו אַ פּלאַץ פון זאכן רעכט אַוועק די פלעדערמויז, געגאנגען ווי געשווינד ווי מעגלעך. און דעמאָלט מיר באַקומען צו דער שפּאַס טייל, וואָס איז דער דעמאָ ווו איך קענען ווייַזן איר אַלץ אַז מיר'ווע גערעדט וועגן אויף דעם עקראַן. און איר קענען שפּילן אַרום אויף דיין אייגן. אַזוי עס ס געגאנגען צו זיין אַ פּלאַץ פון טעכניש שטאָפּן טראָון זיך אויף דאָ. צי ניט זאָרג וועגן קאַפּיינג אַלע אַז אַראָפּ. מחמת אַ, איר קענען באַקומען אַלע די שטאָפּן אויף די קס50 וועבזייַטל שפּעטער. און ב, עס ס ניט טאַקע אַז וויכטיק צו מעמערייז דעם פון די סליידז. עס ס מער וויכטיק אַז איר באַקומען עטלעכע ינטואַטיוו מעכירעס מיט אים און וואָס קומט פון נאָר פּלייינג אַרום. אזוי וואָס נוצן ר? באַסיקאַללי, אויב איר האָבן אַ פּרויעקט אַז ינוואַלווז מיינינג גרויס דאַטן שטעלט, דאַטע וויזשוואַלאַזיישאַן, איר זאָל נוצן אַר אויב איר ניטאָ טאן קאָמפּליצירט סטאַטיסטיש אַנאַליזעס, וואָס וואָלט זיין שווער צו אין עקססעל, למשל, עס וואָלט אויך זיין גאָאָד-- אויך אויב איר ניטאָ טאן סטאַטיסטיש אַנאַליסיס אַז ס אָטאַמייטיד. זאל ס זאָגן איר ניטאָ מיינטיינינג אַ וועבזייַטל. און איר ווילן צו לייענען די סערווירער קלאָץ יעדער טאָג און צונויפנעמען עטלעכע רשימה, ווי די שפּיץ לענדער וואס דיין ניצערס זענען קומענדיק פון, עטלעכע קיצער סטאַטיסטיק אויף ווי לאַנג זיי פאַרברענגען אויף דיין וועבזייַטל אָדער וועלכער. און איר ווילן צו לויפן דעם יעדער טאָג. איצט אויב איר ניטאָ טאן דעם אין עקססעל, איר'ד האָבן צו גיין צו דיין סערווירער קלאָץ, אַרייַנפיר אַז אין אַ עקססעל דאַטע ספּרעדשיט, לויפן אַלע די אַנאַליסיס מאַניואַלי. מיט ר, איר קענען נאָר שרייַבן איין שריפט. פּלאַן עס צו לויפן יעדער טאָג פון דיין אַפּערייטינג סיסטעם. און דעריבער יעדער נאַכט בייַ 02:00, אָדער ווען איר פּלאַן עס צו לויפן, עס וועט קוקן דורך דיין אינטערנעט פאַרקער פֿאַר אַז טאָג. און דעמאָלט דורך דעם אנדערן טאג, איר וועט האָבן דעם בלאַנק, נייַ מעלדונג אָדער וועלכער מיט אַלע פון ​​די אינפֿאָרמאַציע איר געבעטן פֿאַר. אַזוי בייסיקלי ר איז פֿאַר סיסקאָ פּראָגראַממינג קעגן סיסקאָ אַנאַליסיס. פּרעלימינאַרי איז געשען. זאל ס באַקומען אין דער עמעס זאכן. אַזוי עס זענען דרייַ פאַקטיש טייפּס אין די שפּראַך. עס ס נומעריק טיפּ. עס ס סאָרט פון אַ חילוק צווישן ינטאַדזשערז און Floating ווייזט, אָבער ניט טאַקע. עס ס אַ כאַראַקטער טיפּ, וואָס איז סטרינגס. און עס ס אַ לאַדזשיקאַל טיפּ, וואָס איז באָאָלעאַנס. און איר קענען בייַטן צווישן טייפּס ניצן די פֿעיִקייטן ווי נומעריק, ווי כאַראַקטער, ווי לאַדזשיקאַל. אויב איר רופן, למשל, ווי נומעריק אויף אַ שטריקל, עס וועט פּרובירן צו לייענען אַז שטריקל ווי אַ נומער, די זעלבע וועג אַז אַ2י און סקאַנף טאָן, און סי אויב איר רופן ווי נומעריק אויף אמת אָדער פאַלש עס וועט בייַטן צו 1 אָדער 0. אויב איר רופן ווי כאַראַקטער אויף עפּעס עס וועט גער אַז אין אַ שטריקל פאַרטרעטונג. און דעמאָלט דאָרט זענען וועקטערז און מייטריסיז. אַזוי וועקטערז זענען בייסיקלי 1 דימענשאַנאַל ערייז. זיי זענען וואָס מיר רופן ערייז אין סי מאַטריסעס, 2 דימענשאַנאַל ערייז. און דעמאָלט העכער דימענשאַנאַל ערייז איר קענען האָבן 3, 4, 5 דימענשאַנז אָדער וועלכער פון נומעריק וואַלועס, פון סטרינגס, פון לאַדזשיקאַל וואַלועס. איר אויך האָבן רשימות וואָס זענען אַ מין פון אַססאָסיאַטיווע מענגע. איך וועט באַקומען אין אַז אַ ביסל. אזוי איינער וויכטיק זאַך אַז טריפּס מען אַרויף אין ר איז אַז עס זענען קיין פאַקטיש, ריין אַטאָמישע טייפּס. עס ס קיין פאַקטיש דיסטינגקשאַן צווישן אַ נומער, ווי אַ נומעריק ווערט, און אַ רשימה פון נומעריק וואַלועס. נומעריק וואַלועס זענען אַקטשאַוואַלי די זעלבע ווי די וועקטערז פון לענג 1. און דעם האט אַ נומער פון וויכטיק ימפּלאַקיישאַנז. איינער, עס מיטל אַז איר קענען טאָן דאס זייער לייכט אַז אַרייַנציען ווי אַדינג אַ נומער צו אַ וועקטאָר. ר וועט בייסיקלי ציפער אויס וואָס איר מיינען דורך אַז. און איך וועט באַקומען צו אַז אין אַ רגע. עס אויך מיטל אַז עס ס קיין וועג פֿאַר דעם טיפּ טשעקקער-- צו די מאָס אַז עפּעס ווי אַז יגזיסץ אין ר-- צו זאָגן ווען איר ווע דורכגעגאנגען אין די איין ווערט ווען עס יקספּעקץ אַ מענגע אָדער וויצע ווערסאַ. און וואָס קענען גרונט עטלעכע מאָדנע קאָפּדרייעניש אַז איך געלאָפֿן זיך ווען איך איז געווען ניצן ר בעשאַס מיין זומער אַרבעט. און עס זענען ניט געמישט-טיפּ ערייז. אַזוי איר קענען נישט האָבן אַ מענגע זענען די ערשטער עלעמענטן איז, איך טאָן ניט וויסן, די שטריקל "יוחנן" און די רגע עלעמענט איז נומער 42. אויב איר פּרובירן צו טאָן אַז, דעמאָלט איר וועט באַקומען אַלץ נאָר קאָנווערטעד צו אַ שטריקל. אַזוי מיר האָבן שטריקל יוחנן, שטריקל 42. אַזוי ומגעוויינטלעך סינטאַקטיק פעאַטורעס-- מערסט פון ר סינטאַקס איז זייער ענלעך צו סי עס זענען אַ ביסל וויכטיק חילוק. טייפּינג איז זייער שוואַך. אַזוי עס זענען ניט בייַטעוודיק דעקלעריישאַנז. אַססיגנמענט ניצט די מאָדנע טעות אָפּעראַטאָר ווייניקער ווי מאַקעף. באַמערקונגען זענען מיט די האַש צייכן. איך טרעפן איצט טעג מיר רופן עס האַשטאַג כאָטש אַז ס ניט טאַקע אַקקוראַטע-- נישט די טאָפּל צעהאַקן. מאָדולאַר רעזאַדוז זענען מיט %% וואונדער. ינטעגער אָפּטייל איז מיט% /% וואָס איז זייער שווער צו לייענען ווען עס ס פּראַדזשעקטאַד אַרויף אויף דעם עקראַן. איר קענען באַקומען ריינדזשאַז פון ינטאַדזשערז מיט די קאָלאָן. אַזוי 2,5 וועט געבן איר אַ וועקטאָר פון אַלע די נומערן 2 דורך 5. ערייז זענען איינער-ינדעקסט, וואָס סקרוז אַ פּלאַץ פון מענטשן אַרויף אויב זיי ניטאָ פון מער טיפּיש פּראָגראַממינג שפּראַכן, ווי C, ווו רובֿ דאס זענען נול-ינדעקסט. ווידער, דאָס איז ווו ר ס יערושע ווי אַ שפּראַך פֿאַר ווי ניט פאַכמאַן פּראָוגראַמערז קומט אין. אויב איר ניטאָ אַ סאָוסיאַלאַדזשיסט אָדער אַן עקאָנאָמיסט אָדער עפּעס און איר ניטאָ טריינג צו נוצן ר בייסיקלי ווי אַ אַדדזשונקט צו דיין מער וויכטיק פאַכמאַן אַרבעט, איר ניטאָ געגאנגען צו געפינען איינער-ינדעקסינג אַ ביסל מער נאַטירלעך. מחמת איר אָנהייבן קאַונטינג אין 1 אין וואָכעדיק לעבן, ניט 0. פֿאַר-לופּס, דעם איז ענלעך צו די פאָרעאַטש בויען אין PHP, וואָס איר וועט באַקומען צו לערנען ינ-- שיין באַלד. וואָס איז פֿאַר ווערט אין וועקטאָר און דעמאָלט איר קענען טאָן זאכן מיט ווערט. וילעם: אַז ס קומען אַרויף אין לעקציע. קאַנער האַרריס: אָה, אַז ס קומען אַרויף לעקציע, ויסגעצייכנט. וילעם: די אַסיינמאַנט, איז עס געמיינט צו פונט פון רעכט צו לינקס? קאַנער האַרריס: פֿון רעכט צו לינקס, יאָ. איר קענען טראַכטן פון עס ווי די ווערט אויף די רעכט שאַווד אין די בייַטעוודיק אויף די לינקס. וילעם: גוט. קאַנער האַרריס: און ענדלעך פֿונקציע סינטאַקס איז אַ ביסל מאָדנע. איר האָבן די פֿונקציע נאָמען FOO, אַסיינד צו דעם קיווערד פֿונקציע, נאכגעגאנגען דורך אַלע די טענות און דעריבער די גוף פון די פֿונקציע נאָך אַז. ווידער די זאכן קען ויסקומען אַ ביסל מאָדנע. זיי וועט ווערן רגע נאַטור נאָך איר אַרבעט מיט די שפּראַך פֿאַר אַ ביסל. אַזוי וועקטערז, די וועג איר בויען אַ וועקטאָר איז איר טיפּ C, וואָס איז אַ קיווערד, דעמאָלט אַלע די נומערן איר ווילן אָדער סטרינגס אָדער וועלכער. טענות אויך זיין וועקטערז. אבער די ריזאַלטינג מענגע געץ פלאַטטענעד. אַזוי איר קענען נישט האָבן ערייז ווו עטלעכע יסודות זענען איין נומערן און עטלעכע יסודות זענען ערייז זיך. אַזוי אויב איר פּרובירן צו בויען אַ מענגע געווען דער ערשטער עלעמענט איז 4 און די רגע עלעמענט איז די מענגע 3,5 איר וועט נאָר באַקומען אַ דרייַ יסודות מענגע, 4,3,5. זיי קענען ניט זיין געמישט טיפּ. אויב איר פּרובירן צו לייענען אָדער שרייַבן אַרויס פון די גווול פון אַ וועקטאָר איר וועט באַקומען דעם ווערט גערופֿן נאַ אַ וואָס שטייט פֿאַר אַ פעלנדיק ווערט. און דעם איז בדעה פֿאַר ווי סטאַטיסטיסיאַנס וואס זענען ארבעטן מיט דערענדיקט דאַטע שטעלט. אויב איר צולייגן אַ פֿונקציע אַז ס געמיינט צו נעמען נאָר איין נומער צו אַ מענגע דעמאָלט וואָס איר וועט באַקומען איז, די פֿונקציע וועט מאַפּע איבער די מענגע. אַזוי אויב דיין פֿונקציע לאָזן ס זאָגן נעמט אַ נומער און קערט עס קוואַדראַט. איר צולייגן אַז צו די מענגע 2,3,5 וואָס איר וועט באַקומען איז די מענגע 4,9,25. און אַז ס זייער נוציק ווייַל עס מיטל איר טאָן ניט האָבן צו שרייַבן פֿאַר לופּס פֿאַר טאן זייער פּשוט זאכן ווי אַפּלייינג אַ פֿונקציע צו אַלע מיטגלידער פון אַ דאַטן שטעלן. וואָס אויב איר ניטאָ ארבעטן מיט גרויס דאַטן שטעלט, איר האָבן צו טאָן אַ פּלאַץ. ביינערי פֿעיִקייטן זענען געווענדט פּאָזיציע דורך פּאָזיציע. איך וועט באַקומען אין אַז. איר קענען צוטריט זיי מיט ערייז אָדער וועקטערז מיט קוואַדראַט בראַקאַץ. אַזוי וועקטאָר נאָמען קוואַדראַט בראַקאַץ 1 וועט געבן איר די ערשטער עלעמענט. וועקטאָר נאָמען קוואַדראַט בראַקאַץ 2 וועט געבן איר די רגע עלעמענט. איר קענען פאָרן אויף אַ וועקטאָר פון ינדאַסיז און איר וועט באַקומען צוריק אויס בייסיקלי אַ סאַב פאַקטאָר. אַזוי איר קענען טאָן וועקטאָר נאָמען בראַקאַץ C, 2.4 און איר וועט באַקומען אויס אַ וועקטאָר מיט די רגע און פערט עלעמענטן פון די מענגע. און אויב איר ווילן נאָר אַ שנעל קיצער סטאַטיסטיק פון אַ וועקטאָר ווי ינטערקוואַרטילע קייט, מידיאַן, מאַקסימום, וועלכער, איר קענען נאָר טיפּ קיצער וועקטאָר נאָמען און באַקומען אַז אויס. אַז ס ניט טאַקע נוציק אין פּראָגראַממינג אָבער אויב איר ניטאָ פּלייינג אַרום די דאַטע שטעלט, עס ס האַנטיק. מאַטריסעס-- בייסיקלי העכער דימענשאַנאַל ערייז. זיי האָבן דעם ספּעציעל נאָוטיישאַן סינטאַקס. מאַטריץ מיט אַ מענגע אַז געץ אָנגעפילט ינ-- נעבעכדיק, מאַטריץ מיט דאַטע, נומער פון ראָוז, נומער פון קאָלומנס. ווען איר האָבן עטלעכע דאַטע, עס צו זאַט אין די מענגע בייסיקלי געגאנגען שפּיץ צו דנאָ ערשטער. דעמאָלט לינקס צו רעכט. אַזוי, ווי אַז. און ר האט געבויט אין מאַטריץ מולטיפּליקאַטיאָנס, ספּעקטראַל דיקאַמפּאָוזישאַן, דיאַגאָנאַליזאַטיאָן, אַ פּלאַץ פון זאכן. אויב איר ווילן העכער דימענשאַנאַל ערייז, אַזוי 3, 4, 5, אָדער וועלכער דימענשאַנז איר קענען טאָן אַז. די סינטאַקס איז מענגע טונקל יקוואַלז C, דעמאָלט דער רשימה פון די דימענשאַנז. אזוי אויב איר ווילן אַ 4 דימענשאַנאַל מענגע מיט דימענשאַנז 4, 7, 8, 9, די מענגע, טונקל יקוואַלז C (4,7,8,9). איר צוטריט איין וואַלועס מיט בראַקיץ ערשטער פּאָזיציע קאָמע רגע פּאָזיציע. איר קענען באַקומען גאנצע סלייסיז פון ראָוז אָדער קאָלומנס. מיט דעם דערענדיקט סינטאַקס עס ס נאָר רודערן נומער קאָמע אָדער קאָמע זייַל נומער. אַזוי רשימות זענען אַ מין פון פֿאַרבונדן מענגע. זיי האָבן זייער אייגן סינטאַקס דאָ. ווידער טאָן ניט פראַנטיקאַללי נאָכמאַכן אַלע דעם אַראָפּ. דאס איז נאָר אַזוי אַז מען געגאנגען דורך די סליידז שפּעטער האָבן דעם אַלע אין אַ פייַן דערמאָנען. און דאָס וועט ווערן זייער נאַטירלעך אַמאָל איך אַקטשאַוואַלי גיין דורך די דעמאָס. אַזוי רשימות אַ בייסיקלי פֿאַרבונדן ערייז. איר קענען צוטריט וואַלועס מיט רשימה נאָמען, דאָלאַר צייכן, שליסל. אַזוי אויב דיין רשימה איז געהייסן FOO, דעמאָלט איר קענען צוטריט עס ווי אַז. איר קענען באַקומען אַ גאַנץ שליסל-ווערט פּאָר דורך פּאַסינג אין די קוואַדראַט קאַנטיקער אינדעקס. אויב איר לייענען פון אַ ניט-עגזיסטאַנט שליסל, איר וועט באַקומען נאַל. עס וועט ניט טעות. זאַך איז, ר וועט טאָן ווי פיל מיט נאַל ווי עס קענען. און דעם קענען מיינען אַז אויב איר ניטאָ ניט יקספּעקטינג צו באַקומען נאַל אויס פון עטלעכע רשימה לייענען, איר וועט באַקומען עטלעכע אַנפּרידיקטאַבאַל ערראָרס ווייַטער אַראָפּ די שורה. דאס געשען צו מיר מיין זומער אַרבעט ווען איך געווען ניצן ר ווו איך געביטן ווי אַ זיכער רשימה איז געווען Defined אין איין אָרט אָבער האט נישט טוישן שפּעטער אויף די קאָד אַז לייענען וואַלועס פון עס. און אַזוי וואָס געשען איז איך איז געווען לייענען נאַל וואַלועס אויס פון דעם רשימה, פּאַסינג זיי אין פֿעיִקייטן, און ווייל זייער צעמישט ווען איך גאַט אַלע סאָרץ פון ראַנדאָם ינפיניטיעס קראַפּינג אַרויף אין דעם פֿונקציע. ווייַל אויב איר צולייגן זיכער מאַקסימום אָדער מינימום פֿעיִקייטן צו נאַל, איר וועט באַקומען אַנלימאַטאַד וואַלועס אויס. דאַטאַ ראָמען, זיי ניטאָ אַ סובקלאַסס פון רשימה. יעדער ווערט איז אַ וועקטאָר פון די זעלבע לענג. און זיי ניטאָ געניצט פֿאַר פּריזענטינג, בייסיקלי, דאַטע טישן. עס ס דעם יניטיאַליזאַטיאָן סינטאַקס. דעם וועט אַלע, ווידער, זייַן פיל קלירער ווען איר באַקומען צו די דעמאָ. און די פייַן זאַך וועגן דאַטע ראָמען איז אַז איר קענען געבן נעמען צו אַלע די קאָלומנס און נעמען צו אַלע די ראָוז. און אַזוי אַז מאכט אַקסעסינג זיי אַ ביסל פריענדליער. אויך דעם איז ווי רובֿ פֿעיִקייטן וואָס לייענען אין דאַטן פון עקססעל ספּרעדשיץ אָדער פֿון טעקסט טעקעס, למשל, וועט לייענען אין זייער דאַטע. זיי וועט לייגן עס אין עטלעכע סאָרט פון דאַטן ראַם. אַזוי פונקטיאָנס-- די פֿעיִקייטן סינטאַקס איז אַ ביסל טשודנע. ווידער עס ס דער נאָמען פון די פֿונקציע, באַשטימען, דעם קיווערד פונקציאָנירן און דעמאָלט די רשימה פון טענות. אַזוי עס זענען עטלעכע פייַן זאכן וועגן ווי פֿעיִקייטן אַרבעט דאָ. פֿאַר איינער, איר קענען טאקע באַשטימען Default וואַלועס צו זיכער טענות. אזוי איר קענען זאָגן ר 1 עקוואַלס-- איר קענען זאָגן FOO איז אַ פֿונקציע ווו ר 1 יקוואַלז עפּעס דורך ניט ויסצאָלן אויב דער באַניצער ספּעסיפיעס קיין טענות. אַנדערש, עס ס וואָס ער שטעלן אין. און דאָס איז זייער האַנטיק ווייַל אַ פּלאַץ פון אונדזער פֿעיִקייטן האָבן אָפֿט דאַזאַנז אָדער הונדערטער פון טענות. לעמאָשל די אָנעס פֿאַר פּלאַטינג Graphs אָדער פּלאַטינג צעוואַרפן פּלאַץ האָבן טענות אַז קאָנטראָל אַלץ פֿון דעם טיטל און דעם אַקס לאַבעלס צו די קאָליר פון ראַגרעשאַן שורות. און אַזוי אויב איר טאָן ניט ווילן צו מאַכן מענטשן ספּעציפיצירן יעדער איין איינער פון די הונדערטער פון טענות קאַנטראָולינג יעדער איין אַספּעקט פון אַ פּלאַנעווען אָדער אַ ראַגרעשאַן אָדער וועלכער, עס ס פייַן צו האָבן די ניט ויסצאָלן וואַלועס. און דעמאָלט איר קענען אַקטשאַוואַלי שרייַבן ווי איר געזען צוריק דאָ. אָדער געפֿינען אַ בעסער משל. ווען איר רופן פֿעיִקייטן איר קענען טאקע רופן זיי ניצן די אַרגומענט נעמען. אַזוי דאָ ס אַ בייַשפּיל פון די מאַטריץ קאַנסטראַקטער. עס נעמט דרייַ טענות. וסואַללי איר האָבן דאַטע, וואָס איז אַ וועקטאָר. איר האָבן ען רודערן, וואָס איז די נומער פון ראָוז. איר האָבן ען קאָלס-- נומער פון קאָלומנס. די זאַך איז אויב איר טיפּ ען רודערן יקוואַלז וועלכער און ן קאָל יקוואַלז וועלכער ווען איר ניטאָ פאַך דעם פֿונקציע, איר קענען טאקע פאַרקערט זיי. אַזוי איר קענען שטעלן ען קאָל ערשטער און ען רודערן רגע און עס וועט מאַכן קיין חילוק. אַזוי אַז ס אַ פייַן ביסל שטריך. האט ימפּאָרט און עקספּאָרט. דעם קענען ווערן געטאן, בייסיקלי. עס זענען אויך פאַסיליטיעס צו שרייַבן אויס אַרביטראַריש ר אַבדזשעקס צו אַ ביינערי טעקע און דעמאָלט לייענען זיי צוריק אין שפּעטער. וואָס איז האַנטיק אויב איר ניטאָ טאן אַ גרויס ינטעראַקטיוו סעסיע ר און איר דאַרפֿן צו ראַטעווען דאס זייער געשווינד. דורך ניט ויסצאָלן ר האט אַ ארבעטן Directory וואָס טעקעס באַקומען געשריבן אויס אין און לייענען צוריק אין פון. איר קענען זען אַז מיט געטווג, טוישן עס מיט סעטדוו. גאָרנישט ספּעציעל טשיקאַווע דאָ אַזוי איצט די פאַקטיש סטאַטיסטיק סטופפ-- מולטילינעאַר ראַגרעשאַן. אזוי די געוויינטלעך סינטאַקס איז אַ ביסל קאָמפּליצירט. דער מאָדעל איז אַ גרויס כייפעץ בייסיקלי. עס געץ אַסיינד צו לם, וואָס איז אַ פֿונקציע רופן. דער ערשטער עלעמענט, די י טילדע קס 1 פּלוס וועלכער. מיין סינטאַקס דאָ איז אַ ביסל קאָנפוסינג. איך בין גאַנץ נעבעכדיק, דעם איז דער סטאַנדאַרט וועג אַז קאָמפּיוטער וויסנשאַפֿט ביכער טאָן דעם. אבער עס איז אַ ביסל טשודנע. אַזוי בייסיקלי, עס ס לם קלאַמערן, ערשטער נומער איז וואַריאַבלע-- נעבעכדיק, אָפענגיק בייַטעוודיק טילדע קס 1 פּלוס קס 2 פּלוס אָבער פילע זעלבשטענדיק וועריאַבאַלז איר האָבן. און דעריבער די קענען אָדער זיין וועקטערז, אַלע די זעלבע לענג. אָדער זיי קענען זייַן זייַל כעדערז אין אַ דאַטע ראַם אַז איר נאָר ספּעציפיצירן אין דער רגע אַרגומענט דאַטע ראַם. איר קענען אויך ספּעציפיצירן אַ מער קאָמפּליצירט פאָרמולע אַזוי איר טאָן ניט האָבן צו לינעאַרלי רעגרעסס אַ איין אָפענגיק בייַטעוודיק, אָדער איינער וועקטאָר אויף אַ פֿאַר-יגזיסטינג וועקטאָר. איר קענען טאָן, למשל, אַ וועקטאָר קאָמפּאָנענט און סקווערד פּלוס 1 און רעגרעסס אַז קעגן די קלאָץ פון עטלעכע אנדערע וועקטאָר. איר קענען דרוקן סאַמעריז פון די מאָדעל מיט דעם באַפֿעל גערופֿן סוממאַרי-- נאָר קיצער פּאַרענס מאָדעל. ווידער עפּעס אַנדערש איך זאָל דערקלערן. עפּעס אַנדערש וואס וועט באַקומען קערעקטאַד ווען די סליידז גיין אַרויף אויף די אינטערנעט. אויב איר נאָר ווילן צו רעכענען אַ פּשוט קאָראַליישאַן איר קענען נוצן קאָראַליישאַן וועקטאָר 1 וועקטאָר 2 פֿונקציע האַרץ. אופֿן איז דורך ניט ויסצאָלן פּירסאַן קאָראַליישאַנז. יענע זענען די סטאַנדאַרט אָנעס איר קענען טאָן. עס אויך ספּעאַרמאַן און קענדעלל קאָראַליישאַנז וואָס זענען עטלעכע פאַרשיידנקייַט פון גלאבאלע סדר קאָראַליישאַן. נו זיי טאָן ניט רעכענען פּראָדוקט מאָומאַנץ צווישן די וועקטערז זיך, אָבער פון דער וועקטאָר ס גלאבאלע אָרדערס. איך וועט דערקלערן אַז שפּעטער. וילעם: שנעל קשיא קאָננער האַרריס: שור. וילעם: אזוי ווען איר ניטאָ קאַלקיאַלייטינג פֿאַר די פּשוט קאָראַליישאַנז טאָן איר יבערנעמען אַז עס ס אַ סטאַטיסטיש באַטייַט צו די קאָראַליישאַן? קאָננער האַרריס: איר טאָן ניט האָבן צו. אַ לם איז בייסיקלי נאָר אַ מאַשין. עס וועט נעמען אין צוויי זאכן און עס וועט שפּייַען אויס קאָעפפיסיענץ פֿאַר דער בעסטער פּאַסיק ליניע. עס אויך מעלדעט נאָרמאַל ערראָרס אויף די קאָעפפיסיענץ. און עס וועט זאָגן איר, ווי איז די ינערסעפּט סטאַטיסטיקאַלי באַטייַטיק אָדער חילוק פון 0. איז די שיפּוע פון ​​די בעסטער פּאַסיק שורה סטאַטיסטיקאַלי אַנדערש פֿון נול, און סעטעראַ. אזוי עס אַסומז גאָרנישט, איך טראַכטן איז בעסטער ענטפער צו דיין קשיא. קעשורע. פּלאָטטינג-- אַזוי די הויפּט סיבה איר זאָל נוצן ר, ווי מולטילינעאַר ראַגרעשאַן. באַסיקאַללי יעדער שפּראַך האט עטלעכע מעכירעס פֿאַר וואָס. און האָנעסטלי ר ס סינטאַקס פֿאַר ראַגרעשאַן איז אַ ביסל אַרקיין. אבער פּלאַטינג איז ווו עס טאַקע שיינט. די וואָרכאָרסע פֿונקציע איז פּלאַנעווען און עס נעמט צוויי וועקטערז, רענטגענ און י. און דעריבער דער עלליפּסעס שטייט פֿאַר אַ זייער גרויס נומער פון אַפּשאַנאַל טענות אַז קאָנטראָלירן אַלץ פון טיטלען צו פֿאַרבן פון פאַרשידן שורות אָדער פאַרשידן ווייזט, צו דעם טיפּ פון פּלאַנעווען. איר קענען האָבן צעוואַרפן פּלאַץ אָדער שורה פּלאַץ. [ינאָדאַבאַל] 2 וועקטערז פון די זעלבע לענג. איר קענען גיינ פריער דעם מיט צוטשעפּען דאַטע ראַם אין אייער שריפט. און דעם וועט לאָזן איר נאָר נוצן זייַל כעדערז אָנשטאָט באַזונדער וועקטערז. איר קענען לייגן בעסטער פּאַסיק שורות און היגע ראַגרעשאַן קורוועס צו אייער גראַפיק. די קאַמאַנדז ליסטעד דאָ, אַב שורה און שורות, דורך ניט ויסצאָלן די באַקומען געשריבן אין קנאַל אַרויף פֿענצטער ווייַל עס אַסומז אַז איר 'רע ניצן ר ינטעראַקטיוועלי. אויב איר ניטאָ ניט איר קענען שרייַבן צוויי טעקעס אַז זענען אין טאַקע קיין פֿאָרמאַט איר'ד ווי. אנטשולדיגט, איך האב אַ טייפּאָו איך נאָר איינגעזען. אויב איר ווילן צו עפענען אן אנדער גראַפיקאַל מיטל איר קענען נוצן דעם פֿונקציע גערופֿן פּנג אָדער דזשפּעג אָדער אַ פּלאַץ פון אנדערע בילד פֿאָרמאַטירונגען. און איר קענען שרייַבן Graphs צו וועלכער טעקע נאָמען איר ספּעציפיצירן. צו באָטל מאַכן אַז איר האָבן צו וסע-- איך האט ניט שרייַבן דעם אין די סלידע-- אָבער עס ס אַ פֿונקציע גערופֿן דעוו פּונקט אַוועק וואָס נעמט קיין טענות. דעמאָלט דאָרט זענען פאַסיליטיעס פֿאַר 3 ד פּלאַטינג און פֿאַר קאַנטור פּלאַטינג אויב איר ווילן צו מאַכן Graphs פון צוויי זעלבשטענדיק וועריאַבאַלז. איך וועל נישט באַקומען אין די רעכט איצט. עס זענען אויך עטלעכע פאַסיליטיעס פֿאַר אַנאַמיישאַן יענע זענען יוזשאַוואַלי מיינטיינד דורך דריט פּאַרטיעס. איך האָבן געטאן אַנאַמיישאַנז מיט ר Graphs, אָבער איך האב נישט געניצט די דריט פּאַרטיי לייברעריז. אַזוי איך קענען ניט טאַקע באַווייַזן צו ווי גוט זיי זענען. וואָס איך רעקאָמענדירן אויב איר ווילן צו מאַכן אַנאַמיישאַנז ניצן ר איז איר קענען שרייַבן אויס אַלע פון די ראָמען פֿאַר די אַנאַמיישאַנז און דעמאָלט איר קענען נוצן אַ דריט פּאַרטיי פּראָגראַמ-- טיפּיש אָנעס זענען גערופֿן פפמפּעג אָדער ימאַגעמאַגיקק-- צו שטאָך אַלע פון ​​דיין ראָמען אין איין אַנאַמיישאַן. אַזוי צייַט פֿאַר דעמאָ. אַזוי אויב איר ניטאָ ניצן קיין יוניקס ווי סיסטעם וואָס איז לינוקס בוירקלי אָבער וואס ניצט בוירקלי. אַס רענטגענ עפענען אַ וואָקזאַל פֿענצטער און טיפּ ר אין די באַפֿעל פּינטלעך. אויב איר האָבן ר סטודיע אָדער די ווי, וואָס אויך מעשים. פֿאַר ווינדאָוז ניצערס איר זאָל זיין ביכולת צו געפֿינען ר אין דיין אָנהייב מעניו. עס זאָל זיין גערופֿן עפּעס ווי ר קס 64 3 פונט וועלכער. עפֿן אַז אַרויף דאָרט. אַזוי איצט לאָזן מיר נאָר עפענען אַ וואָקזאַל פֿענצטער. אַלע רעכט, זוכן. וילעם: קאַמאַנד-אָרט קאָננער האַרריס: באַפֿעל-אָרט, דאַנקען איר. איך טאָן ניט אָרדאַנעראַלי נוצן מאַקס. טערמינאַל, ווייַזן נייַ פֿענצטער. ניו פֿענצטער איז סעטטינגס יקערדיק, אַר אַזוי איר זאָל באַקומען אַ באַגריסונג אָנזאָג, עפּעס ווי דעם. אַזוי איך בין ניצן ר ינטעראַקטיוועלי. איר קענען אויך שרייַבן ר סקריפּס פון קורס. באַסיקאַללי סקריפּס לויפן די פּינטלעך זעלביקער וועג ווי אויב איר זענען געזעסן אין די קאָמפּיוטער טייפּינג אין יעדער שורה איין אין אַ צייַט. אזוי לאָזן ס אָנהייב דורך מאכן אַ וועקטאָר. א פייַל C 1, 2. 1, 2, 4. גוט, זיכער. איך קענען מאַכן די שריפֿט גרייס ביגער. וילעם: קאַמאַנד-פּלוס קאָננער האַרריס: קאַמאַנד-פּלוס. קאַמאַנד-פּלוס. אַלע רעכט, ווי ס וואָס? גוט? קעשורע. אזוי לאָזן ס אָנהייב דורך דיקלערינג אַ וועקטאָר רשימה. צי אַ, פייַל, C 1,2,4. מיר קענען זען אַ. צי ניט זאָרג וועגן דער קאַנטיקער עס. די בראַקאַץ ביסט אַזוי אויב איר דרוקן אויס זייער לאַנג ערייז, מיר קענען ווו איר זענט. איין בייַשפּיל וואָלט זיין אויב איך נאָר ווילן קייט 2-200. אויב איך געדרוקט אַ זייער לאַנג מענגע, די בראַקאַץ זענען נאָר אַזוי איך קענען האַלטן שפּור פון וואָס אינדעקס מיר ניטאָ אויף אויב איך בין קוקן דורך דעם וויזשוואַלי. אַזוי מייַלע, מיר האָבן אַ. אַזוי איך געזאגט פריער אַז ערייז ינטעראַקט זייער נייסלי מיט, למשל, ונאַרי אַפּעריישאַנז ווי דעם. אַזוי וואָס איר טראַכטן איך וועט באַקומען אויב איך טיפּ אַ פּלוס 1? יאָ. רעכט, איצט איך וועט מאַכן דעם פאַרשידענע מענגע. זאל ס זאָגן ב C 20,40, 80. אַזוי וואָס טאָן איר טראַכטן דעם באַפֿעל וועט טאָן? לייג צו די יסודות. און אַזוי בייסיקלי אַז ס וואָס עס טוט. אזוי דעם איז שיין באַקוועם. אזוי איך ווי וועגן איך טאָן דעם. C איז, לאָזן ס זאָגן, 6 מאל 1-10. אַזוי וואָס טאָן איך ווילן צו זען קאַנטיינד, טאָן איר טראַכטן? אַזוי אַלע מאַלטאַפּאַלז פון זעקס. איצט, וואָס טאָן איר טראַכטן וועט פּאַסירן אויב איך טאָן דעם? איך וועט מאַכן דעם אַ ביסל קלירער, C, C. אַזוי וואָס כאַפּאַנז, טאָן איר טראַכטן, אויב איך טאָן דעם? אַ פּלוס C. [ינאָדאַבאַל] וילעם: אָדער אַ טעות אָדער עס נאָר מוסיף די ערשטער דרייַ עלעמענטן. קאָננער האַרריס: ניט גאַנץ. דעם איז וואָס מיר גאַט. וואָס כאַפּאַנז איז אַ קירצער מענגע, אַ, גאַט סיקלעד. אַזוי מיר גאַט 124, 124, 124. יאָ. און בייסיקלי, איר קענען מיינונג דעם נאַטור איידער, אַ פּלוס 1, ווי אַ סובקלאַסס פון דעם נאַטור, ווו די שאָרטיסט מענגע איז נאָר דער נומער 1, וואָס איז אַ איין עלעמענט מענגע. איך נאָר זייַן געזאגט וועקטאָר אַלע די מאָל אַנשטאָט פון מענגע, ווייַל אַז ס וואָס די ר דאַקיומענטיישאַן יוזשאַוואַלי טוט. עס ס אַ ינגריינד C מידע. גוט, און אַזוי איצט מיר האָבן דעם מענגע. אַזוי מיר האָבן דעם מענגע, C. מיר קענען באַקומען קיצער סטאַטיסטיק אויף C, קיצער C. און אַז ס פייַן. אַזוי איצט לאָזן ס טאָן עטלעכע מאַטריץ זאכן. זאל ס זאָגן עם איז אַ מאַטריץ. זאל ס מאַכן עס אַ דרייַ דורך דרייַ איינער. אַזוי נראָווס יקוואַלז 3, און נקאָלס יקוואַלז 3. און פֿאַר דאַטן זאל ס דאָ-- אַזוי וואָס טאָן איר טראַכטן דעם איז געגאנגען צו טאָן? רעכט, עס ס די ווייַטער איינער. עס ס נראָוו און נקאָלומן. אַזוי וואָס איך ווע געטאן איז איך ווע דערקלערט אַ דרייַ דורך דרייַ מאַטריץ און איך ווע דורכגעגאנגען אין אַ נייַן-עלעמענט מענגע. אזוי די לאָגאַריטהם פון אַלע די עלעמענטן איינער דורך נייַן. און אַלע יענע וואַלועס פּלאָמבירן אַרויף די אַררייַ-- נעבעכדיק? וילעם: יענע זענען באַזע 10 לאָגס? קאָננער האַרריס: ניין, קלאָץ איז נאַטירלעך לאָגאַריטהמס, אַזוי באַזע און. יאָ, אויב איר געוואלט באַזע 10 קלאָץ, איך טראַכטן איר'ד האָבן צו קלאָץ וועלכער, צעטיילט דורך קלאָץ 10. און אַזוי די דאַטן פון די [ינאָדאַבאַל] נאָר צו זאַט אַרויף די מענגע, אַזוי שפּיץ צו דנאָ, דעמאָלט לינקס צו רעכט. און אויב איר געוואלט צו טאָן עטלעכע אנדערע מענגע, לאָזן ס זאָגן N איז מאַטריץ. זאל ס טאָן, איך טאָן ניט וויסן, 2-13. אָדער איך וועט טאָן עפּעס מער טשיקאַווע. איך וועט טאָן 2-4. נראָוו יקוואַלז, לאָזן ס זאָגן, 3. נקאָל יקוואַלז 4. ען. אַזוי מיר ווע גאַט דעם. און איצט אויב מיר ווילן צו מערן די, מיר וואָלט טאָן N פּראָצענט מאל פּראָצענט, ווייַל אַז ס ן. און מיר האָבן מאַטריץ פּראָדוקטן. דורך זיי וועג, האט איר זען ווי ווען איך דערקלערט ן, די 2-4 וועקטאָר גאַט סיקלעד ביז עס אָנגעפילט אַרויף אַלע פון ​​N? אויב איר געוואלט צו נעמען עיגענוואַלוע דיקאַמפּאָוזישאַן, דעם איז עפּעס מיר קענען טאָן זייער לייכט. מיר קענען טאָן אייגן ן. און אַזוי דאָס איז אונדזער ערשטער טרעפן מיט אַ רשימה. אזוי אייגן N איז אַ רשימה מיט צוויי שליסלען. וואַלועס, וואָס איז דעם מענגע דאָ. און וועקטערז, וואָס איז דעם מענגע דאָ. אַזוי אויב איר געוואלט צו עקסטראַקט, זאָגן, דעם דריטן זייַל פון די עיגענוועקטאָרס מאַטריץ, ווייַל די עיגענוועקטאָרס זענען זייַל וועקטערז. אַזוי מיר קענען טאָן מער אייגן N דאָלאַר צייכן וועקטערז, קאָמע 3, פון [ינאָדאַבאַל]. איבער. איז אַז, ווי איר זאל דערוואַרטן. דעריבער זאָגן N מאל פּראָצענט מאל מער. אזוי דער רעזולטאַט דאָ אַוואַדע קוקט ווי אויב מיר גענומען די דריט עיגענוואַלוע דאָ, וואָס קאָראַספּאַנדז מיט די דריט עיגענוועקטאָר. עס נאָר געמערט אַלץ אין דעם עיגענוועקטאָר, קאָמפּאָנענט-קלוג, דורך די עיגענוואַלוע. און אַז ס וואָס מיר וואָלט דערוואַרטן, ווייַל אַז ס וואָס עיגענוואַלועס זענען. האט ווער עס יז דאָ נישט גענומען לינעאַר אַלגעבראַ? א פּאָר מענטשן, גוט. נאָר דרייען דיין סייכל אַוועק פֿאַר אַ ביסל. און טאַקע אויב מיר נעמען אייגן N דאָלאַר צייכן וואַלועס 3 מאל מער, געזונט באַקומען די זעלבע זאַך. עס ס פֿאָרמאַטירט אנדערש ווי אַ רודערן וועקטאָר אָנשטאָט אַ זייַל וועקטאָר, אָבער גרויס האַנדלען. און אַזוי יענע זענען בייסיקלי די פייַן זאכן וואָס מיר קענען טאָן מיט מייטריסיז, דעמאַנסטרייטיד רשימות. איך זאָל באַווייַזן די פייַן זאכן וועגן פֿעיִקייטן ווי געזונט. אַזוי לאָזן ס סייַ-- [ינאָדאַבאַל] פונקציאָנירן, לאָזן ס רוף עס פונק קעגן פֿונקציע N N סקוואַרעד-- טאקע, אַז ס ניט טאַקע דער בעסטער. א, ב, אַ סקווערד פּלוס ב. אזוי איינער זאַך וועגן פֿעיִקייטן, ווידער, איז זיי טאָן ניט דאַרפֿן יקספּליסאַט צוריקקומען סטייטמאַנץ. אַזוי איר קענען דזשוסט-- די לעצטע דערקלערונג עוואַלואַטעד וועט זיין די דערקלערונג אומגעקערט, אָדער די ווערט אומגעקערט. אַזוי אין דעם פאַל, מיר רע נאָר יוואַליוייטינג איין דערקלערונג, אַ סקווערד פּלוס ב. אַז וועט זיין די ניט ויסצאָלן צוריקקומען ווערט. עס קיינמאָל כערץ צו שטעלן אין צוריקקומען וואַלועס בפֿירוש, ספּעציעל אויב איר ניטאָ דילינג מיט אַ פֿונקציע פון ​​זייער קאָמפּליצירט לאָגיק לויפן. אבער איר טאָן ניט דאַרפֿן זיי. אַזוי איצט מיר קענען טאָן פונק 5, 1, און דעם איז בייסיקלי וואָס איר 'ד דערוואַרטן. עפּעס אַנדערש מיר קענען טאָן, מיר קענען טאקע טאָן פונק ב יקוואַלז 1, אַ יקוואַלז 5. אַזוי אויב מיר ספּעציפיצירן וואָס נומער דאָ, וואָס אַרגומענט גייט צו וואָס אַרגומענט אין די פֿונקציע, מיר קענען Flip אַרום די וואַלועס וואוהין מיר ווילן. וילעם: איז עס אַ סיבה צו שרייַבן עס אויס מיט די b יקוואַלז ווי קעגן צו נאָר ניצן די נומערן און די קאָמע? קאָננער האַרריס: יאָ, יוזשאַוואַלי טאָן דעם אויב איר האָבן פֿעיִקייטן מיט אַ פּלאַץ פון טענות. אַז זאל אָפֿט זיין ווי flags אַז איר'ד בלויז ווילן צו נוצן אין זעלטן מאל. און דעם וועג איר קענען אָנלי-- איר קענען אָפּשיקן צו די ספּעציפיש טענות וואָס איר ווילן צו נוצן ניט-ניט ויסצאָלן וואַלועס פֿאַר, און איר טאָן ניט האָבן צו שרייַבן אויס אַ בינטל פון flags יקוואַלז פאַלש נאָך זיי. אָדער איך קענען שרייַבן דעם ווידער מיט אַ ניט ויסצאָלן ווערט ווי ב יקוואַלז 2. און דעמאָלט איך קען טאָן ו פונק, איך וועט טאָן 4, 1 דעם מאָל. און 17, וואָס איז 4 סקווערד פּלוס 1, ווי איר זאל דערוואַרטן. אָבער איך קען אויך נאָר רופן דעם מיט פונק 4, און איך וועט באַקומען 18, ווייַל איך טאָן ניט ספּעציפיצירן ב. אזוי ב געץ די ניט ויסצאָלן ווערט פון 2. גוט, אַזוי איצט אויב איר ניטאָ ווייַטערדיק צוזאמען מיט די דעמאָ, טיפּ דעם שורה אין דיין באַפֿעל פּינטלעך און זען וואָס קומט אַרויף. אַקטואַללי, טאָן ניט טאָן אַז. טיפּע דעם. איר זאָל באַקומען עפּעס ווי דעם. אַזוי מטקאַרס איז אַ געבויט אין דאַטע שטעלן פֿאַר דעם דעמאַנסטריישאַן צוועקן וואָס קומט וויטה-- אַז קומט אין דורך ניט ויסצאָלן מיט דיין ר פאַרשפּרייטונג. דאס איז אַ זאַמלונג פון סטאַטיסטיק פון אַ 1974 אַרויסגעבן פון מאָטאָר טרענד ס זשורנאַל אויף אַ נומער פון פאַרשידענע מאַשין מאָדעלס. אַזוי עס ס מייל פּער גאלאן, סילינדערס-- איך פאַרגעסן וואָס דיספּ יס-- כאָרספּאַוער. מיסטאָמע. אויב איר נאָר גוגל מט קאַרס, דעמאָלט איינער פון די ערשטער רעזולטאטן וועט זיין פון די באַאַמטער ר דאַקיומענטיישאַן און עס וועט דערקלערן אַלע די דאַטע fields. אזוי וואָג יס-- WT איז וואָג פון די מאַשין אין טאָנס. ק סעק איז די פערטל מייל צייַט. אַזוי איצט מיר קענען טאָן עטלעכע שפּאַס זאכן וועגן מט קאַרס איז אַ דאַטע פעלד. אַזוי מיר קענען טאָן זאכן ווי רודערן נעמען, מט קאַרס. און דאָס איז אַ רשימה פון אַלע די ראָוז אין די דאַטן שטעלן וואָס זענען נעמען פון קאַרס. מיר קענען טאָן קאָלנאַמעס, מט קאַרס דעם. אויב איר טאָן מט קאַרס, סאַב-נומעריקאַל אינדעקס, ווי 2. מיר באַקומען די רגע זייַל פון דעם, וואָס וואָלט זיין סילינדערס. וילעם: וואָס האט איר טאָן? קאָננער האַרריס: איך טייפּט מט קאַרס, בראַקאַץ E, וואָס האט מיר די רגע זייַל פון מט קאַרס. אָדער אויב מיר ווילן אַ רודערן, איך קענען טיפּ מטקאַרס קאָמע 2, פֿאַר משל. אנדערע קייַלעכיק 2 קאָמע, ווי אַז. און אַז גייט אין אייער רודערן. דאס דאָ נאָר גיט איר אַ זייַל, אָבער זייַל ווי אַ וועקטאָר. איך נאָר איינגעזען איצט איך פֿאַרגעסן צו באַווייַזן עטלעכע קיל זאכן וועגן וועקטערז וואָס איר קענען טאָן מיט ינדאַסיז. אַזוי לאָזן מיר טאָן אַז רעכט איצט. אַזוי לאָזן ס טאָן C געצ-- פּאַטינג דעם אויף פּאַוסע-- 2 מאל 1-10. אַזוי C איז נאָר געגאנגען צו זייַן דער וועקטאָר 2 דורך 20. איך קענען נעמען עלעמענטן ווי דעם, ק 2. איך קענען פאָרן אין אַ וועקטאָר ווי דעם, ק-- לאָזן מיר נוצן פאַרשידענע נאָמען ווי C, ווי מער C. באַסיקאַללי, איך בין טאן דעם אַזוי איר טאָן ניט באַקומען צעמישט צווישן C ווי אַ וועקטאָר קאַנסטראַקשאַן פֿונקציע, און דעמאָלט C ווי אַ בייַטעוודיק נאָמען. איבער בראַקאַץ C 4, 5, 7. דאס וועט באַקומען מיר אויס די פערט, פינפט, און זיבן יסודות פון די מענגע. איך קענען טאָן מער, שטעלן אין אַ נעגאַטיוו אינדעקס, ווי נעגאַטיוו 4. וואס וועט באַקומען מיר אויס דעם מיט די פערט עלעמענט אַוועקגענומען. דעריבער אויב איך געוואלט צו טאָן סלייסיז, איך קענען טאָן מער 2 דורך 6. 2 קאָלאָן 6 איז נאָר אן אנדער וועקטאָר, וואָס איז 2, 3, 4, 5, 6. ספּיץ אויס אַז. אַזוי מייַלע, צוריק צו מט קאַרס. אַזוי לאָזן ס טאָן עטלעכע רעגרעססיאָנס. זאל ס זאָגן מאָדעל געצ-- לאָזן ס לינעאַרלי רעגרעסס-- איך טאָן ניט וויסן. ערשטער לאָזן ס טאָן צוטשעפּען מטקאַרס, פון קורס. אזוי [ינאָדאַבאַל] מאָדעל לם, לאָזן ס רעגרעסס מייל פּער גאלאן אויף טילדע וואָג. און דעמאָלט דאַטן ראַם איז מטקאַרס. אַזוי קיצער מאָדעל. גוט, אַזוי דעם קוקט אַ ביסל קאָמפּליצירט. אבער בייסיקלי, געזען ווי אויב מיר פּרובירן צו אויסדריקן מייל פּער גאלאן ווי אַ לינעאַר פֿונקציע פון ​​וואָג, דעמאָלט מיר גאַט דעם שורה דאָ, וואָס ינערסעפּץ ביי 37.28. 37.28 וואָלט זיין די טעאָרעטיש מייל פּער גאלאן פון אַ מאַשין וואָס ווייז נול. און דעמאָלט פֿאַר יעדער נאָך טאָן, איר קלאַפּן וועגן פינף מייל פּער גאלאן אַוועק פון וואָס. ביידע פון ​​די קאָעפפיסיענץ איר קענען זען, נאָרמאַל ערראָרס דאָרט. און זיי זענען זייער סטאַטיסטיקאַלי באַטייַטיק. אזוי מיר קענען זיין זייער זיכער צו 1 און 10 צו די נעגאַטיוו 10. אַזוי 1 מאל עפּעס צו די נעגאַטיוו 10, אַז אויב איר מאַכן אַ כעוויער מאַשין, עס וועט האָבן ערגער מייל פּער גאלאן. אָדער מיר קענען פּרובירן עטלעכע אנדערע מאָדעל. ווי אָנשטאָט פון רעגרעססינג דעם אויף וואָג, לאָזן ס רעגרעסס עס אויף קלאָץ פון וואָג, ווייַל אפֿשר די עפעקטיוו וואָג אויף מיילידזש איז יז ניט לינעאַר. דאס געגעבן אונדז אַ ר סקווערד פון 0.7528. אַזוי לאָזן ס פּרובירן דעם. דאס מאָל זאל ס טאָן אַ פאַרשידענע בייַטעוודיק, אויך. מאָדעל2. אַזוי קיצער, מאָדעל2. אַלע רעכט, אַזוי ווידער, מיר גאַט אונדזער בעסטער פּאַסיק שורה דאָ. און דעם טימע-- דעם איז געזאגט, בייסיקלי אַז יעדער מאָל איר פאַרגרעסערן די וואָג פון אַ מאַשין דורך אַ פאַקטאָר פון E איר פאַרלירן דעם פילע מייל פּער גאלאן. און אַזוי דעם צייַט אונדזער ריזידזשואַל נאָרמאַל טעות יט-- אַז טוט נישט ענין, טאַקע. די ריזידזשואַל נאָרמאַל טעות איז בייסיקלי פּונקט דער נאָרמאַל טעות אַז איר האָבן לינקס נאָך איר נעמען אַוועק די גאַנג שורה. און אונדזער ר סקווערד דאָ איז 0.81, וואָס איז אַ ביסל בעסער ווי וואָס מיר האבן פריער, 0.52. און אַזוי איצט לאָזן ס לייגן אַ טערמין צו דעם ראַגרעשאַן. אַזוי לאָזן ס רעגרעסס מייל פּער גאלאן ביידע אויף די קלאָץ פון די ווייץ און, לאָזן ס טאָן, ק מייל, פערטל מייל צייַט. גוט, עס מוזן האָבן טהע-- אַלע רעכט, קסעק. קסעק. אַקטואַללי-- נעבעכדיק, וואָס? זאל מיר רופן דעם עפּעס אַנדערש אויסערדעם מאָדעל2. זאל מיר רופן דעם מאָדעל3. און אַזוי איצט מיר קענען טאָן קיצער מאָדעל3. און אַזוי ווידער, דעם איז בייסיקלי וואָס איר זאל דערוואַרטן. איר האָבן positive ינערסעפּט. די עפעקטיוו ינקריסינג וואָג איז נעגאַטיוו. און די עפעקטיוו ינקריסינג פערטל מייל צייַט איז positive, אָבער כאָטש ווייניקער אַזוי ווי וואָג. איצט ינטויטיוולי, איר קענען מאַכן זינען פון דעם דורך זאגן טראַכטן וועגן ספּאָרט קאַרס. עס ס אַ זייער שנעל אַקסעלעריישאַן, אַ זייער קורץ פערטל מייל מאל. זיי ניטאָ אויך געגאנגען צו נוצן מער גאַז, כוועראַז מער פיליק קאַרס זענען געגאנגען צו האָבן סלאָוער אַקסעלעריישאַן, העכער פערטל מייל מאל, און נוצן ווייניקער גאַז ,, אַזוי העכער מייל פּער גאלאן. גרויס. און אַזוי איצט עס ס צייַט צו פּלאַנעווען עפּעס ווי דעם. אַזוי לאָזן ס דאָ-- אַזוי נאַקעט ביינער מיר קענען טאָן פּלאָצ-- ווייַל איך ווע אַטאַטשט דעם דאַטן ראַם בעפאָרע-- מיר קענען נאָר טאָן פּלאַץ, WT עמפּידזשי. מאַכן דעם אַ ביסל ביגער. דאָרט, מיר בייסיקלי האָבן אַ צעוואַרפן פּלאַנעווען, אָבער די פּוינץ זענען מין פון שווער צו זען אויף דעם. איך טאָן ניט געדענקען אָפפהאַנד וואָס די סינטאַקס איז פֿאַר טשאַנגינג די פּלאַנעווען. אַזוי איך טרעפן דעם וועט זיין אַ גוט צייַט צו ברענגען אַרויף, עס ס אַ זייער פייַן בוילטין העלפן שטריך, העלפן ציטירט פונקציאָנירן נאָמען. מיר וועט ברענגען אַרויף בייסיקלי עפּעס איר'ד ווי. איך טראַכטן איך וועט טאקע טאָן דעם טיפּ יקוואַלז פּ פֿאַר פּוינץ פּלאַץ. האט אַז טוישן עפּעס? און ניט, ניט טאַקע. אַלע רעכט. פֿאַר עטלעכע סיבה, ווען איך האט דעם אויף מיין אייגן קאָמפּיוטער אַ בשעת צוריק, אַלע די צעוואַרפן פּוינץ זענען פיל קלירער. מייַלע, זענען די צעוואַרפן מין פון קענטיק? עס ס איינער דאָרט. א ביסל דאָרט, אַ ביסל דאָרט. איר קענען סאָרט פון זען זיי, רעכט? אַזוי אויב מיר ווילן צו לייגן אַ בעסטער פּאַסיק שורה צו דעם פּלאַנעווען דאָ, וואָס איז אַ ביסל נאַקעט באָנעס-- לאָזן מיר מאַכן עס אַ ביסל ניסער. הויפּט יקוואַלז קעגן וואָג. מייל פּער גאלאן. ווידער, איר קענען זען ווי נוציק אַפּשאַנאַל טענות זענען דאָ מיט אויך ניט געהאט צו שטעלן זאכן אין אַ זיכער סדר מיט קלאַוויאַטור טענות ווען איר האָבן פּלאַץ, ווייַל די נעמען אַ פּלאַץ פון טענות. קסלאַב יקוואַלז וואָג, וואָג, טאָנס. אַלע רעכט. גוט, יאָ, דעם מיטל איז ווייל אַ ביסל אַנויינג. אָבער איר קענען זען סאָרט פון אַרויף דאָרט, עס ס אַ גראַפיק טיטל אויף די זייַט. איבער דאָ טהערע'ס-- אויף די דנאָ דאָ דאָרט זענען אַקס לאַבעלס. איך טאָן ניט געדענקען אָפפהאַנד וואָס די קאַמאַנדז אַרס-- וואָס די פֿעיִקייטן זענען צו פאַרגרעסערן די גרייס פון די לאַבעלס און טיטלען, אָבער זיי ניטאָ דאָרט. און אַזוי אויב מיר ווילן צו לייגן די בעסטער פּאַסיק שורה, מיר קען טאָן עפּעס ליקע-- איך האָבן די סינטאַקס געשריבן אַרויף דאָ. אַזוי געדענקען מיר נאָר לייגן מאָדעל איז עמפּידזשי, וואָג, מטקאַרס. און אַזוי אויב איך געוואלט צו לייגן אַ בעסטער פּאַסיק שורה, איך קען טאָן אַ, ב שורה מאָדעל. און בום, מיר האָבן אַ בעסטער פּאַסיק ליניע. עס ס מין פון שווער צו זען ווידער. איך בין גאַנץ נעבעכדיק וועגן די טעקנאַלאַדזשיקאַל שוועריקייטן. אבער עס ראַנז בייסיקלי שפּיץ לינק צו דנאָ רעכט. און אויב די וואָג זענען ביגער, איר געקענט זען אַז די ינערסעפּט איז וואָס איר קענען געפינען פֿון די קיצער סטאַטיסטיק אויב איר טיפּ קיצער מאָדעל. גוט, אַזוי איך האָפֿן אַלעמען געץ עפּעס פון אַ געפיל פון וואָס ר איז, וואָס עס ס 'גוט פֿאַר. איר געקענט מאַכן ווייַט ניסער פּלאַץ ווי דעם אויף דיין אייגן צייַט, אויב איר ווי. אזוי די פרעמד פֿונקציע צובינד. דעם איז עפּעס וואס איז ניט טיפּיקלי באדעקט אין ינטראָדוקטאָרי רעפֿעראַטן אָדער ינטראָדוקטאָרי עפּעס פֿאַר ר. עס ס ניט מסתּמא איר ניטאָ געגאנגען צו דאַרפֿן עס. אבער, איך אז עס נוצלעך אין מיין אייגן פּראַדזשעקס אין די פאַרגאַנגענהייַט. און עס ס ניט גוט טוטאָריאַל פֿאַר עס אָנליין. אזוי איך בין נאָר געגאנגען צו קאַמיש איר אַלע דורך דעם און דעמאָלט איר ניטאָ Free צו לאָזן. און אַזוי די פרעמד פֿונקציע צובינד איז וואָס איר קענען נוצן צו רופן אויס צו זען פֿעיִקייטן מיט אַ אַר ינעווייניק, ר איז געבויט אויף סי ר ס אַריטמעטיק איז נאָר C ס 64-ביסל Floating פונט אַריטמעטיק, וואָס איז טיפּ טאָפּל [ינאָדאַבאַל]. און איר זאל וועלן צו טאָן דעם פֿאַר אַ בינטל פון סיבות. פֿאַר איינער, ר איז ינטערפּראַטאַד, עס ס ניט קאָמפּילעד אַראָפּ צו מאַשין קאָד. אַזוי איר קענען רירייט דיין ינער לופּס אין C און דעמאָלט באַקומען די מייַלע פון ​​ניצן אַר ווי עס ס אַ ביסל מער באַקוועם ווי סי עס האט בעסער גראַפינג פאַסיליטיעס און וואַטנאַט. און בשעת נאָך ווייל קענען צו באַקומען שפּיץ גיכקייַט פון די ינער לופּס, וואָס איז ווו איר טאַקע דאַרפֿן עס. רייוזינג יגזיסטינג C לייברעריז, אַז ס אויך וויכטיק. אויב איר האָבן עטלעכע C ביבליאָטעק פֿאַר ווי, איך טאָן ניט וויסן, פאָוריער טראַנספאָרמס, אָדער עטלעכע זייער אַרטשעאַן סטאַטיסטיק פּראָצעדור געניצט אין הויך ענערגיע אַסטראָפיסיקס אָדער עפּעס, איך טאָן ניט וויסן. הויך ענערגיע אַסטראָפיסיקס איז ניט אַפֿילו אַ טראַכטן, איך טראַכטן. אבער איר קענען טאָן אַז אָנשטאָט ווייל צו שרייַבן אַ געבוירענער ר פּאָרט פון זיי. און אויף טהע-- און ווידער, ווי אויב איר קוק אין רובֿ פון ר ס געווייטלעכע נאַטור לייברעריז, אויף די ינטערנאַלס, די ינטערנאַלס זענען געגאנגען צו נוצן די פרעמד פֿונקציע צובינד זייער יקסטענסיוולי. זיי וועט האָבן דאס ווי פאָוריער טראַנספאָרמס אָדער קאַמפּיוטינג קאָראַליישאַן קאָעפפיסיענץ געשריבן אין C, און זיי וועט נאָר האָבן ר ראַפּערז אַרום זיי. די צובינד איז אַ ביסל שווער. איך טראַכטן זייַן שוועריקייט איז יגזאַדזשערייטאַד אין אַ פּלאַץ פון די ינסטראַקשאַנז איר וועט געפֿינען. אָבער דאך, עס איז אַ ביסל קאָנפוסינג. און איך האב ניט געווען בכוח צו געפֿינען אַ גוט טוטאָריאַל פֿאַר אים, אַזוי דעם איז עס רעכט איצט. ווידער, דעם גאַנץ אָפּשניט איז מער פֿאַר שפּעטער דערמאָנען. צי ניט זאָרג וועגן קאַפּיינג אַלץ אַראָפּ רעכט איצט. אזוי די ווייַטערדיק ינסטראַקשאַנז זענען פֿאַר יוניקס-ווי סיסטעמס, לינוקס, בוירקלי, אַס אַקס איך טאָן ניט וויסן ווי דעם אַרבעט אויף ווינדאָוז, אָבער ביטע נאָר טאָן ניט טאָן דיין לעצט פּרויעקט אויף ווינדאָוז. איר טאַקע טאָן ניט ווילן צו. יוניקס איז פיל בעסער שטעלן אַרויף פֿאַר גלייַכגילטיק פּראָגראַממינג. אַזוי, בייסיקלי פרעמד פֿונקציע צובינד. אויב איר ווילן צו שרייַבן אַ C פֿונקציע פֿאַר נוצן מיט ר, עס האט צו נעמען אַלע די טענות ווי פּוינטערז. אַזוי פֿאַר איין וואַלועס, דעם מיטל עס ס שפּיציק צו די ווערט. פֿאַר ערייז, דעם איז אַ טייַטל צו דער ערשטער עלעמענט, וואָס איז וואָס מענגע נעמען אַקטשאַוואַלי מיינען. ווידער, דאָס איז עפּעס איר זאָל האָבן שיין טאָוטאַלי אַראָפּ נאָך פּי שטעלן פינף. מענגע נעמען זענען נאָר פּוינטערז צו דער ערשטער עלעמענט, די Floating-פונט טיפּ איז טאָפּל. און דיין פֿונקציע האט צו צוריקקומען פּאָסל. דער בלויז וועג אַז עס קענען אַקטשאַוואַלי דערציילן ר וואָס געשען איז דורך מאָדיפיינג די זיקאָרן אַז ר האט צו עס דורך די פרעמד פֿונקציע צובינד. אַזוי איך ווע געשריבן דעם לעמאָשל דאָ, דאָס איז אַ פֿונקציע אַז קאַמפּיוץ נוצן פּונקט פּראָדוקט פון צוויי וועקטערז. עס נעמט צוויי טענות, וועק1, וועק2, וואָס זענען די וועקטערז זיך, און דעמאָלט N, וואָס איז אַ לענג, ווייַל ווידער, ר האט געבויט אין [ינאָדאַבאַל] צו געפֿינען אויס די לענג פון וועקטערז, אָבער C טוט ניט. אין C, וועקטערז איז אַ אַרבאַטרערי דעלימיטעד פּייַדע פון ​​זכּרון. אַזוי די וועג איר קענען רעכענען פּונקט פּראָדוקטן איז נאָר שטעלן דעם אויס פּאַראַמעטער צו נול און דעמאָלט יטעראַטע דורך פון 1 צו שטערן ן, ווייַל N ס אַ טייַטל צו די לענג, נאָר לייגן עפּעס צו דעם אויס פּאַראַמעטער. און עס קענען זיין גוט פיר אויב איר ניטאָ געגאנגען צו טאָן דעם צו שרייַבן צוויי באַזונדער C פֿעיִקייטן. איינער פון זיי האַס-- איינער פון זיי נאָר נעמט די טענות און די טייפּס אַז זיי וואָלט אָרדאַנעראַלי זיין אין סי אַזוי עס נעמט אַ מענגע טענות ווי פּוינטערז. אבער איין-ווערט טענות ווי ן, עס נאָר נעמט ווי וואַלועס דורך נאָכמאַכן, אָן פּוינטערז. און דעמאָלט עס טוט נישט [ינאָדאַבאַל] אויס טייַטל. און דעמאָלט איר קענען האָבן אַ אַנדערש, בייסיקלי, ראַפּער פונקציאָנירן אַז בייסיקלי כאַנדאַלז די רעקווירעמענץ פון די פרעמד פֿונקציע צובינד פֿאַר איר. די וועג איר רופן דעם אין ר איז, אַמאָל איר האָבן דיין פֿונקציע געשריבן אין C, איר טיפּ ר קמד שליב, ר באַפֿעלן שערד ביבליאָטעק, FOO פּונקט C, אָדער וועלכער דיין טעקע נאָמען איז, און די אַס שאָל ניט אין דער ר וואָקזאַל. און דעם וועט מאַכן אַ ביבליאָטעק גערופֿן FOO פּונקט אַזוי. און דעמאָלט איר קענען לאָדן עס אין אונדזער שריפט אָדער ינטעראַקטיוועלי מיט באַפֿעלן דין פּונקט מאַסע. און עס איז אַ פֿונקציע אין ר גערופֿן פּונקט C. דאס נעמט טענות וואָס זענען ערשטער דעם נאָמען פון די פֿונקציע אין C וואָס איר ווילן צו רופן. און דעריבער אַלע די פּאַראַמעטערס צו אַז פֿונקציע, זיי האָבן צו זייַן אין די געהעריק סדר. איר האָבן צו נוצן די טיפּ קאָוערשאַן פֿעיִקייטן ווי ינטאַדזשער, ווי טאָפּל, ווי כאַראַקטער, און ווי לאַדזשיקאַל. און דעריבער ווען עס קערט די רשימה, וואָס ווידער איז נאָר אַ פֿאַרבונדן מענגע פון ​​די פּאַראַמעטער נעמען און די וואַלועס נאָך די פֿונקציע האט לויפן. אַזוי אין דעם פאַל, ווייַל פּונקט שטעכן האט טענות וועק1, וועק2, און ינט ן, ען אויס. צו פּונקט C מיר האָבן פּונקט שטעכן, די נאָמען פון די פֿונקציע מיר ניטאָ פאַך, וועק1, וועק2, טיפּ צווינגען. די לענג פון יעדער וועקטאָר, איך נאָר אויסדערוויילט וועק1 אַרביטרעראַלי. עס וואָלט זיין מער געזונט צו זאָגן ס ינטעגער מין לענג פון וועק1, לענג וועק2. דעמאָלט נאָר ווי טאָפּל נול, ווייַל מיר טאָן ניט טאַקע זאָרגן וואָס גייט אין די אויס פּאַראַמעטער ווייַל מיר ניטאָ באַשטעטיקן עס צו נול סייַ ווי סייַ. און דעמאָלט רעזולטאַטן זענען געגאנגען צו זיין אַ גרויס פֿאַרבונדן מענגע פון ​​בייסיקלי וועק1 איז וועלכער, וועק2 איז וועלכער. אבער מיר 'רע אינטערעסירט אין אויס, אַזוי מיר קענען באַקומען אַז אויס. דאס איז ווידער, אַ זייער צאַצקע לעמאָשל פון אַ פרעמד פֿונקציע צובינד. אבער אויב איר האָבן צו צונויפרעכענען פּונקט פּראָדוקטן פון מאַסיוו וועקטערז אין לופּס, אָדער אויב איר האָבן צו טאָן עפּעס אַנדערש אין אַ שלייף, און איר טאָן ניט ווילן צו פאַרלאָזנ זיך ר, וואָס טוט האָבן אַ ביסל פון אָוווערכעד געבויט אין עס, דעם קענען זיין נוצלעך. ווידער, דאָס איז נישט יוזשאַוואַלי אַ ינטראַדאַקטערי טעמע צו אַר עס ס ניט זייער געזונט דאַקיאַמענטאַד. איך בין נאָר כולל עס ווייַל איך אז עס נוצלעך אין דער פאַרגאַנגענהייַט. אַזוי, שלעכט פּראַקטיסיז. איך דערמאנט אַז עס ס אַ פֿאַר שלייף אין די פֿונקציע. בכלל איר זאָל נישט, אין די שפּראַך, ניט נוצן עס. באזירט אויף ווי ר ימפּלאַמאַנץ יטעראַטיאָן ינעווייניק, עס קענען זיין לאַנגזאַם. זיי נאָר אויך קוקן מיעס. ר כאַנדאַלז וועקטערז זייער נייסלי, אַזוי אָפטענטימעס איר טאָן ניט דאַרפֿן צו נוצן עס. דעמאָלט איר קענען יוזשאַוואַלי פאַרבייַטן אַ וועקטאָר אָפֿט מיט די פֿעיִקייטן גערופֿן הויך סדר פֿעיִקייטן, מאַפּע, רעדוצירן, געפֿינען, אָדער פֿילטריר. איך וועט נאָר געבן עטלעכע יגזאַמפּאַלז פון וואָס די טאָן. מאַפּע איז אַ העכער סדר פונקציאָנירן ווייַל עס נעמט אַ פֿונקציע ווי אַן אַרגומענט. אַזוי איר קענען געבן עס אַ פֿונקציע, איר קענען געבן עס אַ מענגע, און עס וועט צולייגן די פֿונקציע צו יעדער עלעמענט פון דער מענגע און צוריקקומען די נייַ מענגע. רעדוצירן, בייסיקלי איר געבן עס אַ מענגע, איר געבן עס אַ פֿונקציע וואָס נעמט צוויי טענות. עס וועט צולייגן די פֿונקציע ערשטער, דער ערשטער אַרגומענט מיט עטלעכע סטאַרטער ווערט. דעריבער צו וואָס רעזולטאַט אין די רגע. דעריבער צו וואָס רעזולטאַט אין די דריט, דעריבער צו וואָס רעזולטאַט אין די פערט. און דעמאָלט צוריקקומען ווען עס געץ צו די סוף. אַזוי למשל, אויב איר ווילן צו צונויפרעכענען די סאַכאַקל פון אַלע די יסודות אין אַ מענגע, ווי איר זאל רופן רעדוצירן מיט [ינאָדאַבאַל] רעדוצירן אַן דערצו פונקציאָנירן, ווי פונק א, ב, קריק אַ פּלוס ב. און דעמאָלט אָנהייבן אַ ווערט פון 0. און אַלע די, איר קענען געפֿינען זיי דיסקרייבד אין דער ר דאַקיומענטיישאַן, אין קיין לערנבוך אויף Functional פּראָגראַממינג. עס ס אויך דעם סאָרט פון פֿעיִקייטן גערופֿן צולייגן פֿעיִקייטן, וואָס איך דאָנ'ט-- זיי ניטאָ אַ ביסל שווער צו דערקלערן, אָבער אויב איר קוק אין [ינאָדאַבאַל] בוקט אַז איך סייטאַד אין די אָנהייב, ער דערקלערט זיי שיין געזונט אין זייַן אַפּפּענדיקס אויף ר פּראָגראַממינג. מער וועגן פּראַקטאַסאַז, אַפּפּענדינג צו וועקטערז. יאָ? איך טראַכטן איך זאָל ריכטיק אַז. אין אַז ערשטער שורה, איבער פייַל, אַז פייַל זאָל נישט זיין דאָרט. איר קענען באַשטימען צו אַ וועקטאָר, ווידער, דורך נעמען זייַן לענג פּלוס 1 און אַסיינינג עטלעכע ווערט צו אַז. אַז וועט פאַרברייטערן די וועקטאָר, אָדער איר קענען טאָן מער יקוואַלז C, איבער נעוווואַלוע. ווידער, אויב איר נוצן C מיט איין אַרגומענט ווי אַ וועקטאָר, די ריזאַלטינג כייעראַרקי געץ פלאַטטענעד. אזוי איר וועט נאָר באַקומען אַ וועקטאָר אַז ס עקסטענדעד דורך 1. קיינמאָל טאָן דעם. די סיבה וואָס איר זאָל ניט טאָן דעם איז דעם. ווען איר אַלאַקייט אַ וועקטאָר, עס גיט עס אַ זיכער פּייַדע פון ​​זכּרון. אויב איר פאַרגרעסערן אַז וועקטאָר גרייס, עס האט צו רעאַללאָקאַטע דער וועקטאָר ערגעץ אַנדערש. און אַזוי רעאַללאָקאַטיאָן איז גאַנץ טייַער. איך וועט ניט גיין אין די דעטאַילס פון ווי זיקאָרן אַללאָקאַטאָרס זענען ימפּלאַמענאַד אויף די אַפּערייטינג סיסטעם מדרגה, אָבער עס נעמט אַ פּלאַץ פון צייַט צו געפֿינען אַ נייַ פּייַדע פון ​​זכּרון. און אויך, אויב איר ניטאָ שייַעך-אַלאַקייטינג גורל און גורל פון פּראַגרעסיוולי גרעסערע שטיקער, איר סוף אַרויף מיט עפּעס גערופֿן זיקאָרן פראַגמענטאַטיאָן, ווו די פאַראַנען זכּרון איז צעטיילט אין גורל פון קליין בלאַקס אין די זיקאָרן אַללאָקאַטאָרס פונט פון מיינונג. און עס געץ האַרדער און האַרדער צו געפֿינען זיקאָרן פֿאַר אנדערע זאכן. אזוי אַנשטאָט, אויב איר דאַרפֿן צו טאָן דעם, אויב איר דאַרפֿן צו וואַקסן אַ וועקטאָר פון איין עק צו די ווייַטער, אַנשטאָט פון אַפּפּענדינג צו עס קעסיידער, איר זאָל פֿאַר-אַלאַקייט עס. איבער פייַל, וועקטאָר לענג יקוואַלז 1,000, אָדער וועלכער. און דעמאָלט איר קענען נאָר באַשטימען צו די וועקטאָר ס וואַלועס איין אַ מאָל נאָך איר'ווע אַלאַקייטיד עס אַמאָל. איך געלאָפֿן אין דעם, ווידער, מיין זומער אַרבעט ווען איך איז געווען שרייבן NRA דיפפערענטיאַל יקווייזשאַן סאַלווער. ניט סימבאָליש נומעריקאַל. דער געדאַנק איז אַז אַמאָל איר האָבן איינער ווערט פֿאַר דיין לייזונג, איר נוצן אַז צו צונויפרעכענען די ווייַטער איינער. אַזוי מיין נאַטירלעך נאַיוו יצר איז צו זאָגן גוט, אַזוי איך וועט אָנהייבן מיט אַ וועקטאָר אַז ס אַ היפּש ווערט. צונויפרעכענען פון אַז די ווייַטער ווערט וואס גייט אַנטו מיין לייזונג וועקטאָר, און צוגעבן אַז. שאַפֿן עפּעס אַנדערש, צוגעבן אַז. עס זענען זייער, זייער סלאָולי. און אַמאָל איך איינגעזען דעם און איך געביטן מיין סיסטעם פון אַפּפּענדינג צו דעם וועקטאָר ווי 10,000 צו 100.000 מאל, צו נאָר פֿאַר-אַלאַקייטינג אַ וועקטאָר און נאָר פליסנדיק מיט וואָס. איך גאַט מער ווי 1,000 פאַרלייגן גיכקייַט אַרויף. אַזוי דעם איז אַ זייער פּראָסט טראַפּ פֿאַר ר פּראָגראַממינג. אויב איר דאַרפֿן צו בויען אַרויף אַ וועקטאָר שטיק דורך שטיק, פֿאַר-אַלאַקייט עס. אן אנדער פּראָסט יאַזדע ופּ-- דאָס איז מיין לעצטע רוק, טאָן ניט וואָררי-- איז טעות האַנדלינג. ר, צו זיין אָפן, טוט ניט טאַקע טאָן דעם זייער געזונט. עס זענען אַ פּלאַץ פון פּראָבלעמס אַז קענען גערעטעניש אַרויף. לעמאָשל, אויב איר באַקומען אַ מענגע אָדער אַ וועקטאָר פון אַ פֿונקציע אַז איר זענען יקספּעקטינג אַ איין ווערט צו קומען פון, אָדער וויצע ווערסאַ, און איר פאָרן אַז אין אַ פֿונקציע אַז איר געשריבן יקספּעקטינג אַ איין ווערט, אַז קענען זיין אַ פּראָבלעם. זיכער פֿעיִקייטן צוריקקומען נאַל ווי טאָן, זאָגן, לייענען פון אַ נאַנאַגזיסטאַנט שליסל אין אַ רשימה. אבער נאַל איז ניט ווי C ווו אויב איר פּרובירן צו לייענען פון אַן אַלט טייַטל, [ינאָדאַבאַל] צו נאַל טייַטל, עס נאָר סעג חסרונות און אויב איר ניטאָ אין דיין דעבוגגער עס דערציילט איר פּונקט ווו איר זענט. אָנשטאָט, נאַל וועט דאָ-- פֿעיִקייטן וועט טאָן אַנפּרידיקטאַבאַל זאכן אויב זיי 'רע קאָלנער נאַל. ווי אויב איר 'רע קאָלנער מאַקס נאַל, עס וועט געבן איר נעגאַטיוו ומענדיקייַט. און אַזוי, יאָ. און אַזוי דעם געשען צו מיר אַמאָל ווען איך געהאט געביטן אַ בינטל פון fields אין מיין רשימה סטרוקטור אַמאָל אָן טשאַנגינג זיי אנדערש ווען איך איז געווען לייענען פֿון זיי. און דעמאָלט איך גאַט אַלע סאָרץ פון ראַנדאָם ומענדיקייַט רעזולטאטן קראַפּינג אַרויף און איך קיין געדאַנק ווו זיי געקומען פון. און ליידער, עס ס קיין פאַקטיש ר שטרענג מאָדע ווו איר קענען זאָגן אויב עפּעס קוקט ווי עס זאל זיין אַ טעות, נאָר האַלטן דאָרט אַזוי איך קענען זייַן דיסאַפּלאַנד און פאַרריכטן אַז. אָבער, עס איז עפּעס גערופֿן האַלטן אויב ניט. דאס איז עקוויוואַלענט צו C ס פעסטשטעלן, אויב איר ווע גערעדט וועגן אַז. איך טאָן ניט טראַכטן C פעסטשטעלן איז אַ לעקציע טעמע, אָבער דיין אָפּטיילונג פירער זאל האָבן ניטאָ איבער אים. און האַלטן אויב נישט בייסיקלי נעמט קיין פּרעדיקאַט, אַזוי קיין דערקלערונג אַז קענען זיין אמת אָדער פאַלש. און אויב עס ס פאַלש, עס סטאַפּס זייַן פּראָגראַם. עס דערציילט איר פּונקט וואָס שורה איר זענען אויף און וואָס צושטאַנד אַנדערש. און דעם זייער נוצלעך, למשל, מייושעוודיקייַט טשעק, פונקציאָנירן ינפּוץ. אַזוי אויב איר האָבן אַ פֿונקציע און איר דערוואַרטן, זאָגן, אויב איר זאָל געבן מיר אַ טאָג, איך ווילן די דאַטעס זיין פּונקט אַ וועקטאָר פון לענג 1 און ערגעץ צווישן 1 און 31. און אויב ניט, איך וויסן עפּעס ס פאַרבייַ פאַלש. און איך קלייַבן צו האַלטן דאָרט איידער דעם האט ראַנדאָם קלאַפּן אויף ווירקונג מיט קאָד אַז עס ס האַרדער צו שפּור דורך. אַזוי אַז ס איינער מעגלעך נוצן פֿאַר האַלטן אויב ניט. מייַלע, גוט. אַזוי אַז ס די סוף. דאנק איר אַזוי פיל פֿאַר קומען. איך בין אַ ריי ליבהאָבער אין דעם. אַזוי נעבעכדיק אויב איר ניטאָ באָרד אָדער צעמישט אָדער וואָס האָבן איר. איך בין צופרידן צו נעמען שאלות דורך email ביי connorharris@college.harvard.edu. דאס גייט אויך פֿאַר אַלעמען וואַטשינג דעם לעבן אָדער שפּעטער אויף. אויך, כאָטש איך בין נישט אַ טף, איך בין אויך זייער גרייט צו דינען ווי אַ ונאָפפיסיאַל אַדווייזער פֿאַר ווער עס יז ווער ס ניצן ר אין אַ לעצט פּרויעקט. אויב איר'ד ווי צו וואָס, דעמאָלט נאָר רעדן צו דיין טף און דעמאָלט שרייַבן מיר אַ בליצפּאָסט אַזוי איך וויסן וואָס איר ניטאָ ארבעטן אויף און אַזוי איך קענען שטעלן אַרויף באַגעגעניש מאל מיט איר אויב איר ווילן. אַזוי ווידער, דאַנקען איר זייער פיל. איך האָפֿן איר ינדזשויד עס. וילעם: [ינאָדאַבאַל]. קאָננער האַרריס: דאָך. וילעם: וואָס מין פון אַ פּרויעקט וואָלט אַ קס תּלמיד נוצן ר פֿאַר? קאָננער האַרריס: אזוי אויב איר ניטאָ ניט טאָן עפּעס אַז ס ריין אין דאַטן מיינינג, למשל, און עס זענען גורל פון זאכן איר קען טאָן מיט וואָס מיט דאַטע מיינינג און מאַשין לערנען. איר זאל וועלן צו נוצן ר פֿאַר אַ קאָמפּאָנענט פון עפּעס. איך געבראכט אַרויף, ערידזשנאַלי, די משל פון אויב איר ניטאָ שרייבן אַ וועבזייַטל און איר ווילן צו לויפן אָטאַמייטיד סטאַטיסטיש אַנאַליסיס פון דיין סערווירער לאָגס אין אַ זיכער צייַט יעדער טאָג, אַז זאל זיין עפּעס אַז ס זייער גרינג צו טאָן אין נאָר אַ קורץ ר שריפט אַז איר קענען פּלאַן צו לויפן יעדער נאַכט, פֿאַר משל. און איך בין זיכער, אויב עס ס קיין סיבה איר 'ד ווילן סטאַטיסטיק אָדער גראַפינג קייפּאַבילאַטיז און האָבן דעם לויפן אויטאָמאַטיש אַנשטאָט ווייל צו ינטעראַקט מיט זאכן אין עקססעל, למשל, אַז ס עפּעס איר זאל וועלן צו נוצן ר פֿאַר. אַזוי קיין מער שאלות איידער איך לאָזן? ניין? אַלע רעכט, געזונט, ווידער, דאַנקען איר זייער פיל פֿאַר קומען.