Sunteți pe pagina 1din 2

Pentru a implementa aplicația Polyglot care utilizează Python pentru citirea

datelor de la tastatură și R pentru calculul distribuției binomiale, urmând cu


atenție cerințele date, iată un exemplu de cod:

1. Mai întâi, avem nevoie de un script Python pentru a citi cele două numere de la
tastatură și pentru a le transmite limbajului R pentru calcul.
2. Apoi, avem nevoie de un script R care să calculeze distribuția binomială și să
afișeze probabilitatea corespunzătoare.

Script Python (`input.py`):

```python
from java.util import Scanner

def read_input():
sc = Scanner(System.in)
print("Introdu numărul de aruncări ale unei monede:")
num_aruncari = int(sc.nextLine())
print("Introdu numărul x (1 ≤ x ≤ numărul de aruncări):")
x = int(sc.nextLine())
return num_aruncari, x

num_aruncari, x = read_input()
print(num_aruncari)
print(x)
```

Script R (`distributie_binomiala.R`):

```R
# Citirea datelor transmise din Python
num_aruncari <- as.integer(commandArgs(trailingOnly=TRUE)[1])
x <- as.integer(commandArgs(trailingOnly=TRUE)[2])

# Calculul distribuției binomiale


prob <- dbinom(x, num_aruncari, 0.5)

# Afișarea rezultatului
cat("Probabilitatea de a obține cel mult", x, "ori pajură din", num_aruncari,
"aruncări de monedă este:", prob, "\n")
```

Aplicația Java (`Main.java`):

```java
import org.graalvm.polyglot.*;

public class Main {


public static void main(String[] args) {
try (Context polyglot = Context.newBuilder().allowAllAccess(true).build())
{
// Executăm scriptul Python pentru a citi datele de la tastatură
polyglot.eval("python", "input.py");

// Preiați datele citite de la tastatură


int num_aruncari = 100; // Setăm valorile pentru a putea executa
exemplul
int x = 50;
// Transmiteți datele către scriptul R
polyglot.eval("R", "source('distributie_binomiala.R')");

// Calculul distribuției binomiale și afișarea probabilității


Value result = polyglot.eval("R", "prob <- dbinom(" + x + ", " +
num_aruncari + ", 0.5); prob;");
double probabilitate = result.asDouble();
System.out.println("Probabilitatea de a obține cel mult " + x + " ori
pajură din " + num_aruncari + " aruncări de monedă este: " + probabilitate);
}
}
}
```

Asigurați-vă că aveți toate cele trei fișiere în același director pentru a rula
acest cod Java. Această aplicație va citi cele două numere de la tastatură folosind
Python, va transmite acele numere către R pentru calculul distribuției binomiale și
va afișa rezultatul în Java.

S-ar putea să vă placă și