HTML

Csak úgy mindenről...

Mindenhez értek, csak vannak olyan dolgok, amiket még nem próbáltam.

Utolsó kommentek

  • látjátok feleim szümtükkel: Gondoltad ugyé, hogy majd jön a szemes, oszt hozzá szól? Nos, megtaláltad az érteleme felét, de a másik felére nem gondoltál.Ha nem látjuk a tovább értelmét, akkor ki fog emlékezni ez előttünk jár... (2022.12.25. 11:01) Hanyagolás
  • johara: Szia! Évek óta olvaslak. Vagyis mostanában nemigen van mit :) Most direkt ezért regisztráltam, hogy kommentelni tudjak. Mi történt veled? Utolsó írásokból ítélve nem sok jó. :( Szükség van erre a fa... (2022.12.20. 17:22) Vadász
  • látjátok feleim szümtükkel: Tudom ez nem segít, de talán a hangulatodat egy kissé feldobja. Kösz, hogy felhívtad a tavasszal a figyelmem a sasmadarakra. Nagy élmény volt őket befogadni, a kicsiket felnevelni. A kenyeres kézhez... (2022.09.03. 10:37) Minden nagyon szép, minden nagyon jó
  • látjátok feleim szümtükkel: Azt írod, közel egy havi lemaradással indultál. Biztosan tudod, ha nem, akkor most elmondom, hogy régen a homokvidékeken aratás után a felszántott földbe grumblit vetettek, és nagyon szépen beért. T... (2022.08.13. 09:11) Grumbli II.
  • szivar: @látjátok feleim szümtükkel: Ez az év szokás szerint nem a tervek szerint alakult. Amúgy kapott némi gyomirtót is pár tő a krumpliból (az sem én voltam). (2022.08.07. 10:58) Grumbli
  • Utolsó 20

Címkék

adó (1) adósság (1) akció (1) alapanyagok (1) alkalmasság (1) alkohol (2) alkoholizmus (2) álláskeresés (1) állattenyésztés (1) álmok (5) alvás (1) anyagiak (1) anyagok (1) anyám (7) arduino (1) ásóvilla (2) asztalosság (1) autóbontó (1) az élet apró örömei (1) A Nagy Ő (1) bab (1) bagett (1) baleset (5) balszerencse (1) bankoklás (1) barkácsolás (52) baromfi (1) befolyásoltság (1) bejgli (2) betegség (1) bevállaltam (1) bevásárlás (1) bicikli (13) biztosító (1) blog (1) bors (1) bosszant (110) Buci (1) bukta (1) burgonya (1) busz (1) bútor (1) cigeretta (1) covid (2) CO érzékelő (1) csak úgy (2) csalás (1) csepegtető locsolás (1) cserép (1) csilisbab (1) csülök (2) darázscsípés (2) demotivált (1) disznósajt (2) dohányzás (4) drogok (1) dugulás (1) dühít (3) ebéd (1) édesség (1) egér (2) egérinvázió (1) egészség (2) ejtőernyőzés (4) elavulás (1) elegem van (1) elektromosság (1) elektronika (9) élelmiszer (1) élesztő (1) élet (1) életvitel (29) elmélkedés (138) elszomorít (1) ennivaló (1) építkezek (2) ereszcsatorna (1) eső (1) esőcsatorna (1) ételek (2) evvan (384) fa (1) fagyasztóláda (1) falazás (1) fatüzelés (5) félelem (1) felhők (1) felsőmaró (1) film (2) finom fonott kalács (1) fokhagyma (1) földművelés (3) főzicske (49) fűkasza (3) fűrészelés (4) füstgáz (2) füstölés (5) füstölő (1) füstölt hús (1) fűtés (4) fütstölés (1) fűzés (1) ganézás (1) gáz (2) gazdaság (1) gépek (1) gépészet (1) gépszerelés (1) gyógytorna (1) gyújtóelektróda (1) gyümölcsfa (1) háború (1) hagyma (1) hahaha... (1) hal (2) halászlé (1) halleves (1) hasonlatok (1) használat (1) házfelújítás (6) hegesztés (5) helyesírás (1) helyhiány (1) hengerítőgép (2) hiány (1) hidraulika (1) hit (2) hőmérséklet (1) hőszigetelés (1) hubajavítás (1) humor (1) hurka (1) hűtő (1) idegesít (58) időjárás (4) járókeret (2) Járvány (3) játék (3) javítás (2) jogalkalmazás (10) jövőkép (1) jó hír (1) kacsavágás (1) kaja (8) kakas (1) kakasvágás (2) kalács (1) kapa (1) kapor (2) káposzta (1) karbantartás (1) kazán (1) kelesztés (1) kelesztési idő (1) keletkezett (1) kelt tészta (2) kémia (6) kenyér (2) kerékpár (2) kert (50) kertészkedés (69) került (7) kés (1) kiborultabili (1) kifacsarodva (1) kifakadás (1) kiflipuding (1) kiscsibe (1) kisebbség (1) kísérlet (2) kiszolgálás (1) kocsma (1) kolbász (6) kollégák (5) kolleginák (3) költözés (1) kommentár nélkül (1) kőművesek (2) koncentrációzavar (1) koncultáció (1) konvektor (5) konyha (12) könyvajánló (1) konzerv (1) kórház (1) kórházas dolgok (1) környezetterhelés (1) koronavírus&akármi (1) kotlós (1) kovász (2) kovászolás (1) kovászos (1) közlekedés (1) krumpli (2) KrumplisLángos (1) különbség (1) kutya (2) láb (1) lángos (1) lecsó (1) légzésvédő (1) lencse (1) leszokás (3) létra (2) leves (2) liszt (1) macska (4) madárdeszka (1) magasnyomású mosó (1) magyarítás (1) mai gondolatvitel (1) mankó (1) másodállás (1) maszkviselés (1) megbotránkoztatás (1) megérzés (1) mellékhatások (1) mentők (1) mert szopni jó (23) mesék a pékségből (12) mesék a vasiparból (1) MESTEREK (1) meszelés (1) metszés (1) mikrokontroller (1) mindennapok (12) minőség (1) monoblokk (1) mulcs (1) munkahely (89) munkahelyi baleset (2) munkaidő (1) munkanélküliség (3) munkavédelem (1) műtét (1) napszám (1) napszúrás (1) nemesfém (1) Nemzeti Munkaügyi Hivatal (1) nem érteni eztet (1) nevelés (2) nincs címke (1) nokedli (1) növények (1) nyílásszáró (1) nyúzás (1) oldalas (1) oltás (1) önéletrajz (1) optimizmus (1) Orbán Viktor (1) őrláng (2) orvos (1) orvosok (1) őszibarack (1) otthon (2) palántázás (3) paprika (3) paradicsom (1) párbeszédek (1) parlagfű (1) pékség (9) pénz (17) permetezés (1) piskóta (1) plazmonok (1) pletyka (1) poén (22) politika (20) próbamunka (1) programozás (5) puding (1) rehab (1) reklám (1) rizs (1) rokontartás (1) rotációs (6) rövidhírek (1) sajt (1) savanyítás (1) savanyú uborka (2) scrapping (6) sejtelmek (1) semmi gond (2) siralmas (3) sohasem lesz kész project (2) sonka (1) sütemény (1) sütés (10) sütőipar (1) szabadesés (1) szabadidő (1) szállítás (1) számítástecnika (8) szédülés (2) szelektív hulladék (2) szemlélet (9) szerelés (4) szerencse (2) szerencsejáték (1) szeretek aludni (1) szívügyek (1) szoftver (1) szőlő (1) szomszédság (2) takarítás (2) talajtakarás (1) táppénz (1) társ (1) tecnológia (1) tejkaramella (1) tél (1) temetés (1) térdtörés (1) térkő (3) tervek (1) tervezés (1) tészta (2) tető (1) tippek-trükkök (6) tojás (1) tömegközlekedés (1) tömítés (2) törés (14) törpecsirke (1) történt (28) uborka (1) udvar (1) ügyintézés (2) uPC (3) vakolás (1) vákuumfóliázó (1) vallás (2) vásárlás (1) védelem (1) vegyészkedés (1) vélemény (9) verseny (1) vérszívó légy (1) véső (1) vetemény (1) vidék (1) világvége (1) villanyszerelés (1) virágok (1) vöröshagyma (3) vörös hagyma (1) WC-papír (1) zene (2) zöldbab (2) zsír (1) Címkefelhő

Gondoltam egy számot

2014.11.30. 10:24 szivar

Ami 0-65535 között helyezkedik el. A feladat az az, hogy tizenhat kérdésből kitalálja az ember ezt a számot.

Elöljáróban közölném, hogy ez a játék nem pont egy játék, mindössze csak egy algoritmus, ami egy DAC (digitális-analóg konverter) kimenetét hasonlítja össze egy referencia feszültséggel, és bumm - így lesz az ADC (analóg-digitális konverter). De attól még lehet, hogy érdekel valakit.

Tehát vissza a feladathoz, ami egy fokozatos közelítéses mérési izé. A feladat megoldásához nem árt némi kis affinitás a bináris számok irányába. Amúgy rohadt egyszerű. A méréshez szükséges mintavevő-tartó áramkör olyan bonyolult is lehet, mint egy százasszög, a DAC-ot meg össze lehet hányni két-háromszáz forintból (olyan is - nem lehet versenyezni a lézer-trimmelt ellenállássokkal készített áramkörökkel, vagy éppen egy flash-ADC-vel), a komparátor meg... No, de a lényeg lényege lényegében lényegtelenné lényegül.

No, osonjunk csak sorjában végig mindenen... Legyen a gondolt szám, mondjuk... 34225. Legyen a felhasznált programnyelv a... Egy papír...

Elméletben tizenhat biten 65536 szám fejezhető ki, de mivel a nulla is beletartozik ebbe a fogalomkörbe... Így nullától 65535-ig terjedhet a kitalálandó szám értéke. Kettes számrendszerben ábrázolva: 0000000000000000-1111111111111111. Ez utóbbi a számítástechnika miatt lehet fontos, hiszen az java részt a kettes számrendszeren alapszik. Nos, akkor találjuk ki a már eleve ismert számunkat. Ha programból kívánjuk megoldani, akkor nem árt definiálni pár számot, illetve egy regisztert.

No, de eredetileg csak papírt használunk. Bátran felfirkálhatjuk rá a következőeket:

1000000000000000 = 32768
0100000000000000 = 16384
0010000000000000 = 8192
0001000000000000 = 4096
0000100000000000 = 2048
0000010000000000 = 1024
0000001000000000 = 512
0000000100000000 = 256
0000000010000000 = 128
0000000001000000 = 64
0000000000100000 = 32
0000000000010000 = 16
0000000000001000 = 8
0000000000000100 = 4
0000000000000010 = 2
0000000000000001 = hihetetlen módon ez pont egy...

1.) No, akkor kezdjük meg a kérdezősködést. A 'gondolt' szám kisebb-e, mint 32768? Hát nem. Tehát akkor fel lehet vésni a papírra, hogy
1.

2.) A gondolt szám kisebb-e, mint 32768+16384? Hát ránézésre az... Tehát folytassuk a számsort:
10.

3.) A szám kisebb-e, mint 32768+8192? Elképzelhetőnek tartom... Tehát ezidáig:
100

4.) A szám kisebb-e, mint 32768+4096? Az. 
1000

5.) Kisebb-e,mint 32768+2048?
10000

6.) Kisebb-e, mint 32768+1024? Kivételesen nem. Már írhatunk egy egyest is.
100001

7.) Kisebb-e a szám, mint (32768+1024) 33792+512 ? Jaja.
1000010

8.) He? 33792 + 256, kisebb-e ennél? Nem.
10000101

9.) Kisebb-e, mint 34048+128? No.
100001011

10.) 34176+64 = .34240. Ennél kisebb-e? Az.
1000010110

11.) 34176+32 = 34208. A kérdés ismert. Nem.
10000101101

12.) 34208+16 = 34224. Még mindig nem kisebb.
100001011011

13.) 34224+8 = 34232. Kisebb.
1000010110110

14.) 34224+4 = 34228. Ennél is kisebb.
10000101101100

15.) 34224+2 = 34226. Kisebb.
100001011011000

16.) 34224+1. Kisebb-e? Nem.
1000010110110001

Ez utóbbi a végeredmény. Már csak át kell váltani tízes számrendszerbe és készen is vagyunk... Emlékezzünk csak az előzőleg lefirkantott számokra... Váltsuk át, balról jobb felé haladva (de lehet fordítva is). Az első számjegy az egyes. Tizenhat számjegy esetében az 32768, tehát firkantsuk fel a 'puskáról' a számot. 

32768
00000
00000
00000
00000
01024
00000
00256
00128
00000
00032
00016
00000
00000
00000
00001

Ez összeadva,annyi mint... A gondolt szám. Most átmegyek Gecimici Ajatollahba, ugyanez kockában és nem papíron.

def

const

s = array[1..16] of dword = (%1000000000000000, %0100000000000000, ...(kitöltendő rész) %0000000000000001); //Az egyszerűség kedvéért. Lehetne [0..15] is.

Ne szarozzunk, XOR-ozzunk... De nem ártana egy olyan izé sem, amiben az átmeneti eredményt... Egy darabka tetőléccel... Vagy...

var SAR :dword = $00;  //nem, nem az. Fokozatos megközelítésű regiszter... Nullával indítunk és ez lesz a végeredmény
    tmp : dword;  //ebbe a változóba csak átmenetileg tárolunk számokat

Mivel ahány bit annyi lépés, jelen esetben tizenhat lépés lesz. Véleményem szerint egy sima for ciklus elég lesz rá, legalább nem keveredik az emberfia végtelen ciklusba - maximum csak nem lesz jó valami... Tehát kell még egy változó, ami legyen mondjuk egy... Öööö. I.

var i : byte; //tizenhatig csak bírja...

for i:=1 to 16 do
begin
tmp:=SAR; //biztos, ami biztos. Nem kéne elbaszni a regiszter értékét
tmp:=tmp xor s[i]; //xor-ozzuk a tömbben tárolt konstanssal
if tmp > gondolt_szám then SAR:=tmp; //és ha a kitalálandó érték kisebb, mint a tmp, akkor a SAR regiszternek átadjuk az értékét, ellenkező esetben nem buzerálunk semmit...
end;
writeln(SAR);  //ezt lehet cifrázni a strtoint függvénnyel, meg ilyekkel is.

Azért írtam regisztert a SAR neve mellé, mert ha netán hardveres alapon akarjuk megvalósítani a dolgokat, esetleg mikrokontrollerrel, akkor... Ez a pár Pascal nyelven leír izé elég segítség a kezdéshez, innentől már kedvünk szerint túlbonyolíthatjuk a problémát.

Szólj hozzá!

Címkék: programozás tippek-trükkök

A bejegyzés trackback címe:

https://szivarosfrici.blog.hu/api/trackback/id/tr196067663

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása