Forum » Programiranje » pomoč pri nalogi
pomoč pri nalogi
rsrs ::
Pozdravljeni.
Imam problem pri eni nalogi pri programiranju v c++ in sicer moram izdelati program kateri izpiše zadetke v in izven kroga (krog je v koordinatnem sistemu (x= -1 do 1;y= -1 do 1) naključno izbranih 1000 zadetkov. Na koncu mora še izpisat statistiko koliko je bilo zadetkov v krogu in koliko izven kroga.
Ker sem totalen začetnik niti ne vem kje in kako bi sploh začel. Za kakršnokoli pomoč sem vam zelo hvaležen.
lp
Imam problem pri eni nalogi pri programiranju v c++ in sicer moram izdelati program kateri izpiše zadetke v in izven kroga (krog je v koordinatnem sistemu (x= -1 do 1;y= -1 do 1) naključno izbranih 1000 zadetkov. Na koncu mora še izpisat statistiko koliko je bilo zadetkov v krogu in koliko izven kroga.
Ker sem totalen začetnik niti ne vem kje in kako bi sploh začel. Za kakršnokoli pomoč sem vam zelo hvaležen.
lp
xx23 ::
A so kakšne omejitve za te zadetke? Ker če je lahko zadetek od 0 do neskončno od središča, potem so praktično vsi izven kroga.
rsrs ::
omejitev so točke x(-1 do 1) in y(-1 do 1) povezane v kvadrat, znotraj kvadrata pa je krog z radiusom 2. tak si jaz to predstavljam...
onCloud9 ::
Ponavadi se to dela v kvadratu s stranico 2, ki ima včrtan krog z radijem 1. Iz razmerja števila zadetkov v in zunaj kroga se da izračunati pi.
K0l1br1 ::
če je x manjši od pozitivne in negativne vrednosti korena iz y na 2 - 1, je točka znotraj kroga, če je večji od te pozitivne ali negativne vrednosti korena y2 - 1 in hkrati manjši od 1 oziroma - 1 je pa znotraj kvadrata in izven kroga.
Tole rukneš v if stavke in bi moralo znati ugotoviti, kam kaj pade
Tole rukneš v if stavke in bi moralo znati ugotoviti, kam kaj pade
Zgodovina sprememb…
- spremenilo: K0l1br1 ()
rsrs ::
če bi jaz to vedel rukniti v if stavke nebi tratil vašega dragocenega časa z mojimi vprašanji...
zavtom ::
Malo se potrudi. V življenju ti nihče ne bi samo nosil k riti.
Vsi smo bili enkrat začetniki. V svetu v katerega pluješ potrebušen predstem motivacjo, željo po vedenju, željo po odkrivanju sveta. Če nimaš motivacije, jo hitro najdi, saj boš drugače prej ali slej odnehal.
Vsi smo bili enkrat začetniki. V svetu v katerega pluješ potrebušen predstem motivacjo, željo po vedenju, željo po odkrivanju sveta. Če nimaš motivacije, jo hitro najdi, saj boš drugače prej ali slej odnehal.
HotBurek ::
Za miljon naključnih točk pride takšen rezultat:
Tisti ki poznate to reč; je rezultat približno pravilen?
Sicer pa spodaj primer kode, napisana za Python, s komentarji. Z nekaj vaje se da naredit rewrite, korak po koraku, v drug jezik.
total=1000000 inside=785593 outside=214407 inside=78.56% outside=21.44%
Tisti ki poznate to reč; je rezultat približno pravilen?
Sicer pa spodaj primer kode, napisana za Python, s komentarji. Z nekaj vaje se da naredit rewrite, korak po koraku, v drug jezik.
#!/usr/bin/python3.5 #import import math; import random; # define array pointarray = []; # define arraylength length = 1000; # define inside/outside counter inside = 0; outside = 0; # point classs class Point: x = 0; y = 0; # main entry if __name__ == "__main__": # create random a/b point pairs for i in range(0, length): p = Point(); p.x = round((random.randrange(-1000000, 1000000)) / 1000000, 3); p.y = round((random.randrange(-1000000, 1000000)) / 1000000, 3); # add point to array pointarray.extend([p]); # print percentage completed print(str(round(i/length*100)) + "% filling array with random points ..."); # loop throug array of points for i in range(0, len(pointarray)): # read point from array p = pointarray[i]; # calculate point distance to circle center # center of circle is at x=0, y=0 distance = round(math.sqrt((p.x * p.x) + (p.y * p.y)), 3); # is inside or outside where = ""; # circle r=1 if distance <= 1: inside = inside + 1; where = "inside"; else: outside = outside + 1; where = "outside"; # print completed/x/y/distance/where print(str(round(i/length*100)) + "%" + "\t" + "x=" + str(p.x) + "\t" + "y=" + str(p.y) + "\t" + "distance=" + str(distance) + "\t" + where); # print inside/outside stats print("total=" + str(len(pointarray))); print("inside=" + str(inside)); print("outside=" + str(outside)); # print inside/outside ration print("inside=" + str(round(inside/len(pointarray)*100, 2)) + "%"); print("outside=" + str(round(outside / len(pointarray) * 100, 2)) + "%");
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
FTad ::
@HotBurek,
ce je popoln zacetnik, ne bo znal niti kode, ki si mu jo podaril znal uporabiti oz jo razumeti...
ce je popoln zacetnik, ne bo znal niti kode, ki si mu jo podaril znal uporabiti oz jo razumeti...
Blazzz ::
Python. Malenkost krajse.
C++
C++ nisem skompajlal tako da je mogoce kaksen problem.
import numpy as np N = 1000000 points = np.random.rand(N,2) print(np.sum((points[:, 0]**2 + points[:, 1]**2) < 1))
C++
#include <random> #include <iostream> int main() { std::random_device r; std::default_random_engine gen(r()); std::uniform_real_distribution<double> distribution(0.0,1.0); const int num_points = 1000000; int hits = 0; for (int i = 0; i < num_points; ++i) { const double x = distribution(gen); const double y = distribution(gen); hits += x * x + y * y < 1; } std::cout << "Num points: " << num_points << ", hits: " << hits << "\n" return 0; }
C++ nisem skompajlal tako da je mogoce kaksen problem.
HotBurek ::
Je problem in to velik; na koncu std::cout vrstice fali podpičje.
Tole me pa zanima. Glede na to, da ni korena (hits += x * x + y * y < 1;), si omejen zgolj na radij=1 in distribution(0.0,1.0)? Bi šlo za krog z r=3, in dist(0.0,3.0)?
Tole me pa zanima. Glede na to, da ni korena (hits += x * x + y * y < 1;), si omejen zgolj na radij=1 in distribution(0.0,1.0)? Bi šlo za krog z r=3, in dist(0.0,3.0)?
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Blazzz ::
Pardon, za podpičje :)
Za poljuben radij bi condition bil < r*r.
Za poljuben radij bi condition bil < r*r.
Zgodovina sprememb…
- spremenil: Blazzz ()
SloKin ::
Če bi mi tole sprogramiral bi ti dal za izvirnost vse točke:
Drugače ti predlagam, da pogledaš malo matematike preden se lotiš reševanja matematičnih nalog. Sqrt ni potreben in ti dela samo štalo.
Evo ti enovrstičnica v čistem pythonu:
int(pi / 4 * 1000)
Drugače ti predlagam, da pogledaš malo matematike preden se lotiš reševanja matematičnih nalog. Sqrt ni potreben in ti dela samo štalo.
Evo ti enovrstičnica v čistem pythonu:
import random sum([random.uniform(-1, 1) ** 2 + random.uniform(-1, 1)**2 <= 1 for _ in range(1000)])
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java-matematika] Računanje relativnega horizontalnega in vertikalnega kota v 3DOddelek: Programiranje | 1079 (915) | zavtom |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18032 (8780) | black ice |
» | [c#] ukaz radirkaOddelek: Programiranje | 1111 (904) | japol |
» | Pomoč pri programiranju z javoOddelek: Programiranje | 3545 (2472) | milc |
» | [C#] overloaded operator ==Oddelek: Programiranje | 1111 (990) | user4683 |