Bird
Raised Fist0
SciPydata~5 mins

Physical constants (speed of light, Planck) in SciPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Physical constants (speed of light, Planck)
O(n)
Understanding Time Complexity

We want to see how the time to get physical constants changes as we ask for more constants.

How does the work grow when we retrieve many constants like speed of light or Planck's constant?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


from scipy.constants import physical_constants

constants_to_get = ["speed of light in vacuum", "Planck constant", "electron mass"]
results = []
for name in constants_to_get:
    value = physical_constants[name]
    results.append(value)

This code fetches values for a list of physical constants one by one from scipy.

Identify Repeating Operations
  • Primary operation: Looping over the list of constant names and fetching each constant.
  • How many times: Once for each constant in the list.
How Execution Grows With Input

Each new constant adds one more fetch operation, so the work grows directly with the number of constants.

Input Size (n)Approx. Operations
1010 fetches
100100 fetches
10001000 fetches

Pattern observation: The time grows in a straight line as we ask for more constants.

Final Time Complexity

Time Complexity: O(n)

This means the time to get constants grows directly with how many constants you ask for.

Common Mistake

[X] Wrong: "Fetching multiple constants is instant and does not depend on how many I ask for."

[OK] Correct: Each constant requires a separate lookup, so more constants mean more work and more time.

Interview Connect

Understanding how work grows with input size helps you explain efficiency clearly and shows you can think about performance in real tasks.

Self-Check

"What if we stored all constants in a dictionary once and then accessed them repeatedly? How would the time complexity change?"

Practice

(1/5)
1. What is the value of the speed of light constant c in scipy.constants measured in?
easy
A. Meters per second
B. Kilometers per hour
C. Miles per second
D. Feet per second

Solution

  1. Step 1: Understand the unit of speed of light in scipy.constants

    The speed of light c in scipy.constants is given in meters per second (m/s), which is the standard SI unit for speed.
  2. Step 2: Confirm the unit from official documentation or usage

    Checking the official scipy documentation confirms c is in meters per second.
  3. Final Answer:

    Meters per second -> Option A
  4. Quick Check:

    Speed of light unit = meters per second [OK]
Hint: Speed of light is always in meters per second [OK]
Common Mistakes:
  • Confusing meters per second with kilometers per hour
  • Assuming miles or feet units
  • Not checking scipy documentation
2. Which of the following is the correct way to import and access Planck's constant from scipy.constants?
easy
A. import scipy.constants; scipy.constants.planck
B. import scipy.constants as sc; sc.Planck
C. from scipy.constants import Planck
D. from scipy.constants import planck

Solution

  1. Step 1: Recall the exact attribute name for Planck's constant

    In scipy.constants, Planck's constant is accessed as planck (all lowercase).
  2. Step 2: Check import syntax correctness

    import scipy.constants; scipy.constants.planck uses import scipy.constants and accesses scipy.constants.planck, which is correct. from scipy.constants import planck tries to import planck directly, which is valid but not the exact syntax shown here. import scipy.constants as sc; sc.Planck uses incorrect capitalization Planck. from scipy.constants import Planck also uses wrong capitalization and import style.
  3. Final Answer:

    import scipy.constants; scipy.constants.planck -> Option A
  4. Quick Check:

    Correct attribute name is planck, accessed via scipy.constants [OK]
Hint: Planck constant is lowercase 'planck' in scipy.constants [OK]
Common Mistakes:
  • Using uppercase 'Planck' instead of lowercase
  • Incorrect import syntax
  • Trying to import planck directly without correct syntax
3. What is the output of this code snippet?
from scipy.constants import c, planck
wavelength = 500e-9  # 500 nm in meters
energy = planck * c / wavelength
print(round(energy, 20))
medium
A. 3.972891714285714e-16
B. 3.972891714285714e-25
C. 3.972891714285714e-22
D. 3.972891714285714e-19

Solution

  1. Step 1: Calculate photon energy using formula E = h * c / wavelength

    Given wavelength = 500 nm = 500e-9 m, Planck's constant (h) and speed of light (c) are constants from scipy.constants. Calculate energy = planck * c / wavelength.
  2. Step 2: Perform calculation and round result

    Using scipy.constants values: planck ≈ 6.62607015e-34, c ≈ 299792458, energy ≈ (6.62607015e-34 * 299792458) / 500e-9 = 3.972891714285714e-19 J. Rounded to 20 decimals matches 3.972891714285714e-19.
  3. Final Answer:

    3.972891714285714e-19 -> Option D
  4. Quick Check:

    Energy = h*c/wavelength = 3.97e-19 J [OK]
Hint: Use E = h*c/wavelength formula with correct units [OK]
Common Mistakes:
  • Forgetting to convert nm to meters
  • Mixing up multiplication and division
  • Rounding too early or incorrectly
4. Identify the error in this code snippet that tries to calculate photon energy:
from scipy.constants import Planck, c
wavelength = 600e-9
energy = Planck * c / wavelength
print(energy)
medium
A. Missing import for speed of light
B. Wavelength should be in nanometers, not meters
C. Planck constant is incorrectly capitalized
D. Division operator should be multiplication

Solution

  1. Step 1: Check import statement for Planck constant

    The code imports Planck with uppercase 'P', but in scipy.constants it is lowercase planck. This causes an AttributeError.
  2. Step 2: Verify other parts of the code

    Wavelength is correctly converted to meters (600e-9), speed of light c is imported correctly, and the formula uses correct division. So no other errors.
  3. Final Answer:

    Planck constant is incorrectly capitalized -> Option C
  4. Quick Check:

    Correct attribute is 'planck' lowercase [OK]
Hint: Check exact case for constants in scipy.constants [OK]
Common Mistakes:
  • Using uppercase 'Planck' instead of lowercase
  • Confusing units of wavelength
  • Wrong operator in formula
5. You want to calculate the energy of a photon with wavelength 400 nm using scipy.constants. Which code snippet correctly computes and prints the energy in electronvolts (eV)?
hard
A. from scipy.constants import c, planck wavelength = 400e-9 energy_ev = planck * c / wavelength print(round(energy_ev, 3))
B. from scipy.constants import c, planck, electron_volt wavelength = 400e-9 energy_joule = planck * c / wavelength energy_ev = energy_joule / electron_volt print(round(energy_ev, 3))
C. from scipy.constants import c, planck, electron_volt wavelength = 400 energy_joule = planck * c / wavelength energy_ev = energy_joule * electron_volt print(round(energy_ev, 3))
D. from scipy.constants import c, planck wavelength = 400e-9 energy_joule = planck * c * wavelength print(round(energy_joule, 3))

Solution

  1. Step 1: Calculate photon energy in joules using E = h*c / wavelength

    Use wavelength in meters (400e-9). Calculate energy_joule = planck * c / wavelength.
  2. Step 2: Convert energy from joules to electronvolts

    Divide energy_joule by electron_volt constant to get energy in eV.
  3. Step 3: Check code correctness

    from scipy.constants import c, planck, electron_volt wavelength = 400e-9 energy_joule = planck * c / wavelength energy_ev = energy_joule / electron_volt print(round(energy_ev, 3)) correctly imports electron_volt, converts units properly, and prints rounded value. Other options either miss conversion, use wrong wavelength units, or wrong formula.
  4. Final Answer:

    from scipy.constants import c, planck, electron_volt wavelength = 400e-9 energy_joule = planck * c / wavelength energy_ev = energy_joule / electron_volt print(round(energy_ev, 3)) -> Option B
  5. Quick Check:

    Energy (eV) = (h*c/wavelength)/electron_volt [OK]
Hint: Convert joules to eV by dividing by electron_volt constant [OK]
Common Mistakes:
  • Skipping conversion from joules to eV
  • Using wavelength in nm without converting to meters
  • Multiplying instead of dividing for energy calculation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard