Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπέρα και καλη Ανάσταση,

 έχω το εξής πρόβλημα

θέλω να πάρω τυχαίους αριθμούς με γνωστό άθροισμα ή με γνωστό μέσο όρο

 

για παράδειγμα 1) 15 αριθμοί με άθροισμα 150 και να μου δίνει  15 τυχαίες τιμές  (να μπορώ να όρισω αν θέλω νούμερα μετά το κόμμα ή όχι - ακέραιοι ή δεκαδικοί)

 

παράδειγμα 2) 15 αριθμοί με μέσο όρο 20 και να μου δίνει 15 τυχαίες τιμές που βγάζουν αυτό το μέσο όρο.(να μπορώ παλι να ορίσω αν είναι ακέραιοι ή δεκαδικοί)

 

φαντάζομαι στο τερμάτικο γίνεται....(ελπίζω)

παρακαλώ τα φώτα σας!

ευχαριστώ!

Δημοσ.

Καφε να κανει? Στο τερματικο παντα

Στην python γινεται ευκολα, παραγεις 15 τυχαιους αριθμους τους διαιρεις με το αθροισμα τους και πολ/ζεις με τον αριθμο που θες, στο παραδειγμα 150.

Για το β) οτι στα α και διαιρεσε και με το πληθος

Δημοσ.

αν δεν γινεται στα γνωστα shells του λίνουξ θα ήθελα οδηγίες για javascript python κτλ..

 

 

edit ένα παράδειγμα από python?

Δημοσ.

αν δεν γινεται στα γνωστα shells του λίνουξ θα ήθελα οδηγίες για javascript python κτλ..

 

 

edit ένα παράδειγμα από python?

Εννοείτε πως γίνεται με απλό script. Αν οι τύποι που έχει περιγράψει ο Ablaoublas είναι σωστοί, τότε με ένα απλό Bourne shell θα το καταφέρεις. Είναι απλό δεν νομίζω να σου πάρει πάνω από 100 γραμμές. Εγω για παράδειγμα θα τα έκανα και τα δύο σε ένα και στο terminal θα τα εκτελούσα καπως έτσι ./rand -n 15 -t MO 20 , για να μου βγάλει 15 αριθμούς με ΜΟ 20. Για να ξεκινήσεις σίγουρα από τα βασικά, πρέπει σίγουρα να μάθεις να εκτυπώνεις στο terminal (echo) να κάνεις πράξεις με αριθμούς, κάποια if και κάποια εντολή επανάληψης όπως η do. Μετά δες για την μεταβλητή RANDOM όπου θα σε βοηθήσει στο να παράγεις τους αριθμούς

https://www.eduonix.com/blog/shell-scripting/generating-random-numbers-in-linux-shell-scripting/

Δημοσ.

Για κανένα λόγο μην πας να το κάνεις με bash. Τζάμπα θα ταλαιπωρηθείς.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random

# αυτά κανονικά θα τα παίρνεις σαν input κατά την κλήση του script
no_numbers = 6
target_total = 1593.6

MIN_NUMBER = 0
MAX_NUMBER = 10000

random_sequence = [random.uniform(MIN_NUMBER, MAX_NUMBER) for i in range(no_numbers)]
total = sum(random_sequence)
numbers = [n / total * target_total for n in random_sequence]

print("Random sequence: %r" % random_sequence)
print("Random sequence total: %f" % total)
print("Output:  %r" % numbers)
print("Output total: %f" % sum(numbers))

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...