PageSourceSearch

https://christian-netzberger.vercel.app/_nuxt/Bpy4Wj-k.js

js christian-netzberger.vercel.app collected 2026-10-03 05:17:54 UTC 4,318 bytes, 1 lines download raw bytes

1import{_ as J,r as m,aE as g,e as v,f as p,aJ as l,aX as w,aY as I,aS as W,aL as b,aT as Y,aI as M}from"./B7W8xUR6.js";const Z={class:"fano-container"},H={class:"input-section"},K={class:"probability-inputs"},O=["onUpdate:modelValue"],Q=["disabled"],R={class:"animation-section"},ee={class:"controls"},te=["disabled"],se=["disabled"],ne={class:"connections"},le=["d"],oe={class:"nodes"},ie=["transform"],ae={dy:"-0.5em","text-anchor":"middle",class:"probability"},ce={dy:"1.2em","text-anchor":"middle",class:"symbols"},de={x:"400",y:"450","text-anchor":"middle",class:"step-description"},y=800,re=500,ue={__name:"FanoTree",setup(he){const x=["a","b","c","d"],d=m([.4,.3,.2,.1]),a=m(0),P=g(()=>d.value.reduce((s,n)=>s+(n||0),0)),T=g(()=>Math.abs(P.value-1)<.01),E=()=>{d.value=d.value.map(s=>s<0?0:s>1?1:s)};class S{constructor(n,t,o,e){this.id=Math.random().toString(36),this.symbols=n,this.probability=t.reduce((i,c)=>i+c,0),this.x=o,this.y=e,this.left=null,this.right=null,this.active=!1,this.highlight=!1}}const r=m([]),B=m([]),F=m([]),X=s=>{const n=s.reduce((i,c)=>i+c,0);let t=0,o=1/0,e=0;for(let i=0;i<s.length-1;i++){t+=s[i];const c=Math.abs(2*t-n);c<o&&(o=c,e=i+1)}return e},A=()=>{r.value=[];let s=[],n=[];const t=new S(x,d.value,y/2,50);s.push(t),r.value.push({nodes:[t],connections:[],allNodes:[...s],allConnections:[],description:"Startknoten mit allen Symbolen"});const o=[{node:t,symbols:x,probs:d.value,level:0}];for(;o.length>0;){const e=o.shift();if(e.symbols.length<=1)continue;const i=X(e.probs),c={nodes:[e.node],connections:[],allNodes:[...s],allConnections:[...n],description:`Teile Gruppe ${e.symbols.join(",")} an optimaler Stelle`};r.value.push(c);const f=e.symbols.slice(0,i),_=e.symbols.slice(i),V=e.probs.slice(0,i),j=e.probs.slice(i);let C,N;if(e.level===0)C=y*.25,N=y*.75;else{const L=200/2**e.level;C=e.node.x-L,N=e.node.x+L}const u=new S(f,V,C,e.node.y+80),h=new S(_,j,N,e.node.y+80);e.node.left=u,e.node.right=h,s.push(u,h);const D=[{id:`c${u.id}`,path:`M ${u.x} ${u.y} L ${e.node.x} ${e.node.y}`,active:!0},{id:`c${h.id}`,path:`M ${h.x} ${h.y} L ${e.node.x} ${e.node.y}`,active:!0}];n.push(...D),r.value.push({nodes:[u,h],connections:D,allNodes:[...s],allConnections:[...n],description:`Teile in Gruppen: [${f.join(",")}] und [${_.join(",")}]`}),f.length>1&&o.push({node:u,symbols:f,probs:V,level:e.level+1}),_.length>1&&o.push({node:h,symbols:_,probs:j,level:e.level+1})}},$=g(()=>r.value.length),G=g(()=>{var s;return((s=r.value[a.value])==null?void 0:s.description)||""}),k=()=>{const s=r.value[a.value];s&&(B.value=s.allNodes.map(n=>{var t,o;return{...n,highlight:((t=s.nodes.find(e=>e.id===n.id))==null?void 0:t.highlight)||!1,active:((o=s.nodes.find(e=>e.id===n.id))==null?void 0:o.active)||!1}}),F.value=s.allConnections.map(n=>{var t;return{...n,active:((t=s.connections.find(o=>o.id===n.id))==null?void 0:t.active)||!1}}))},U=()=>{a.value=0,A(),k()},q=()=>{a.value<$.value-1&&(a.value++,k())},z=()=>{a.value>0&&(a.value--,k())};return(s,n)=>(p(),v("div",Z,[l("div",H,[l("div",K,[(p(),v(w,null,I(x,(t,o)=>l("div",{key:t,class:"input-group"},[l("label",null,"P("+b(t)+")",1),W(l("input",{type:"number","onUpdate:modelValue":e=>d.value[o]=e,step:"0.1",min:"0",max:"1",onInput:E},null,40,O),[[Y,d.value[o],void 0,{number:!0}]])])),64))]),l("div",{class:M(["sum-display",{invalid:!T.value}])}," Summe: "+b(P.value.toFixed(2)),3),l("button",{onClick:U,disabled:!T.value,class:"start-button"}," Baum konstruieren ",8,Q)]),l("div",R,[l("div",ee,[l("button",{onClick:z,disabled:a.value===0},"Zurück",8,te),l("span",null,"Schritt "+b(a.value+1)+" von "+b($.value),1),l("button",{onClick:q,disabled:a.value===$.value-1},"Weiter",8,se)]),(p(),v("svg",{class:"tree-svg",width:y,height:re,viewBox:"0 0 800 500"},[l("g",ne,[(p(!0),v(w,null,I(F.value,t=>(p(),v("path",{key:t.id,d:t.path,class:M(["connection-line",{active:t.active}])},null,10,le))),128))]),l("g",oe,[(p(!0),v(w,null,I(B.value,t=>(p(),v("g",{key:t.id,transform:`translate(${t.x},${t.y})`,class:M(["node",{active:t.active,highlight:t.highlight,"leaf-node":t.symbols.length===1}])},[n[0]||(n[0]=l("circle",{r:"25"},null,-1)),l("text",ae,b(t.probability.toFixed(2)),1),l("text",ce,b(t.symbols.join(",")),1)],10,ie))),128))]),l("text",de,b(G.value),1)]))])]))}},pe=J(ue,[["__scopeId","data-v-27d055b9"]]);export{pe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.