Nekik ugyanaz van. Milyen körülmények között szerepel az azonos karakterláncoknak ugyanaz a hivatkozása? A megoldások internetes űrlapot gyűjtenek a „Milyen körülmények között vannak azonos sorokhoz ugyanaz a hivatkozás?” kérdésre.

Fizikai feladat - 2379

2017-03-16
Két egyforma golyó azonos hőmérsékletű. Az egyik golyó vízszintes síkon van, a másik egy menetre van felfüggesztve. Ugyanannyi hő kerül mindkét szférába. A felfűtési folyamat olyan gyors, hogy nincs hőveszteség a szomszédos objektumok és a környezet fűtésére. Melegítés után a golyók hőmérséklete azonos vagy eltérő lesz? Indokolja a választ.


Megoldás:


1. ábra

2. ábra
A különbség a golyók tömegközéppontjainak viselkedésével függ össze.

Hagyja, hogy a golyók térfogata növekedjen, ahogy felmelegednek. Ebben az esetben az első golyó tömegközéppontjának magassága a vízszintes sík felett megnő (1. ábra), a felfüggesztett golyó tömegközéppontja pedig leesik (2. ábra).

A termodinamika első főtétele alapján felírhatjuk:

a) $Q = cm \Delta T_(1) + mgh, \Delta T_(1) = \frac(Q - mgh)(cm)$;
b) $Q = cm \Delta T_(2) - mgh, \Delta T_(2) = \frac(Q + mgh) (cm) $;

ahol $x$ annak az anyagnak a fajhője, amelyből a golyó készült, $m$ a tömege.

Ez azt jelenti, hogy $\Delta T_(2) > \Delta T_(1)$, azaz a függő labdát magasabb hőmérsékletre kell melegíteni, mint a vízszintes felületen fekvő labdát. Értékeljük a hatást. Legyen a golyó sugara $R$, és az anyag lineáris tágulási együtthatója, amelyből a golyó készült, egyenlő: $\alpha$. Ekkor a golyó tömegközéppontjának változása miatti hőmérséklet-változás és a neki átadott hőmennyiség $Q$ miatti hőmérsékletváltozásának $\Delta T$ aránya egyenlő lesz:

$\frac(\Delta T^(\prime))(\Delta T) = \frac(mgh)(cm \Delta T) = \frac(mgR \alpha \Delta T)(cm \Delta T) = \frac (g)(c) R\alpha$.

A becsült értékek kiszámítása után például egy $R = 0,1 m sugarú vasgolyóra (c=450 J/(kg \cdot K), \alpha = 11,7 \cdot 10^(-6) K^(-1 ) )$, a következőt kapjuk: $\Delta T^( \prime) / \Delta T = 2,6 \cdot 10^(-8)$.

Így a feladatban tárgyalt hatás elhanyagolható, és túlmutat a kísérleti kimutatás lehetőségén.

Keresgéltem a weboldalakon, és tele voltam kérdésekkel, de nem találtam választ erre a kérdésre. Azt a megfigyelést tettem, hogy a Python 2.7.3-ban, ha két változót rendelünk ugyanahhoz a karakterlánchoz, mint pl.

>>> a = "a" >>> b = "a" >>> c = " " >>> d = " "

Ekkor a változóknak ugyanaz lesz a hivatkozása:

>>> a b igaz >>> c d igaz

Ez néhány hosszabb karakterláncra is igaz:

>>> a = "abc" >>> b = "abc" >>> a b igaz >>> " " is " " igaz >>> " " * 1 az " " * 1 igaz

>>> a = "ac" >>> b = "ac" >>> a b hamis >>> c = " " >>> d = " " >>> c d hamis >>> " " * A 2 értéke " " * 2 Hamis

Valaki el tudná magyarázni ennek az okát?

Gyanítom, hogy előfordulhatnak egyszerűsítések/cserék az értelmező által, és/vagy valamilyen gyorsítótárazási mechanizmus, amely kihasználja azt a tényt, hogy a karakterláncok bizonyos speciális esetekben optimalizálhatatlanok, de mit tudok én? Megpróbáltam mély másolatokat készíteni a karakterláncokról az str konstruktor és a copy.deepcopy függvény segítségével, de a karakterláncok továbbra sem kompatibilisek a hivatkozásokkal.

A problémáim azért vannak, mert a karakterlánc-hivatkozási egyenlőtlenségeket ellenőrzöm egyes egységtesztekben, amelyeket új stílusú python osztály klónozási módszerekhez írok.

3 A megoldások űrlapot gyűjtenek a weben a „Milyen körülmények között kapcsolódnak azonos karakterláncokhoz ugyanaz a hivatkozás?” kérdésre.

A karakterláncok gyorsítótárazásának és újrafelhasználásának részletei a megvalósítástól függenek, Python-verziónként változhatnak, és nem lehet rájuk támaszkodni. Ha ellenőrizni szeretné a karakterláncok egyenlőségét, használja helyette az ==-t.

A CPythonban (a leggyakrabban használt Python-implementáció) a forráskódban előforduló karakterlánc-literálok mindig internáltak, így ha ugyanaz a karakterlánc-literál kétszer fordul elő a forráskódban, akkor ugyanarra a karakterlánc-objektumra mutatnak. A Python 2.x-ben az intern() beépített függvényt is meghívhatja, hogy egy adott karakterláncra kényszerítse a gyakorlatot, de ezt nem igazán kell megtennie.

változás a tényleges célja annak ellenőrzése, hogy az attribútumok nincsenek-e megfelelően elosztva a példányok között: ez a fajta ellenőrzés csak változó objektumok esetén hasznos. A megváltoztathatatlan típusú attribútumok esetében nincs szemantikai különbség a megosztott és nem megosztott objektumok között. A megváltoztathatatlan típusokat kizárhatja a tesztekből a használatával

Immutable = alapkarakterlánc, sor, számok.Szám, fagyasztott # ... ha nem isinstance(x, Immutable): # Az ismert típusok kizárása

Ne feledje, hogy ez a változó objektumokat tartalmazó sorokat sem tartalmazza. Ha tesztelni akarja őket, rekurzív módon le kell ereszkednie sorokba.

A CPythonban, mint megvalósítási részlet, az üres karakterlánc gyakori, csakúgy, mint az egykarakteres karakterláncok, amelyek kódja a Latin-1 tartományba esik. Ön nem ettől kell függnie, mivel ez a funkció megkerülhető.

Kérhetsz egy karakterláncot ehhez internálás sys.intern használatával; ez bizonyos esetekben automatikusan megtörténik:

A Python-programokban használt nevek általában automatikusan internálódnak, a modul-, osztály- vagy példányattribútumok tárolására használt szótárak pedig beépített kulcsokkal rendelkeznek.

A sys.intern úgy van beállítva, hogy (profilozás után!) tudja használni a teljesítményhez:

A belső karakterláncok hasznosak egy kis teljesítmény eléréséhez a szótárak keresésekor – ha a szótárban lévő kulcsok internáltak, a keresési kulcs pedig internált, a kulcsillesztés (kivonatolás után) elvégezhető mutató-összehasonlítással a karakterlánc-összehasonlítás helyett.

Vegye figyelembe, hogy a gyakornok a Python 2 beépített része.

Szerintem megvalósítás és optimalizálás. Ha a karakterlánc rövid, akkor (és gyakran?) „elválhatnak”, de nem függhetsz ettől. Ha több sora van, látni fogja, hogy nem egyeznek.

In : s1 = "abc" In : s2 = "abc" In : s1 az s2 Out: igaz

hosszabb sorok

In : s1 = "abc ez sokkal hosszabb" In : s2 = "abc ez sokkal hosszabb" In : s1 az s2 Out: Hamis

használja az == karakterláncok összehasonlítását (és nem operátor).

Az OP észrevételét/hipotézisét (az alábbi megjegyzésekben), miszerint ez összefüggésben lehet a tokenek számával, alátámasztani látszik a következők:

In : s1 = "abc" In : s2 = "abc" In : s1 az s2 Out: Hamis

ha összehasonlítjuk a fenti eredeti abc példával.


3.2 ábra - Kontúrvonalak kialakítása

partvonal a B pontokban. Ugyanerre a P síkra vetítve a második zárt BB görbe egyenest kapjuk. Folytatva a víz emelkedését a fenti sorrendben, a P síkon kontúrvonalak segítségével egy domb képét kapjuk.

A nagyobb áttekinthetőség kedvéért a lejtők süllyesztésének irányát kötőjelekkel jelöljük berghashes. A szintvonalak magasságának jelzésére azok jeleit a szintvonalak töréseiben aláírják, a számok tetejét a lejtő teteje irányába helyezve. A dombormű kifejezőbbé tétele érdekében általában az ötödik, néha a tizedik vízszintes vonal vastagodik.

A két szomszédos vízszintes magasságkülönbségét a domborzati szakasz magasságának nevezzük.

Egy síkon két szomszédos vízszintes közötti távolságot fektetésnek nevezzük.

A vízszintesek a következő tulajdonságokkal rendelkeznek:

  • a) ugyanazon a vízszintes vonalon lévő összes pont azonos magasságú;
  • b) minden vízszintes vonalnak folytonosnak kell lennie;
  • c) a vízszintes vonalak nem metszhetik egymást és nem ágazhatnak ketté;
  • d) a vízszintesek közötti távolságok a tervben a lejtő meredekségét jellemzik - minél kisebb a távolság (fektetés), annál meredekebb a lejtő;
  • e) a vízszintesek közötti legrövidebb távolság a lejtő legnagyobb meredeksége irányának felel meg;
  • f) a vízválasztó vonalak és az üregek tengelyei merőlegesen metszik a vízszintes vonalakat;
  • g) a ferde síkot ábrázoló vízszintesek párhuzamos egyenesek.

A domborzati formák finomításához gyakran további vízszinteseket használnak, amelyeket szaggatott vonalakkal ábrázolnak, és félig vízszintesnek neveznek. Általában azokban az esetekben szokás félig vízszintes méréseket végezni, amikor a vízszintesek távolsága a terven meghaladja a 2 cm-t. 3.1, b a terep egyes elemeinek szintvonalainak képét mutatja.

KATEGÓRIÁK

NÉPSZERŰ CIKKEK

2022 "kingad.ru" - az emberi szervek ultrahangvizsgálata