There are several ways you can accomplish this. One would be to set up a levels system based upon the amount of baskets. You could do something like:
NPC Code:
level = int(baskets / arbitrary number);
And then calculate probability based on level.
-------------------------
However, If you want their probability to steadily increase over time (without a level type system), that's where exponents would come into play. You could apply it several ways; perhaps the simplest would be to calculate the chance to miss, and use that to figure out if the player made the shot or not.
NPC Code:
misschance = basemisschance * e ^ -(constant*numberofbaskets);
For example:
Say you want them to start off missing about 50% of their shots. You'd set the basemisschance to 50 (keep in mind we're dealing with percents).
NPC Code:
misschance = 50 * e ^ -(constant*numberofbaskets);
We still have one constant left in there: What does that do? It controls just how much chance to miss is lost per basket (how much chance to hit is gained per basket). Vary the constant to vary how fast people improve.
Then, you can add a check if the miss chance ends up below 10%, and if so, then set it to 10%.
Now you've got a percent chance to miss. From here, it's a simple matter of comparing a random number between 1 and 100 to the miss chance; if it's greater than the miss chance then it will hit, else it will fail.
Hope this helps!