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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
inaka-phper
April 18, 2019
Technology
590
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
340
技術習得の時間を作る
inakaphper
1
740
Other Decks in Technology
See All in Technology
三人寄ればチューリング完全
puhitaku
6
3k
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.7k
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
520
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
300
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
1.1k
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
390
地震情報アプリを作ってみた
yama3133
1
110
【Aiming】共通基盤なのに「共通化しない」課金・認証基盤「LINK」が選び取ったシングルテナント戦略と運用の秘訣
saikeda
0
170
AIに狂うスタートアップが、あえて「人との協働」に全振りした新卒エンジニア研修 / New Graduate Engineer Training at a Startup Accelerating AI Adoption
ohnoeight
0
200
Rust×eBPFでEDRっぽいものをつくる
sunlife3
2
900
8bit CPU 2026
koba789
7
2.7k
dbt と Snowflake と tag
kevinrobot34
1
190
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
Being A Developer After 40
akosma
91
590k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Speed Design
sergeychernyshev
33
2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How STYLIGHT went responsive
nonsquared
100
6.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
440
Balancing Empowerment & Direction
lara
6
1.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
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Λͯ݁͠ՌΛੵΈ্͛ͯճආ
͜ΕΒͷରࡦͰ όονϦͰͨ͠