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

Μεταβλητές - πράξεις - τυχαίοι αριθμοί στο τερματικό


rearshooter

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

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

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

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

 

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

 

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

 

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

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

ευχαριστώ!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

αν δεν γινεται στα γνωστα 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))
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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