快板約瑟夫赫克托

約瑟夫·洛克的介紹
1個(gè)回答2024-04-10 11:56

約瑟夫·洛克,美籍奧地利人,“納西學(xué)之父”、探險(xiǎn)家、植物學(xué)家、地理學(xué)家和語言學(xué)家。曾于20世紀(jì)初,以美國《國家地理埋純橡雜志》、美國農(nóng)業(yè)部、哈褲基佛大學(xué)植物研究所的探險(xiǎn)彎旁家,撰稿人、攝影家的身份到云南滇緬邊境以及西藏考察。

約瑟夫·洛克的介紹
1個(gè)回答2024-04-06 18:15

約瑟夫·洛克,美籍奧地利人,“納西學(xué)之父”、探險(xiǎn)家、植物學(xué)家、地理學(xué)家和語言學(xué)家。曾于20世紀(jì)初,以美國《國家地理雜志》、美國農(nóng)業(yè)部、哈佛大學(xué)植物研究所的探險(xiǎn)家,撰稿人、攝影家的身份到云南滇緬邊境以及西藏考察。

約瑟夫帥還是杰克帥?
4個(gè)回答2023-05-02 13:15
約瑟夫帥還是杰克當(dāng)然是Jack帥了,Jack is right。
約瑟夫的簡介
1個(gè)回答2024-02-09 12:35

公元37生于耶路撒冷,公元100年卒于羅馬。約瑟夫是羅馬帝國時(shí)期以為僧侶出身的猶太歷史學(xué)家,也是一位猶太法利賽教徒(Pharisee)。
約公元64年游歷羅馬,在公元66年猶太起義前夕返回耶路撒冷。被俘后,他預(yù)言韋帕薌將取得帝位,隨即得到赦免。
公元70年耶路撒冷陷落后,他在羅馬定居并獲得羅馬公民權(quán)、一座房舍和養(yǎng)老金。
約瑟夫著有七卷本的《猶太戰(zhàn)爭》(Bellum Iudaicum),最初以阿剌美語(Aramaic)寫成,其他作品均以希臘語寫成,其中包括《猶太古史》(Antiquitates Iudaicae)——從創(chuàng)世到公元66年的猶太歷史,約公元94年以20卷本刊布。他的《自傳》(Vita)是對(duì)猶太起義由他發(fā)起和組織的說法的回復(fù)。

約瑟夫問題:
1個(gè)回答2024-03-18 17:56
約瑟夫環(huán):
約瑟夫環(huán)問題的一種描述是:編號(hào)為1.2.3…….n的n個(gè)人按順時(shí)針方向圍坐一圈

,每人手持一個(gè)密碼(正整數(shù)),開始任意選一個(gè)整數(shù)作為報(bào)數(shù)上限值,從第一

個(gè)人開始順時(shí)針自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密

碼作為新的m值,從他順時(shí)針下一個(gè)人開始重新從1開始報(bào)數(shù),如此下去直到所有

的人全部都出列為止。試設(shè)計(jì)程序?qū)崿F(xiàn)。
要求:利用循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過程,按照出列的順序打印各人的編號(hào)。
測試數(shù)據(jù):m的值初始為20:密碼3 ,1,7,2,4,8,4。
正確的結(jié)果:6,1,4,7,2,3,5。
提示:程序運(yùn)行后首先要求用戶指定初始報(bào)數(shù)上限。然后讀取各人的密碼。設(shè)

n<30。


typedef struct node
{
int num,code;
struct node *next;
}lnode;
void main()
{
int i,j,key,n; /*i,j為記數(shù)器,key為輸入的密碼,n為人的總個(gè)數(shù)*/
lnode *p,*s,*head;
head=(lnode *)malloc(sizeof(lnode)); /*為頭結(jié)點(diǎn)分配空間*/
p=head;
printf("Please enter the num of the person:"); /*輸入人的總個(gè)數(shù)*/
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Person %d",i);
printf(" code: ");
scanf("%d",&key); /*輸入各個(gè)人的密碼*/
s=p;
p=(lnode *)malloc(sizeof(lnode)); /*創(chuàng)建新的結(jié)點(diǎn)*/
s->next=p;
p->num=i;
p->code=key;
}
p->next=head->next;
p=head;
head=head->next;
free(p);


p=head;
do
{
printf("\nPerson%d Code:%d",p->num,p->code); /*輸出鏈表*/
p=p->next;
}while(p!=head);




printf("\nPlease enter your first key:"); /*輸入第一個(gè)數(shù)*/
scanf("%d",&key);
do
{
j=1; /*j為記數(shù)數(shù)*/
p=head;
while(j{
s=p;
p=p->next;
j++;
}
i=p->num;
key=p->code;
printf("\nThe out of the num:");
printf("Person%d",i);
s->next=p->next;
head=p->next; /*重新定義head,下次循環(huán)的開始結(jié)點(diǎn)*/
free(p);
n--; /*每循環(huán)一次人是減1*/
}while(n>0);
getch();
}
約瑟夫問題
1個(gè)回答2024-06-11 09:12

你的問題是什么?若是編寫程序要說明你要用的語言,以下是C的參考:

#include
#define N 30
int yuesefu1(int data[],int sum,int k)
{
? int i=0,j=0,count=0;
? while(count ? {
? ? if(data[i]!=0)/*當(dāng)前人在圈子里*/
? ? ? ? j++;
? ? if(j==k)/*若該人應(yīng)該退出圈子*/
? ? {
? ? ? ? data[i]=0;/*0表示不在圈子里*/
? ? ? ? count++;/*退出的人數(shù)加1*/
? ? ? ? j=0;/*重新數(shù)數(shù)*/
? ? }
? ? i++;/*判斷下一個(gè)人*/
? ? if(i==sum)/*圍成一圈*/
? ? ? ? i=0;
? }
? for(i=0;i ? ? ?if(data[i]!=0)
? ? ? ? ?return data[i];/*返回最后一個(gè)人的編號(hào)*/
}

int main()
{
? int data[N];
? int i,n,m;
? printf("請輸入總數(shù):\n");
? scanf("%d",&n);
? for(i=0;i ? ? data[i]=i+1;
? printf("請輸入報(bào)數(shù):\n");
? scanf("%d",&m);
? printf("最后的人為: %d\n",yuesefu1(data,n,m));
? return 0;
}


約瑟夫問題
1個(gè)回答2024-07-01 22:43
#include
#include

struct node{
int data;
struct node *next;
};

int main(){
int i,j,k,m,n;
struct node *head,*p,*q;
scanf("%d%d",&n,&m);

p=(struct node*)malloc(sizeof(struct node));
p->data=1;p->next=p;
head=p;

for(i=2;i<=n;i++)
{
q=(struct node*)malloc(sizeof(struct node));
q->data=i;q->next=head;
p->next=q;
p=q;
}

k=1;p=head;
while(p->next!=p){
if(k+1==m){
p->next=p->next->next;
k=1;
p=p->next;
}else{
k++;
p=p->next;
}
}
printf("%d\n",p->data);
system("pause");
return 0;
}
約瑟夫問題
1個(gè)回答2024-08-07 02:47
//約瑟夫環(huán):
//這并告?zhèn)€程序有點(diǎn)小問題,你自己看看吧,現(xiàn)在沒時(shí)間改了,起始位置有點(diǎn)問題

#include
#include
int flag;
typedef struct node
{int data;
struct node *next;
}LNode,* Linklist;
Linklist CreatFromHead() //鏈表的初始化
{ Linklist L=NULL,s;
LNode *r=NULL;
int x=1;
s=(Linklist)malloc(sizeof(LNode));
L = s;
r= L;

printf("請輸入請廳叢輸入報(bào)數(shù)的人數(shù)");
scanf_s("%d",&flag);
while(x!=flag+1)
{s=(Linklist)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
x++;
}
s->next=L;

if(r!=NULL) r->next=NULL;
return L;
}
Linklist Getlist(Linklist L,int i) //鏈表的查找函數(shù)
{Linklist p;
int j;

p=L;j=0;
while(p->next!=NULL&&j { p=p->next;
j++;
}
if(i==j)return p;
else return NULL;
}
Linklist treat(Linklist L,Linklist s,int k,int i) //約瑟夫環(huán)算法
{
int j=0;
if(s==NULL)
{
s=L->扮蔽櫻next;
}
while(j {
s=s->next;
j++;
if(s==NULL)
{
s=L->next;
}
}
return s;
}
int Del_Linklist(Linklist L,Linklist p) //鏈表結(jié)點(diǎn)刪除函數(shù)
{Linklist s;
s=L;
while((s->next->data != p->data))
{
s=s->next;
}
s->next=s->next->next;
free(p);
return 1;
}
void main() //主函數(shù)
{Linklist L;
Linklist p,s;
int i,k,m,n;
L=CreatFromHead();
printf("請輸入查找的元素位置");
scanf_s("%d",&i);
printf("請輸入相隔的位置:");
scanf_s("%d",&k);
m=0;

s=Getlist(L,i);
printf(".");

while(m{
p=treat(L,s,k,i);

printf("%d\t",p->data);
s=p->next;

n=Del_Linklist(L,p);
m++;
}
}
約瑟夫問題
1個(gè)回答2024-07-02 17:23
約瑟夫環(huán):

約瑟夫環(huán)問題的一種描述是:編號(hào)為1.2.3…….n的n個(gè)人按順時(shí)針方向圍坐一圈



,每人手持一個(gè)密碼(正整數(shù)),開始任意選一個(gè)整數(shù)作為報(bào)數(shù)上限值,從第一



個(gè)人開始順時(shí)針自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密



碼作為新的m值,從他順時(shí)針下一個(gè)人開始重新從1開始報(bào)數(shù),如此下去直到所有



的人全部都出列為止。試設(shè)計(jì)程序?qū)崿F(xiàn)。

要求:利用循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過程,按照出列的順序打印各人的編號(hào)。

測試數(shù)據(jù):m的值初始為20:密碼3,1,7,2,4,8,4。

正確的結(jié)果:6,1,4,7,2,3,5。

提示:程序運(yùn)行后首先要求用戶指定初始報(bào)數(shù)上限。然后讀取各人的密碼。設(shè)



n<30。





typedefstructnode

{

intnum,code;

structnode*next;

}lnode;

voidmain()

{

inti,j,key,n;/*i,j為記數(shù)器,key為輸入的密碼,n為人的總個(gè)數(shù)*/

lnode*p,*s,*head;

head=(lnode*)malloc(sizeof(lnode));/*為頭結(jié)點(diǎn)分配空間*/

p=head;

printf("Pleaseenterthenumoftheperson:");/*輸入人的總個(gè)數(shù)*/

scanf("%d",&n);

for(i=1;i<=n;i++)

{

printf("Person%d",i);

printf("code:");

scanf("%d",&key);/*輸入各個(gè)人的密碼*/

s=p;

p=(lnode*)malloc(sizeof(lnode));/*創(chuàng)建新的結(jié)點(diǎn)*/

s->next=p;

p->num=i;

p->code=key;

}

p->next=head->next;

p=head;

head=head->next;

free(p);





p=head;

do

{

printf("
Person%dCode:%d",p->num,p->code);/*輸出鏈表*/

p=p->next;

}while(p!=head);









printf("
Pleaseenteryourfirstkey:");/*輸入第一個(gè)數(shù)*/

scanf("%d",&key);

do

{

j=1;/*j為記數(shù)數(shù)*/

p=head;

while(j
{

s=p;

p=p->next;

j++;

}

i=p->num;

key=p->code;

printf("
Theoutofthenum:");

printf("Person%d",i);

s->next=p->next;

head=p->next;/*重新定義head,下次循環(huán)的開始結(jié)點(diǎn)*/

free(p);

n--;/*每循環(huán)一次人是減1*/

}while(n>0);

getch();

}
約瑟夫斯的著名的約瑟夫斯問題
1個(gè)回答2024-04-21 12:09

據(jù)說著名猶太歷史學(xué)家 Josephus有過以下的故事:在羅馬人占領(lǐng)喬塔帕特後,39 個(gè)猶太人與Josephus及他的朋友躲到一個(gè)洞中罩棚,39個(gè)猶太人決定寧愿死也不要被人抓到,于是決定了一個(gè)自殺方式,41個(gè)人排成一個(gè)圓圈,由第1個(gè)人開始報(bào)數(shù),每報(bào)數(shù)到第3人該人就必須自殺,然后再由下一個(gè)重新報(bào)數(shù),直到所有人都自殺身亡為止。
然而Josephus 和他的朋友并不想遵從,Josephus要他的朋友先假裝遵從,他將朋友與自局悶冊己安排在第16個(gè)與第31個(gè)位置,于是逃過了這場死亡游戲。
解法
約瑟夫問題可用代數(shù)分析來求解,將這個(gè)問題擴(kuò)大好了,假設(shè)現(xiàn)在您與m個(gè)朋友不幸參與了這個(gè)游戲,您要如何保護(hù)您的朋友?只要畫兩個(gè)圓圈就可以讓自己與朋友免于死亡游戲,這兩個(gè)圓內(nèi)圈是排列順序桐宏,而外圈是自殺順序,如下圖所示:

熱門問答