Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
前回の”どう書く”を もっと高速にしてみた 2019.4.17 Nagoya.php #15
Search
inaka-phper
April 18, 2019
Technology
580
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
前回の”どう書く”を もっと高速にしてみた 2019.4.17 Nagoya.php #15
inaka-phper
April 18, 2019
More Decks by inaka-phper
See All by inaka-phper
低リスクで小学生男児を鍵っ子にする 俺の勉強会#4
inakaphper
0
320
技術習得の時間を作る
inakaphper
1
720
Other Decks in Technology
See All in Technology
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
130
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
2
570
【2026年版】 ベクトル検索䛸 Embedding最前線
mocobeta
0
190
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
150
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1.1k
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
220
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
890
新しいVibe Codingと”自走”について
watany
6
330
Android の公式 Skill / Android skills
yanzm
0
150
脆弱性対応、どこで線を引くか
rymiyamoto
1
400
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
260
手塩にかけりゃいいってもんじゃない
ming_ayami
0
590
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Evolving SEO for Evolving Search Engines
ryanjones
0
220
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Tell your own story through comics
letsgokoyo
1
950
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Transcript
લճͷ”Ͳ͏ॻ͘”Λ ͬͱߴʹͯ͠Έͨ 2019.4.17 Nagoya.php #15
·ͣࣗݾհ
ͱ͋Δాࣷͷphper @inaka_phper phpྺ16(࣮ྗ͕͍ͬͯΔ͔ผ) 3લʹ۽ຊ͔Β໊ݹస৬͖ͯ͠·ͨ͠ɻ 4ࡀࣇͱ1ࡀࣇͷ ՈͰͷझຯ։ൃ͢Δ࣌ؒΛͲ͏೧ग़͢Δ͔͕࠷ۙͷΈ
લճͷΛ͓͞Β͍
IUUQOBCFUBOJTBLVSBOFKQIFOBPSEFQBMJO
ૉʹղ͍ͯ… public function run(string $input): int { $args = explode(",",
$input); $start = (int)$args[0]; $end = (int)$args[1]; $tobase = (int)$args[2]; $visibleCounter = 0; for ($i = $start; $i < $end; $i++) { $number = base_convert($i, 10, $tobase); if ($number === strrev($number)) { $visibleCounter++; } } return $visibleCounter; }
λΠϜΞτ phper:NagoyaPhp14 phper$ composer test > vendor/bin/phpunit PHPUnit 7.5.7 by
Sebastian Bergmann and contributors. ...................... [Symfony\Component\Process\Exception\ProcessTimedOutException] The process "vendor/bin/phpunit" exceeded the timeout of 300 seconds.
λΠϜΞτͷݪҼ ['12345,987654321,2', 62684], ['2467130,8433468,2', 2902], ['323901,4712975,10', 4389], ['12345,987654321,36', 67446], ['3969344,4086910,24',
205], ['19743263,83912295,5', 11553], ['6349529,39870823,10', 6637], ['66160071,153732445,5', 5605], ['18799557,189007582,14', 33741], ['78547566,225312226,20', 18346], ['143084571,506549072,18', 62323], ['2099642384,2789567569,6', 14787], ࢦఆͷςετέʔεͰَϧʔϓ͕ൃੜ͢Δ
ߴԽ͢Δʹ ϧʔϓΛݶք·ͰݮΒ͢͜ͱ
IUUQTTQFBLFSEFDLDPNUUTLDIKJOSJGBMTFUPVTIVLVXFOUJGBMTFBSVLPSJTVNVMJ TMJEF Ҏ߱ɺ్த·Ͱ͖ͨͭͪ͞ΜͱҰॹ
લճɺ୭͕ࢥͬͨͣ… ܭࢉͰग़དྷΔͷͰʁ
ݕূͨ݁͠Ռ
ܭࢉͰ͍͚·ͨ͠ɻ
ςετέʔε݁Ռ phper:NagoyaPhp14 phper$ composer test > vendor/bin/phpunit PHPUnit 7.5.7 by
Sebastian Bergmann and contributors. .................................. 34 / 34 (100%) Time: 47 ms, Memory: 4.00 MB OK (34 tests, 34 assertions) phper:NagoyaPhp14 phper$
υϠΝʂʂ phper:NagoyaPhp14 phper$ composer test > vendor/bin/phpunit PHPUnit 7.5.7 by
Sebastian Bergmann and contributors. .................................. 34 / 34 (100%) Time: 47 ms, Memory: 4.00 MB OK (34 tests, 34 assertions) phper:NagoyaPhp14 phper$
Ͳ͏ܭࢉͨ͠ͷ͔ʁ
10000-99999ͰճจͱͳΔ Λग़ྗͯ͠๏ଇΛ୳Δ (10ਐ)
10000-99999ͰճจΛग़ྗ 10101 10201 10301 10401 10501 10601 10701 10801 10901
11011 11111 11211 11311 11411 11511 11611 11711 11811 11911 12021 … 99099 99199 99299 99399 99499 99599 99699 99799 99899
10000-99999ͰճจΛग़ྗ 10101 10201 10301 10401 10501 10601 10701 10801 10901
11011 11111 11211 11311 11411 11511 11611 11711 11811 11911 12021 … 99099 99199 99299 99399 99499 99599 99699 99799 99899 ࠨͷ͕ͭͣͭ૿͑ͯΔ
࠷ޙ - ։࢝ = ճจग़ݱ
࠷ޙ 99999 ࠷ॳ 10000 999 - 100 = 899
None
ߟྀ͖͢έʔε
ఆ͞ΕΔߟྀ͠ͳ͍ͱ͍͚ ͳ͍ࣄ 1. phpnਐͷ··ܭࢉͰ͖ͳ͍ 2. ӈͷ։࢝ɾ࠷ޙͷҐஔʹΑͬͯޡ͕ࠩ ग़Δ 3. ح͔Βۮͷ܁Γ্͕Γͷࠨ…
php nਐͷ··ܭࢉͰ͖ ͳ͍ ໘͕ͩมͯ͠͠ճආ 1. ࢦఆͷnਐม 2. ࠨΛΓग़͢ 3. Γग़ͨ͠ࠨΛ10ਐ
255 -> ff ff -> f f -> 15
ӈͷ։࢝ɾ࠷ޙͷҐஔʹ Αͬͯޡ͕ࠩग़Δ 10000ͷࠨ 10099ͷࠨ ಉ͡100͕ͩޙऀ10001ཱ͕͠ͳ͍ ࠷ॳͱ࠷ޙࠨͷճจͷൣғ͔νΣοΫ
ح͔Βۮͷ܁Γ্͕Γ ͷࠨ… 10000 … 99999 100000 ܁Γ্͕ͬͨͷʹࠨ͚ͩͰݟΔͱॳظʹͬͯ͠·͏ ͜ͷλΠϛϯάͰҰ୴ 999 -
100Λͯ݁͠ՌΛੵΈ্͛ͯճආ
͜ΕΒͷରࡦͰ όονϦͰͨ͠