or certain days or every other week on this day or something like that, and the percentage/pattern if you know it.
Edit: I just saw that there is a formula for it in "how often do I get a yanma swarm in soulsilver" thread, but what is it??? I want a mawile swarm so bad.
Pokémon swarms were largely expanded in Generation IV. Once the player attains the National Pokédex every day in a particular location a swarm of Pokémon will appear. This changes the probability of finding a given Pokémon from 0% to 40%.
In order to find them in the game, you will have to check Professor Oak's Pokémon Talk Radio Station on the PokéGear. Each day, he will say of Pokémon that have been spotted in a specific area across Johto or Kanto. This changes each day so it's always best to check the radio to see if the Pokémon is available.
In Soul Silver you can find a swarm of Mawile in Route 9 in the Kanto Region. As mentioned above they have a 40% encounter rate when Professor Oak says they have been spotted in the area.
Source
Hope I helped :)
>Pokémon outbreaks were largely expanded in Generation IV. Once the player attains the National Pokédex, every day in a particular location, a "swarm of Pokémon" appears, which changes the probability of finding the given Pokémon from 0% to 40%. Outbreaks last only one day and are random events
Unfortunately, swarms are random events and there is no actual percentage as to what swarms will appear. Of course, if you really want a Pokemon that is unobtainable in that game, you can always trade from a previous game, which is probably the easier option.
Mawile is available in Diamond, Pearl and Platinum at Iron Island with Ruby inserted into the GBA slot, and it can be found at a number of places in Ruby itself.
Hope I helped. :) Source: http://bulbapedia.bulbagarden.net/wiki/Pokémon_outbreak#Generation_IV