AI 资讯
dev.to How Online Casinos Prove Their RNG Is Fair, and Why Most Software Can't
Math.random() returns a number between 0 and 1, and roughly nobody reading this could explain what happens between the call and the return. That is fine, fine right up until the output decides who gets money, and then it becomes one of the genuinely hard problems in applied software, the kind that regulated industries build entire testing labs around. Start with the thing most people get wrong: a sequence that passes for random and a fair sequence are different claims, and your users cannot tell them apart by staring at outputs. The users will never catch the difference and that is the whole problem in one sentence. This is why fairness in any real-money system, an online casino being the sharpest example, is a verification problem long before it is a math problem. Pseudorandom generators are deterministic. A PRNG eats a seed, runs it through fixed arithmetic, and spits out numbers that sail through statistical randomness tests while being completely predetermined by that seed. Mersenne Twister is the poster child: excellent distribution, used everywhere by default for years, and from a few hundred observed outputs you can reconstruct its internal state and predict the rest. For a Monte Carlo simulation, who cares! For anything where a human has a financial reason to guess your next number, you just shipped a vulnerability and called it a feature. What you want when stakes exist is a CSPRNG. The guarantee that matters: even with a long history of outputs, an attacker cannot compute the next one or recover the internal state. crypto.randomBytes() in Node. crypto.getRandomValues() in the browser. They sit one autocomplete away from the unsafe option and offer wildly different guarantees, which is exactly why this bug ships so often. The safe call and the dangerous call look like fraternal twins. ** The part players actually rely on ** Say you build it correctly: a proper CSPRNG, real entropy, no timestamp nonsense. You know it is fair but now prove it to a stranger wh
AI 资讯
Ultimate Guide to System and Network Adminstration 🌐 🛠️
In a world completely powered by technology, have you ever wondered what actually keeps our digital lives from crashing down? Enter the unsung heroes: system and network administration . Think of an operating system like Windows or Linux as a computer's command center, orchestrating everything from the heavy-lifting CPU to the smallest plugged-in device. To keep your data safe and your machine stable, it cleverly splits its brain into two zones: a restricted "user mode" where your everyday apps play, and a highly secure, privileged "kernel mode" reserved strictly for critical system operations. When individual computers connect to form massive global networks, the complexity skyrockets. This comprehensive guide breaks down those complex environments into simple, bite-sized concepts. Here is a quick snapshot of what we will cover: Host & OS Administration : This module covers how an operating system functions as the primary intermediary between a user and a computer's raw physical hardware. It explains how the system kernel manages critical computing processes, memory allocation, local storage file systems, and administrative tasks like security patching and automated scripting. Networking Concepts, Topologies, and Protocols : This module explores how individual computer systems connect and communicate across localized or global distances. It details the structural design of network topologies, addressing rules like IPv4 and IPv6, and the standardized layer frameworks that ensure safe and efficient data transmission. 🏛️ Part 1: Operating Systems & Host Administration 🖥️ Computer Resources and Functions At its core, every computer system is a collection of physical machinery and digital structures working together to solve problems. To understand how an operating system manages these pieces, it helps to look at the foundational puzzle blocks of a computer. This section maps out the primary hardware and data elements the system has to control, alongside a simple breakd
AI 资讯
Beyond Blind Search: 5 Powerful Lessons from the Architecture of Intelligence
"Intelligence isn't about searching everywhere—it's about knowing where not to search." Artificial Intelligence is often associated with neural networks, large language models, and autonomous systems. But long before modern generative AI, computer scientists were solving a much deeper question: How do intelligent systems make decisions efficiently? Whether you're building search algorithms, recommendation systems, autonomous robots, or distributed systems, the architecture of intelligence teaches timeless lessons about solving problems under uncertainty. Let's explore five powerful ideas that shaped AI—and why they matter far beyond computer science. ✈️ 1. The Pilot's Dilemma: Why Blind Search Fails Imagine you're a pilot. Suddenly, one of your engines fails. In the next few seconds, there are hundreds of switches, buttons, and controls available. If you treated every control equally, you'd spend precious time trying random combinations. That is exactly how uninformed search works. Algorithms like: Breadth-First Search (BFS) Depth-First Search (DFS) have no knowledge of where the solution might be. They simply explore. Start ├── Option A ├── Option B ├── Option C └── ... The larger the search space becomes, the less practical this strategy is. A pilot doesn't blindly flip switches. They use additional knowledge : Engine pressure Fuel flow Hydraulic readings Warning systems Those clues dramatically reduce the number of possibilities. This is exactly what AI calls Informed Search . Instead of exploring everything, intelligent systems use knowledge to eliminate impossible paths before searching them. 🧠 2. Heuristics: The Cheat Code of Intelligence The secret behind informed search is something called a heuristic . A heuristic is simply an educated estimate. Mathematically, h(n) represents the estimated cost from the current state to the goal. One important rule always holds: h(goal) = 0 Once we've reached the goal, there's no remaining cost. Example: Finding Bucharest
AI 资讯
How the Web Actually Works: HTTP from the Ground Up
I've been going through Jim Kurose's networking lectures lately, and I kept finding myself pausing to re-read the same sections. Not because they were confusing - because things I'd been using for years were finally clicking into place. This post is me writing down what I learned, in the order it started making sense. Before HTTP, there's a webpage A webpage isn't one file. When you open a URL, your browser fetches a base HTML file - and that file references other objects. Images. Scripts. Stylesheets. Each one lives at its own URL. Each one has to be fetched separately. So loading a single "page" might mean firing off 20+ individual requests. This detail matters because the entire evolution of HTTP - from 1.0 to 3 - is basically the story of making those 20 fetches faster. HTTP runs on TCP. That has consequences. HTTP doesn't manage its own connections. It hands that job to TCP. When your browser wants something, it first opens a TCP connection to the server (port 80 for HTTP, 443 for HTTPS), and then asks for the object. Opening a TCP connection isn't free. It takes a round-trip - your machine says "hello," the server says "hello back," and then you can actually talk. That's one RTT(Round Trip Time) just to shake hands, before a single byte of your webpage arrives. So every HTTP request carries at least 2 RTTs of overhead: 1 to open the TCP connection, 1 for the actual request/response. Do that 20 times and you've spent 40 RTTs before the page renders. HTTP/1.0 vs HTTP/1.1: one change that mattered a lot HTTP/1.0 (non-persistent): open a TCP connection, fetch one object, close the connection. Repeat for every object. HTTP/1.1 (persistent): open a TCP connection, fetch as many objects as you need, then close. The server leaves the connection open after each response. That one change cuts subsequent fetches from 2 RTTs to 1 RTT each. For a page with 20 objects, that's real time saved - not microseconds, but hundreds of milliseconds that users actually feel. What an
AI 资讯
HLD Fundamentals #1: Network Protocols
Network Protocols Network protocols define how computers communicate over a network. Whether you're opening Instagram, sending a WhatsApp message, watching Netflix, or transferring money through a banking app, some protocol is working behind the scenes to make communication possible. Client-Server Model What is it? The Client-Server model is a communication architecture where: Client requests a service or data. Server processes the request and returns a response. Most modern applications follow this architecture. How Does It Work? Client ---------- Request ----------> Server Client <--------- Response ---------- Server The client always initiates communication, and the server listens for incoming requests. Real World Example Instagram When you open Instagram: Mobile app sends a request. Instagram servers process the request. Feed data is fetched from databases. Posts are returned to your phone. Instagram App | V Instagram Server | V Database Advantages Centralized control Easier security management Easy maintenance Easier data consistency Disadvantages Server can become a bottleneck Single point of failure if not replicated Interview One-Liner Client-Server architecture is a centralized model where clients request resources and servers provide them. Peer-to-Peer (P2P) Model What is it? In a Peer-to-Peer network, every machine can act as both: Client Server There is no central server controlling communication. How Does It Work? Peer A <------> Peer B ^ ^ | | V V Peer C <------> Peer D Each peer can directly share resources with others. Real World Example BitTorrent Instead of downloading a file from one server: User | +--> Peer 1 | +--> Peer 2 | +--> Peer 3 Different parts of the file are downloaded from multiple peers simultaneously. Blockchain Bitcoin and Ethereum networks operate using Peer-to-Peer communication. Advantages Highly scalable No central server cost Better fault tolerance Disadvantages Harder to manage Security challenges Data consistency issues Inter
AI 资讯
Delete Node in a Linked List
Problem Link - https://leetcode.com/problems/delete-node-in-a-linked-list/ This is one of those interview questions that looks impossible at first. Normally, to delete a node from a Linked List, we need access to the previous node. But in this problem, we're only given the node that needs to be deleted. No head. No previous pointer. So how do we remove it? Let's understand the trick. Problem Statement Write a function to delete a node in a singly linked list. You are not given the head of the list. Instead, you are given only the node that needs to be deleted. Example Input: 4 -> 5 -> 1 -> 9 node = 5 Output: 4 -> 1 -> 9 Initial Thought Normally we delete a node like this: prev.next = node.next But here: We don't have prev We don't have head So the usual deletion approach is impossible. Key Observation Although we cannot delete the current node directly, we can make it look like it never existed. Consider: 4 -> 5 -> 1 -> 9 We need to delete: 5 Instead of removing node 5 , copy the value of the next node into it. 4 -> 1 -> 1 -> 9 Now remove the next node. 4 -> 1 -> 9 The original value 5 has disappeared. Mission accomplished. Intuition Copy the next node's value into the current node. Skip the next node. The current node now behaves as if it was deleted. Since the problem guarantees that the given node is not the tail node, a next node will always exist. Dry Run Input 4 -> 5 -> 1 -> 9 node = 5 Current node: 5 Next node: 1 Step 1 Copy next node value. node.val = node.next.val List becomes: 4 -> 1 -> 1 -> 9 Step 2 Skip next node. node.next = node.next.next List becomes: 4 -> 1 -> 9 Done. Optimal Java Solution class Solution { public void deleteNode ( ListNode node ) { ListNode cur = node . next ; node . val = cur . val ; node . next = cur . next ; } } Even Shorter Version class Solution { public void deleteNode ( ListNode node ) { node . val = node . next . val ; node . next = node . next . next ; } } Complexity Analysis Metric Complexity Time Complexity O(1) Space Comp
AI 资讯
Cache Deep Dive IV — TLB, Huge Pages, and Memory-Level Parallelism
Earlier parts examined the performance characteristics of sequential and random access under single-threaded execution, and noted in passing the destructive effect of random access on the TLB. This part devotes full attention to the TLB: what it is, why a TLB miss is more severe than a cache miss, why a page table walk constitutes one of the longest dependency chains a CPU can encounter, how huge pages fundamentally alter TLB reach, and where memory-level parallelism falters in the face of TLB misses. Page Boundaries: Where the Prefetcher Halts Part III, in its discussion of prefetchers, noted a hard constraint: a prefetcher must not cross page boundaries on its own authority. The operating system manages virtual memory in units of pages (typically 4 KB, i.e., 64 cache lines). When a program reaches the end of one page and is about to step into the next, the prefetcher cannot proceed. The reason is that the next page may not reside in physical memory (it may have been swapped out to disk), or it may be an entirely invalid virtual address — if the prefetcher were to speculatively initiate an access to the next page, it would trigger a page fault: the OS would have to suspend the process and swap the page in from disk; in the case of an invalid address, the OS would terminate the process outright. From a security standpoint, the prefetcher neither can nor is permitted to autonomously cross page boundaries without TLB approval. Hence a performance brake appears every 4 KB — even when traversing an array sequentially, after every 64 cache line accesses the prefetch pipeline must pause and await confirmation of an address translation. This is not to say that modern CPU prefetchers are completely unable to cross pages. Intel's Next Page Prefetcher and AMD's equivalent mechanism can consult the TLB when approaching a page boundary — if the address mapping for the next page is already registered in the TLB, the prefetcher receives clearance to continue prefetching across th
AI 资讯
Hashing in Distributed Systems: A Complete Guide to Algorithms, Best Practices, and Real-World Applications
Have you ever wondered how Discord keeps your channel messages available even when a server goes down? Or how Amazon DynamoDB serves petabytes of data with single-digit millisecond latency? The unsung hero powering almost all these distributed systems is hashing — a simple but powerful technique that makes even load distribution, fast lookups, and seamless scaling possible. As more applications move to distributed cloud architectures, understanding hashing for distributed systems is no longer optional for developers. Choosing the wrong hashing algorithm can lead to cascading failures, cache stampedes, and expensive downtime. This guide breaks down every core hashing technique, real-world use cases, best practices, and common pitfalls to avoid in 2026. Table of Contents What is Hashing in Distributed Systems? Core Hashing Algorithms Explained Traditional Modulo Hashing Consistent Hashing Virtual Nodes (VNodes) Rendezvous Hashing (HRW) Jump Consistent Hash Maglev Hashing Multi-Probe Consistent Hashing Consistent Hashing with Bounded Loads Real-World Applications of Distributed Hashing Head-to-Head Algorithm Comparison Best Practices for Distributed Hashing Common Pitfalls to Avoid Conclusion References What is Hashing in Distributed Systems? Hashing in distributed systems is the practice of mapping data keys (e.g., user IDs, object keys, channel IDs) to server nodes using a deterministic hash function. The core goals are: Distribute load evenly across all nodes to avoid hotspots Enable fast lookups (O(1) or O(log N)) without a central coordinator Minimize data movement when nodes are added or removed during scaling Support fault tolerance by simplifying replication across nodes The simplest implementation is modulo-based hashing , where node_id = hash(key) % N and N is the total number of nodes. While trivial to implement, it suffers from a fatal flaw: the rehashing problem. When N changes (a node is added or removed), nearly all keys are remapped to new nodes, causin
AI 资讯
Teaching Networking? The OSI Simulator Is Your Best Classroom Tool
If you're a networking instructor — at a university, technical college, boot camp, or corporate training program — you know the frustration of teaching the OSI Model. Static PowerPoint slides can only do so much. Students nod along in class, but when exam time arrives, the layers blur together. The PDU names become a confusing jumble. The OSI Model Simulator by Roboticela was built with educators in mind. It transforms a passive lecture into an interactive demonstration that students engage with, remember, and take home to explore on their own. Classroom Use Cases Live Demonstration Project the simulator on a classroom screen. Have students suggest messages to send and protocols to use. Step through each layer together as a class, stopping to ask questions: "What's happening here? What header was added? What device would operate at this layer?" The interactive format maintains attention far better than any lecture. Lab Assignments Assign students to run specific simulations and document their findings: "Run HTTP and HTTPS simulations. Screenshot the Presentation Layer for each. Explain in writing what differs and why." This assignment tests both tool usage and conceptual understanding. Flipped Classroom Send students to app.osi-model-simulator.roboticela.com before class. Ask them to run three simulations and come prepared to discuss what they observed. Class time becomes richer discussion rather than basic concept delivery. Protocol Comparison Exercise Have students run simulations for all five protocols — HTTP, HTTPS, SMTP, DNS, FTP — and create a comparison chart noting the differences at each OSI layer. This develops deep protocol literacy that traditional instruction rarely achieves. Why It Works: The Science of Active Learning Research in educational psychology consistently shows that active learning produces dramatically better retention than passive instruction. The "Learning Pyramid" (Edgar Dale's Cone of Experience) suggests: Lecture: ~5% retention after 2
AI 资讯
Studying for CompTIA Network+ or CCNA? The OSI Simulator Is Your Secret Weapon
Networking certifications like CompTIA Network+ and Cisco's CCNA are career-defining credentials. They validate your understanding of networking fundamentals — and both exams test OSI Model knowledge extensively. In fact, the OSI Model is arguably the single most tested conceptual framework in entry-level and intermediate networking certifications. Why OSI Is So Critical for Certification Exams Exam questions on OSI take many forms: "At which layer of the OSI model does a router operate?" (Layer 3) "What PDU is used at the Transport Layer?" (Segment) "Which protocol operates at the Application Layer?" (HTTP, DNS, SMTP...) "A user cannot connect to a website. Troubleshooting should begin at which OSI layer?" (Layer 1, then up) "Which device operates at Layer 2?" (Switch) "What is the function of the Presentation Layer?" (Translation, encryption, compression) These questions seem straightforward on paper but are notoriously confusing under exam pressure without deep conceptual understanding. How the OSI Simulator Accelerates Your Studies Visual Memory Formation Research in cognitive science consistently shows that visual and kinesthetic learning creates stronger memories than text-only reading. When you watch the OSI Simulator animate your message through all seven layers, you're forming episodic memories — vivid, experience-based memories that are far more durable than rote memorization. Protocol-to-Layer Association One of the most commonly missed exam categories is protocol-to-layer mapping. The OSI Simulator makes this automatic: when you select HTTP, the Application Layer is highlighted. When you watch TCP headers form, you associate TCP with Layer 4 viscerally, not just verbally. PDU Name Mastery Data, Segment, Packet, Frame, Bits — the five PDU names are shown explicitly at each layer in the simulator. After running 10 simulations, these names become second nature. No flashcard can match this experiential learning. Troubleshooting Framework Practice Network+ an
AI 资讯
How to Use the OSI Model Simulator: A Step-by-Step Tutorial
Getting started with the OSI Model Simulator takes less than 60 seconds. The interface is thoughtfully designed to be intuitive for beginners while offering enough depth to satisfy advanced learners. Here's your complete step-by-step guide. Step 1: Open the Simulator Navigate to app.osi-model-simulator.roboticela.com in any modern web browser. No account required, no download necessary, and no cost. The app loads instantly and is ready to use immediately. Alternatively, visit the landing page to learn more about features and download the desktop app for offline use. Step 2: Enter Your Message In the message input field, type any text you like. This is the "data" your simulation will encapsulate. Examples: Hello, World! GET /index.html HTTP/1.1 {"user": "alice", "action": "login"} Your own name or a phrase you'll remember Using a personally meaningful message makes the encapsulation feel real rather than abstract. Step 3: Choose Your Protocol Select from five real protocols: HTTP, HTTPS, SMTP, DNS, or FTP. Each choice changes the Application Layer headers added to your data. For beginners, start with HTTP. Then re-run with HTTPS to see the Presentation Layer encryption difference. Step 4: Choose Your Transmission Medium Select your Physical Layer medium: Ethernet, Wi-Fi, Fiber Optic, Coaxial, or Radio. This affects how the Physical Layer is visualized at the end of the simulation. Step 5 (Optional): Set Custom IP Addresses For a more realistic Network Layer demonstration, enter a source IP address (simulating your device) and a destination IP address (simulating the server). This makes the Layer 3 packet header concrete and personally relevant. Step 6: Run the Simulati on Click the Run or Start button. Watch as your message travels through all seven layers: Application Layer adds protocol headers Presentation Layer adds encryption (if HTTPS) Session Layer adds session management Transport Layer segments and adds TCP/UDP header Network Layer wraps in IP packet Data Li
AI 资讯
Ethernet, Wi-Fi, Fiber, Coaxial & Radio: Transmission Media Compared
The Physical Layer's choice of transmission medium profoundly affects the performance, cost, security, and reliability of a network. The OSI Model Simulator supports all five major media types — making it a powerful tool for understanding how physical choices ripple up through all seven OSI layers. Medium Speed Max Distance Security Cost Ethernet Up to 10 Gbps+ 100m (Cat6a) High (physical access) Low Wi-Fi Up to ~9.6 Gbps (Wi-Fi 6) ~100m indoor Medium (WPA3) Low Fiber Optic Terabits/s 100s of km Very High High Coaxial Up to 1 Gbps 500m (RG-8) Medium Medium Radio Variable (5G: Gbps) km to global (satellite) Low–Medium Variable Ethernet: The Reliable Standard Ethernet is the dominant wired networking standard in homes, offices, and data centers. Using twisted-pair copper cables (Cat5e, Cat6, Cat6a), it provides reliable, high-speed connectivity with predictable latency. The IEEE 802.3 standard governs Ethernet, and modern variants include 1GbE, 10GbE, 25GbE, 40GbE, and 100GbE. Wi-Fi: Wireless Freedom Wi-Fi (IEEE 802.11) eliminated the need for physical cables in most consumer settings. Wi-Fi 6 (802.11ax) and Wi-Fi 6E deliver impressive speeds, but shared medium access, interference, and radio propagation challenges mean it will never fully replace wired Ethernet for critical applications. Fiber Optic: The Internet's Backbone Fiber optic cables carry data as pulses of light through glass or plastic strands. They're immune to electromagnetic interference, support enormous bandwidth, and can span continents — literally. Every major internet exchange, submarine cable, and data center interconnect uses fiber. Coaxial Cable: The Cable TV Legacy Coaxial cable — familiar from cable TV connections — consists of a central conductor surrounded by insulating layers and a braided metal shield. DOCSIS-based cable internet connections (common from ISPs like Comcast) use coaxial as the last-mile medium. Radio: Wireless at Scale From the cellular 5G network in your pocket to satellite
AI 资讯
CAP Theorem Explained
CAP Theorem Explained: Choosing Between Consistency, Availability, and Partition Tolerance in Databases Imagine you're trying to book a flight online, and just as you're about to pay, the website crashes. When you try to book again, you find that the flight is now sold out, even though the website initially showed available seats. This frustrating experience is a classic example of a database trade-off between consistency, availability, and partition tolerance. The CAP theorem, first introduced by Eric Brewer in 2000, states that it's impossible for a distributed data store to simultaneously guarantee more than two out of these three principles. In this post, we'll delve into the world of CAP theorem, exploring its fundamentals, real-world database examples, and design implications. Introduction to CAP Theorem Understanding the Basics of CAP Theorem The CAP theorem is based on three primary principles: Consistency : Every read operation will see the most recent write or an error. Availability : Every request receives a response, without guarantee that it contains the most recent version of the information. Partition Tolerance : The system continues to function and make progress even when network partitions (i.e., splits or failures) occur. Importance of CAP Theorem in Distributed Systems In distributed systems, where data is spread across multiple nodes, the CAP theorem plays a crucial role in understanding the trade-offs between these principles. By grasping the CAP theorem, developers can design more resilient and scalable databases that meet the specific needs of their applications. Brief Overview of the Blog Post This post will explore the CAP theorem in depth, using real-world database examples to illustrate the trade-offs between consistency, availability, and partition tolerance. We'll discuss the fundamentals of CAP theorem, examine CA, CP, and AP systems, and provide guidance on designing for each combination. By the end of this post, you'll have a solid un
AI 资讯
AI as a Thin Client and the Crisis of Knowledge Succession: An Academic Analysis
Two Hypotheses In the contemporary discussion about artificial intelligence, two distinct hypotheses intersect and are often conflated. The first hypothesis describes AI as a thin client between intention and result. Historically, a chain of translators existed between a concept and an artifact. A person formulated a task for a programmer, the programmer wrote code, the code became a program. A screenwriter passed an idea to a studio, the studio hired a VFX team, the team produced a film. A composer worked with musicians and a studio to record a track. AI shortens this chain, allowing a result to be obtained directly from a natural language prompt. The second hypothesis is more radical. It asserts that AI washes out not only performers but also apprentices. The main function of many professions was not the production of the current result, but the reproduction of knowledge. A junior was needed not because he is useful today, but because in five years he will become a senior. A student was needed not to create value now, but to become an engineer. A doctoral candidate was needed not for brilliant papers, but to undergo the school of scientific thinking. The Destruction of the Apprenticeship Mechanism The classical model of competence growth was built on review. A junior wrote code, a senior dissected it, extracted the substrate of experience, and transmitted professional intuition. Each review was an act of knowledge transfer. The new model looks different. A person formulates a prompt, AI generates the result. If code of acceptable quality appears immediately, the economic need for a junior declines. Along with it, the mechanism through which knowledge was transmitted disappears. A structural question arises that goes beyond the labor market. Where will the next seniors come from if the intermediate link does not undergo the path of learning through mistakes and reviews. This is a problem of competence reproduction, not simply automation. The Transformation of Educa
AI 资讯
Markov Chain Coin Sequence: E[HH] vs E[HTH] Explained
In This Article The Question The Intuition Trap Building the State Machine for HH Solving the System: E[HH] = 6 Building the State Machine for HTH Solving the System: E[HTH] = 10 Why Overlapping Patterns Change Everything Python Simulation: 100,000 Trials Business Application: Credit Migration & Web Ranking The Question You flip a fair coin — one with probability 1/2 of landing heads and 1/2 of landing tails — repeatedly, recording every result. What is the expected number of flips required until the sequence HH appears for the first time as consecutive results? What is the expected number of flips required until HTH appears for the first time? Both questions have the same surface structure: you want a specific consecutive pattern, and you want to know, on average, how many flips it takes to observe it. The coin is fair, the flips are independent, and the patterns are short. These seem like they should yield similar answers. They do not. HH takes exactly 6 flips on average. HTH takes exactly 10. The four-flip gap between those two answers is not a rounding artifact or a computational error — it is a precise consequence of the internal structure of each pattern, and deriving it rigorously is one of the cleanest demonstrations of absorbing Markov chain analysis you will encounter. This problem appears frequently in quantitative finance interviews — at firms like Jane Street, Citadel, and Two Sigma — precisely because it separates candidates who understand Markov structure from those who rely on heuristic reasoning. Getting the answer right, and being able to explain it, requires building a state machine, writing the system of first-step equations, and solving it algebraically. That is exactly what we will do. The Intuition Trap Before the formal derivation, it is worth examining why intuition fails here. The most common wrong answer from candidates is that both expected values should be "similar" because the patterns are comparable in length. This intuition imports th