Python Forum
Random data generation sum to 1 by rounding
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Random data generation sum to 1 by rounding
#7
To avoid 0 I would use random.sample(). It guarantees each value is unique.
import random
 
def random_divisions(n, total_size=100):
    values = sorted([0, total_size] + random.sample(range(total_size), n-1))
    return sorted([(y-x)/total_size for x,y in zip(values , values [1:])])
 
r = random_divisions(5)
print(f"{r}  {sum(r)}")
Output:
[0.03, 0.04, 0.24, 0.33, 0.36] 1.0
Reply


Messages In This Thread
RE: Random data generation sum to 1 by rounding - by deanhystad - Oct-03-2021, 01:02 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  need help rounding joseph202020 7 1,417 Feb-21-2023, 08:13 PM
Last Post: joseph202020
  Node Flow Generation in Python Linenloid 0 682 Feb-21-2023, 07:09 PM
Last Post: Linenloid
  Allure Report Generation rotemz 0 833 Jan-24-2023, 08:30 PM
Last Post: rotemz
  from numpy array to csv - rounding SchroedingersLion 6 2,346 Nov-14-2022, 09:09 PM
Last Post: deanhystad
  Why doesnt chunk generation work? LotosProgramer 1 1,986 Apr-02-2022, 08:25 AM
Last Post: deanhystad
  Rounding issue kmll 1 1,463 Oct-08-2021, 10:35 AM
Last Post: Yoriz
Question PDF generation / edit SpongeB0B 2 2,129 Jul-28-2021, 05:59 AM
Last Post: SpongeB0B
  Not rounding to desired decimal places? pprod 2 2,620 Mar-05-2021, 11:11 AM
Last Post: pprod
  Calling Input for Random Generation ScaledCodingWarrior 1 1,908 Feb-02-2021, 07:27 PM
Last Post: bowlofred
  Decimal Rounding error project_science 4 2,831 Jan-06-2021, 03:14 PM
Last Post: project_science

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020